Что самое подходящее? Потяните вверх или потяните вниз

Это порт ввода-вывода ATMEGA328p в соответствии с 76-й страницей таблицы данных.

ATMEGA328p GPIO

Насколько я знаю, Pull up является наиболее подходящей системой, потому что многие всплески напряжения соответствуют логической 1. Таким образом, если мы можем нормально подать логическую 1, мы можем избежать нежелательных срабатываний из-за всплесков.

В этой теме есть некоторые пояснения. Но меня это не может удовлетворить, потому что порт ATMEGA328p двунаправленный.

Объясните, что является наиболее подходящим способом (потяните вверх / потяните вниз), когда мы используем вход кнопки в порт с помощью диаграммы выше.

Ответы (3)

Блок ввода-вывода ATmega328p обеспечивает только функцию подтяжки. Внутреннего вытягивания нет. Я обвел соответствующую часть схемы на диаграмме ниже — обратите внимание, что в этой схеме нет «зеркала», чтобы притянуть контакт к земле.

(Конечно, по-прежнему можно установить на штифте жесткий минимум. Однако это не подходит для использования в качестве нисходящего; штифт всегда будет считываться как низкий, если он установлен на низком уровне, а I/ Блок O может быть поврежден, если принудительно понизить его предел в 40 мА от кнопки.)

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


Блок ввода-вывода ATmega328p, схема подтяжки обведена

Ваше предположение о том, что подтягивания каким-то образом менее восприимчивы к шуму, на самом деле не имеет под собой никаких оснований.

С устройствами CMOS это действительно не имеет большого значения. Требуемый ток практически одинаков как для подтягивания, так и для подтягивания. TTL, с другой стороны, требует понижения напряжения, чтобы поглотить значительное количество тока. Последнее, вероятно, является основной причиной распространенности подтягиваний.

Однако, если линия должна управляться от другого штифта ввода-вывода, вы должны выбрать ту сторону, которая создает наименьшую нагрузку на ведущий штифт.

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

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

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