Должны ли у каждого из выводов ввода-вывода свой резистор подтягивания / опускания?


13

Очень простой вопрос:

Должен ли каждый вывод ввода-вывода микроконтроллера, который служит входом от переключателя или перемычки, иметь собственный резистор повышения / понижения?

Простая 3-контактная схема ввода-вывода

В этом примере каждый контакт сбрасывается резистором, а затем переключается переключателем 1P3T в VCC.

Это кажется простым, но чем больше IO выводов используется, тем больше резисторов абсолютно необходимо? Есть ли какой-нибудь умный способ уменьшить обратный отсчет резистора?

Связанный вопрос: Совместное использование подтягивающего резистора

Ответы:


16

Согласно предоставленной схеме, если бы все 3 входа имели общий резистор, то любая из линий, поднятых высоко через переключатель, подняла бы все 3 линии до высокого уровня, что противоречит цели проекта - MCU не знал бы, какое положение переключателя выбран.

Обычный способ уменьшения количества деталей , а не числа резисторов, для таких конструкций заключается в использовании сети или массива резисторов общей шины:
Массив резисторов общей шины ( отсюда )


Они доступны как сквозные SIP / DIP, так и SMD, с различными резисторами, в зависимости от ваших потребностей. Контакт шины подключен к земле, а остальные контакты подключены к соответствующим входам MCU, как показано на схеме. SIP резисторы ( отсюда )

Резисторные массивы SMD ( отсюда )


8

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

Итак, резисторы не нужны.

Относительно того, что подтягивание, а не выключение, это привычка, оставшаяся от логической схемы TTL 1970-х годов, когда потребовалось гораздо меньше тока, чтобы подтянуть вход вверх, чем вниз - резистор понижения потреблял бы больше энергии. Это больше не относится к современной логике CMOS, но традиция подтягиваний сохранилась, так что ранние 5-вольтовые чипы CMOS были совместимы со старой логикой TTL.


Я думал, что причина подтягивания была в том, что они обычно использовались с выходами с открытым коллектором, и как только вы привыкли идти по одному пути, вы будете продолжать идти по этому пути без веской причины.
Дункеры

Кроме того, TTL-выходы могут потреблять 16 мА, но только 800 мА, поэтому можно использовать подтягивание, чтобы увеличить мощность на выходе. TTL-вход подтягивается, если вы не подключите его, поэтому подтягивание по причинам ввода кажется мне немного странным. (Извините, слишком долго ждал редактирования предыдущего комментария ...)
dunkers

«TTL-вход подтянет себя» ... в некоторой степени да, но не надежно - большая оранжевая книга указывает 40-амперный Ih, чтобы гарантировать Vin> 2,4 В (для 7400; 20ua для 74LS). я не рекомендовал нигде работать ...
Брайан Драммонд

1
Разрушения против взлётов не просто исторические. С помощью подтягивающего резистора, другая сторона переключателя может быть заземлена, что часто удобно.
Олин Латроп

1
Семейство микроконтроллеров семейства TI MSP430 имеет как внутренние, так и понижающие нагрузки.
Прохожий

0

Вы никогда не хотите оставлять вход в логику открытым, предполагая, что он подтянется вверх или вниз. если вход остается открытым, это небольшая антенна, которая также подвержена воздействию токов внутри логического устройства. Таким образом, вы нажимаете вверх или вниз, чтобы обеспечить чистый и предсказуемый ввод. Я изучил это правило, работая в Fairchild Semiconductor в 1980-х годах.


1
Это не отвечает на вопрос, который был задан.
Фотон

Я думаю, что контекст исходного вопроса заключается в том, что есть кнопки и переключатели, которые являются входами для MCU. Если вывод ввода / вывода не используется, его можно сделать выводом, а затем получить низкий (или высокий) уровень из встроенного программного обеспечения. Это должно решить скрытые проблемы EMI, и это не требует внешнего резистора.
Ник Алексеев
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.