Технический форум
Вернуться   Технический форум > Электроника, самоделки и техника > Форум по электронике > Микропроцессоры


Ответ
 
Опции темы Опции просмотра
Старый 12.07.2020, 00:27   #1 (permalink)
Vaffanculo
Member
 
Регистрация: 11.02.2020
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Как задействовать одну ножку GPIO поочередно то на выход то на вход?

Привет всем!

Имеется МК ESP32, который будет управлять трёхканальным мультиплексором 74HC4053, где все каналы имеют по две линии.
Из трёх каналов используются только два. Оба используемых канала должны переключаться синхронно.

ESP32 может выбрать либо одну из двух линий мультиплексора (при помощи ESP32::IO34), либо вообще может его выключить,
подав на ESP32::IO35 высокий уровень.

Ещё есть внешние устройства, состояние которых определяет какие линии мультиплексора разрешено задействовать
микроконтроллеру в настоящий момент. Это решается при помощи блока U3, который берет сигналы от внешних
устройств, а также уровень с ESP32::IO34, и вычисляет можно ли включить ту линию, которую просит микроконтроллер.
Если нет, то мультиплексор выключается путем подачи на его вход U2::E высокого уровня. По сути U3 реализует
логическое выражение от трех параметров.

Далее. То, хочет ли микроконтроллер задействовать мультиплексор (ESP32::IO35), и то, разрешено ли ему это
сделать (U3::PIN_5), соединяется через ИЛИ и попадает на вход U2::E мультиплексора.
Идея в том, чтобы аппаратно не дать ESP32 полезть туда, куда сейчас нельзя.

Теперь о проблеме. Микроконтроллеру нужно будет знать, можно ли ему лезть туда, куда он хочет, или нет.
Для этого я хочу использовать ножку ESP32::IO35 поочередно на вход и на выход. Когда она настроена на выход,
то все должно быть так, как описано выше.
А когда она настроена на вход, то
1. Микроконтроллер читает то, что у него на ESP32::IO35, и получает значение U3::PIN_5. То есть сумеет узнать можно ему работать или нет.
2. Уровень на U2::E равен уровню U3::PIN_5. Это чтобы мультиплексор не включился когда это запрещено.

Как такое сделать не задействуя другие выводы ESP32?

Спасибо.
Миниатюры
dual-purpose-gpio.png  
Vaffanculo вне форума   Ответить с цитированием

Старый 12.07.2020, 00:27
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Вы можете побыстрее решить эту проблему, если ознакомитесь с похожими постами

Что такое вход и выход ЛК и ПК на схеме приемника ДУ Звуком?
Где вход, где выход?
Вход, выход и питание усилителя

Старый 12.07.2020, 15:12   #2 (permalink)
Николай_С
Радиоинженер
 
Аватар для Николай_С
 
Регистрация: 25.09.2012
Адрес: г.Дзержинск Нижегородской обл.
Сообщений: 25,308
Записей в дневнике: 7
Сказал(а) спасибо: 292
Поблагодарили 219 раз(а) в 70 сообщениях
Репутация: 110185
По умолчанию

Цитата:
Как такое сделать не задействуя другие выводы ESP32?
Да никак. МК как-то должен знать в каком состоянии в данный момент
Цитата:
ESP32::IO35 поочередно на вход и на выход.
Повторяю ещё раз: так никто не строит логические схемы! Даже если сейчас Вы как-то решите эту задачу, то через полгода даже не сможете вспомнить как это работает.
Николай_С вне форума   Ответить с цитированием
Старый 12.07.2020, 16:15   #3 (permalink)
Vaffanculo
Member
 
Регистрация: 11.02.2020
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Во-первых, я составлю документацию, даже несмотря на то, что это не production quality проект, а просто разовая вещь, так что ничего не забудется.
Во-вторых, если вы так сурово критикуете эту идею, то может предложете что-то взамен? Хотя бы в общих чертах, чтобы мне было о чем подумать.
Vaffanculo вне форума   Ответить с цитированием
Старый 12.07.2020, 16:23   #4 (permalink)
Vaffanculo
Member
 
Регистрация: 11.02.2020
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Николай_С Посмотреть сообщение
МК как-то должен знать в каком состоянии в данный момент
А разве при описанном подходе он не будет этого знать?
Предполагалось, что МК выставляет на ножку SELECT номер желаемой линии, переводит ножку ENABLE на вход и узнает, можно ли работать. Если можно, то переводит ножку ENABLE на выход и выставляет там 0, потом работает с с мультиплексором.
Что-то не так с этой логикой?
Vaffanculo вне форума   Ответить с цитированием
Старый 12.07.2020, 17:18   #5 (permalink)
Николай_С
Радиоинженер
 
Аватар для Николай_С
 
Регистрация: 25.09.2012
Адрес: г.Дзержинск Нижегородской обл.
Сообщений: 25,308
Записей в дневнике: 7
Сказал(а) спасибо: 292
Поблагодарили 219 раз(а) в 70 сообщениях
Репутация: 110185
По умолчанию

Цитата:
Сообщение от Vaffanculo Посмотреть сообщение
Во-вторых, если вы так сурово критикуете эту идею, то может предложете что-то взамен? Хотя бы в общих чертах, чтобы мне было о чем подумать.
Уже предложил, но, похоже, Вы не прочитали.
Цитата:
Что-то не так с этой логикой?
Раз всё так, тогда к чему эта тема?
Николай_С вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 12.07.2020, 19:21   #6 (permalink)
Vaffanculo
Member
 
Регистрация: 11.02.2020
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Прочитал, разумеется. Но ведь то был ответ на другой вопрос. Там не шла речь о том, чтобы ESP32 прочитал состояние, выставленное другим устройством.
Vaffanculo вне форума   Ответить с цитированием
Старый 12.07.2020, 21:08   #7 (permalink)
gluxon
Member
 
Регистрация: 27.11.2017
Сообщений: 3,424
Сказал(а) спасибо: 35
Поблагодарили 31 раз(а) в 6 сообщениях
Репутация: 31069
По умолчанию

Полагаю что Вам нужно организовать взаимодействие между логическими элементами подобием квадратной шины. Почитайте про логические элементы с открытым коллектором - мне кажется это то, что Вам нужно
gluxon вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 21:04.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.