Как подключить несколько выходных контактов датчиков к одному цифровому контакту на Arduino

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

Как это сделать безопасно? и в качестве дополнительного вопроса, если напряжение неисправности составляет 5 В, а контакты Arduino потребляют только 3,3 В, как мне уменьшить его с минимальными компонентами. можно ли просто добавить резистор последовательно?

, 👍0


1 ответ


Лучший ответ:

1

Если на выходе микросхемы 5 В, а на Arduino 3,3 В, вы можете просто использовать один делитель напряжения на выводе Arduino, чтобы разделить напряжение до 3,3 В.

Но есть еще одна важная вещь для их безопасного подключения: вы должны проверить, активируются ли выходы ИС активным высоким уровнем, когда не произошло ошибки, или они просто используют внутренний подтягивающий резистор.

Вывод, на который активно подается высокий уровень, не имеет защиты от перегрузки по току. Таким образом, если одна микросхема потянет свой вывод до низкого уровня, а другие все еще находятся под высоким уровнем, между ними будет протекать сильный ток, что потенциально может их разрушить. В этом случае вам нужны токоограничивающие резисторы последовательно с ИС (непосредственно на ИС, чтобы резисторы были между ними).

С другой стороны, если микросхемы выдают высокий уровень через подтягивающий резистор, вы можете безопасно подключить их напрямую, так как через подтягивающие резисторы может протекать только очень небольшой ток. Часто такая ситуация называется Open-Drain (пассивный высокий уровень через подтягивающие резисторы, активный низкий уровень путем перевода вывода в низкий уровень через полевой МОП-транзистор, как это используется в выводе цифрового выхода). В этом случае токоограничивающие резисторы не нужны.


EDIT: в таблице интегральных схем, на которую вы ссылаетесь, указано, что выход ошибки является

Выход с активным низким уровнем с открытым стоком

Кроме того, в примере схемы показан внешний подтягивающий резистор. Это означает, что вывод неисправности внутренне подключен к МОП-транзистору, который соединит вывод с землей в случае неисправности. В противном случае штифт плавает. Внешний подтягивающий резистор подтягивает состояние вывода к высокому уровню, когда MOSFET не активирован. Это хорошо для вас, так как теперь вы можете просто использовать 1 резистор (одного резистора достаточно для всех микросхем), чтобы поднять уровень до 3,3 В. Тогда у вас есть правильный уровень для вашего Arduino, и вам не нужен делитель напряжения.

,

в соответствии с [таблицей данных] (https://www.ti.com/lit/ds/symlink/tps2065c.pdf) неисправность схемы образца подтянута, значит ли это, что делитель напряжения и подтяжка? единственное, что я должен изменить в своей схеме, @Jack

О да. Однако, поскольку микросхема не использует внутреннюю подтяжку, вы можете упростить схему, напрямую подтягивая до 3,3 В с помощью внешнего резистора вместо 5 В. Тогда вам не нужен делитель напряжения. Тогда высокий уровень будет 3,3 В. я добавлю это к ответу, @chrisl

о, да ! это удивительный трюк. подтянув его до 3.3 тем самым уменьшив компоненты. Спасибо, добрый сэр. Дополнительный вопрос, сэр, мне нужно настроить подтягивающий резистор так, чтобы на всех линиях было эквивалентное сопротивление 10 кОм, или это не имеет значения?, @Jack

Или вы можете использовать внутреннюю подтяжку Arduino., @Edgar Bonet

@EdgarBonet или что-то в этом роде. но я думаю, что это хорошая практика проектирования, чтобы включить его в любом случае :), @Jack