Это порт ввода-вывода ATMEGA328p в соответствии с 76-й страницей таблицы данных.
Насколько я знаю, Pull up является наиболее подходящей системой, потому что многие всплески напряжения соответствуют логической 1. Таким образом, если мы можем нормально подать логическую 1, мы можем избежать нежелательных срабатываний из-за всплесков.
В этой теме есть некоторые пояснения. Но меня это не может удовлетворить, потому что порт ATMEGA328p двунаправленный.
Объясните, что является наиболее подходящим способом (потяните вверх / потяните вниз), когда мы используем вход кнопки в порт с помощью диаграммы выше.
Блок ввода-вывода ATmega328p обеспечивает только функцию подтяжки. Внутреннего вытягивания нет. Я обвел соответствующую часть схемы на диаграмме ниже — обратите внимание, что в этой схеме нет «зеркала», чтобы притянуть контакт к земле.
(Конечно, по-прежнему можно установить на штифте жесткий минимум. Однако это не подходит для использования в качестве нисходящего; штифт всегда будет считываться как низкий, если он установлен на низком уровне, а I/ Блок O может быть поврежден, если принудительно понизить его предел в 40 мА от кнопки.)
Если вы отключите внутренний подтягивающий резистор, вы, безусловно, сможете подключить внешний подтягивающий резистор. Однако в этом нет существенного преимущества, особенно для низкоскоростного ввода-вывода, такого как кнопка.
Ваше предположение о том, что подтягивания каким-то образом менее восприимчивы к шуму, на самом деле не имеет под собой никаких оснований.
С устройствами CMOS это действительно не имеет большого значения. Требуемый ток практически одинаков как для подтягивания, так и для подтягивания. TTL, с другой стороны, требует понижения напряжения, чтобы поглотить значительное количество тока. Последнее, вероятно, является основной причиной распространенности подтягиваний.
Однако, если линия должна управляться от другого штифта ввода-вывода, вы должны выбрать ту сторону, которая создает наименьшую нагрузку на ведущий штифт.
Как правило, выбор того, что использовать, больше определяется последующей логикой, а не требованиями схемы.
Одним из факторов, который следует учитывать, является то, что вход может быть переключателем или кнопкой, расположенной на некотором расстоянии от схемы. Для входа с понижением напряжения необходимо, чтобы шина питания шла к кнопке. Случайное замыкание на землю может привести к перегоранию предохранителя. Это может быть предпочтительнее, чем подтягивание короткой кнопки, но обычно это не так.
Можно добавить резистор в подтягивающую линию питания, но это усложняет схемотехнику и несколько снижает помехоустойчивость.