Форум программистов, компьютерный форум, киберфорум
Электроника для начинающих
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 11.02.2020
Сообщений: 7
1

Как обнаружить третье состояние вывода микроконтроллера?

05.07.2020, 11:49. Просмотров 380. Ответов 9
Метки нет (Все метки)

Привет всем!

Имеется мультиплексор 74HC4053 на три канала один к двум. Один канал не используется.
Переключение остальных двух каналов должно происходить одновременно.
Для управления этим мультиплексором есть ровно одна ножка микроконтроллера (ESP32).

Теперь нужно сделать так, чтобы МК мог отключить мультиплексор подав ему на вход E высокий уровень.
Добиться этого я надеялся путем переключения соответствующего GPIO в режим input, чтобы не тратить вторую ножку МК.

То есть нужно придумать как превратить 0 или 1 в режиме "на выход" в низкий уровень, а режим "на вход" в высокий уровень.
Как это сделать?

Спасибо.
0
Миниатюры
Как обнаружить третье состояние вывода микроконтроллера?  
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.07.2020, 11:49
Ответы с готовыми решениями:

Как убрать третье состояние у флажка?
Есть ленточная форма. На ней поля Дата, Время и Флажок. Флажок = True - в поля Дата и Время...

Как в xls файле обнаружить обнаружить ненужные связи?
Есть файл, в нем куча листов, плюс модули VBA... При открытии эксель спрашивает обновить ли ему...

IP Googlebot как обнаружить?
Здравствуйте, Сегодня в инструментах вебмастера на гугле, проверил карты сайта и увидел - ...

Скрытый RMS - как обнаружить?
Здрасте , суть проблемы такова ! получили удаленный доступ к пк .один телефон точно прошили , и как...

9
Эксперт по компьютерным сетямЭксперт NIX
11795 / 6760 / 642
Регистрация: 09.09.2009
Сообщений: 26,681
05.07.2020, 12:41 2
подтянуть пин к питанию, в выходной буфер записать ноль и переключать направление "вход/выход" (если я правильно понял ваше пожелание)
0
0 / 0 / 0
Регистрация: 11.02.2020
Сообщений: 7
05.07.2020, 13:24  [ТС] 3
Попробую пояснить чего нужно добиться при помощи таблицы.

Код
|ESP32 GPIO        | Мультиплексор SELECT | Мультиплексор ENABLE |
|------------------+----------------------+----------------------|
|на выход, высокий | высокий              | низкий               |
|на выход, низкий  | низкий               | низкий               |
|на вход           | не важно             | высокий              |
|------------------+----------------------+----------------------|
0
2402 / 1721 / 356
Регистрация: 11.09.2009
Сообщений: 6,319
05.07.2020, 17:42 4
Цитата Сообщение от Vaffanculo Посмотреть сообщение
как превратить 0 или 1 в режиме "на выход" в низкий уровень, а режим "на вход" в высокий уровень.
Теоретически - надо получить третий уровень, отличный от 0 и 1. Например, можно поставить резистивный делитель, чтобы при оборванном выходе на этой линии была половина напряжения питания, а в качестве "Загадки" использовать двухпороговый компаратор. Но в данном случае так делать нельзя, т.к. такой уровень нельзя подавать на входы S0 и S1 микросхемы U2.
Если действительно больше ни одного свободного (или с которым можно эту функцию совместить) выхода не осталось, то можно сделать на компараторах "дешифратор" этих трёх состояний, с тремя выходами, а эти выходы уже использовать для управления входами S0, S1 и E.

Кстати, вход S2 тоже нельзя оставлять оборванным. Неиспользуемые входы цифровых микросхем надо соединять либо с "корпусом", либо с питанием.
0
0 / 0 / 0
Регистрация: 11.02.2020
Сообщений: 7
05.07.2020, 18:01  [ТС] 5
Почему нельзя подавать промежуточное напряжение на S0 и S1?
Документация говорит, что при высоком уровне на выводе Enable от SN ничего не зависит.

Что до S2, конечно он соединен с землей, это же просто набросок был, я не хотел его засорять ненужными подробностями.
0
Миниатюры
Как обнаружить третье состояние вывода микроконтроллера?  
5750 / 2599 / 350
Регистрация: 17.02.2013
Сообщений: 3,780
05.07.2020, 18:28 6
Цитата Сообщение от Vaffanculo Посмотреть сообщение
Документация говорит, что при высоком уровне на выводе Enable от SN ничего не зависит.
Она говорит, что не зависит 0 или 1. Она не говорит, что не зависит 0 или 1 или неопределенное состояние.
Если на логический вход КМОП подать неопределенное состояние, то некоторое количество логических вентилей внутри микросхемы окажется в этом состоянии и будет потреблять ток. А в нормальном состоянии 0 или 1 ток КМОП вентилями не потребляется. Так-что какая-то разница да будет.
Как обнаружить третье состояние вывода микроконтроллера?

Вот видишь. В состояниях 0 или 1 один транзистор закрыт, другой открыт. А в неопределенном состоянии оба транзистора открыты и пропускают ток. Подавать на вход КМОП логики неопределенные состояния следует только на мгновение переключения, при этом с питания сгребается короткий импульс тока, а подавать надолго это очень не хорошо - ток будет свистеть постоянно. В правильных схемах так не делают.

Скажи, у тебя точно нельзя еще одну ножку микроконтроллера для этого дела выцыганить ? Просто хоть как-нибудь выморщить еще одну ножку и сразу избавишься от решения, которое в любом случае будет той или иной формой изврата.
0
2402 / 1721 / 356
Регистрация: 11.09.2009
Сообщений: 6,319
05.07.2020, 18:48 7
Цитата Сообщение от Vaffanculo Посмотреть сообщение
это же просто набросок был, я не хотел его засорять ненужными подробностями.
Привыкнете делать небрежно, - будут ошибки и в ваших разработках.
А по вопросу - ищите свободный выход или выход, с которым можно совместить данную функцию. То, что вы затеяли - верх непрофессионализма.
0
0 / 0 / 0
Регистрация: 11.02.2020
Сообщений: 7
05.07.2020, 18:49  [ТС] 8
i8085,

S0=S1 в моем случае.
Если поставить перед S0 и S1 триггер Шмитта, то проблема промежуточного состояния решится?
0
2402 / 1721 / 356
Регистрация: 11.09.2009
Сообщений: 6,319
05.07.2020, 23:03 9
Да, Vaffanculo, решится.
Но решение ерундовой проблемы добавлением двух корпусов - хреновое решение.
0
0 / 0 / 0
Регистрация: 11.02.2020
Сообщений: 7
10.07.2020, 21:51  [ТС] 10
Друзья, спасибо всем вам за участие, за советы и за критику.
В процессе обсуждения я переосмыслил задачу, и теперь сформулирую новые вопросы в отдельной ветке.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.07.2020, 21:51

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как обнаружить вирус на Windows 10?
...

Как обнаружить утечку памяти
Сабж. Как узнать какая переменная сколько потребляет памяти во время отладки? А то утечка вроде...

Как обнаружить метод Show?
Имеем 2 формы: Form1 и Form2. Код Form1: Private Sub Command1_Click() Form2.Show End Sub ...

Как обнаружить артефакты на экране?
Занимаюсь разгоном NVIDIA GeForce 7600 gs с помощью RivoTuner?, по совету с одного сайта после...

Как обнаружить запущенный Excel?
Тема - сабж. Как обнаружить?

Как обнаружить авторан-вирус?
Не знаю почему, но возникла такая проблема , на пустую флешку скинули фотки(флешка больше не куда...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.