Уточнение некоторых сомнений относительно регистра PUPDR GPIO [STM32]

Может показаться тривиальным вопросом, но когда использовать Pull up и Pull down в качестве PUPDRрегистра GPIO? Я предполагаю, что он используется для определения состояния вывода по умолчанию.

Ниже приведено изображение кнопки на плате STM32F401 nucleo. Очевидно, что PC13IO получает высокий уровень через подтягивающий резистор, если кнопка не нажата.

введите описание изображения здесь

Таким образом, вывод ввода-вывода, как показано ниже, уже находится в высоком положении, не так ли? Имеет ли значение, PC13настроено ли это событие в режиме Pull upили Pull down?

введите описание изображения здесь

Во-вторых, для светодиода ( LD2), который подключен к PA5: если PUPDRэтот контакт настроен на подтягивание, есть подтягивающий резистор (как показано на изображении ввода-вывода выше), который подключен к PA5и для подтягивания, есть подтягивание к VDD ? Предполагая, что это так, не должно LD2быть «включено» при запуске программы, если PUPDRустановлено значение PULL UP? (видимо у меня не так)

введите описание изображения здесь

Ответы (1)

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

В случае PC13обратите внимание на значение внешнего подтягивающего резистора - 4K7. Это намного ниже, чем у внутренних тяговых резисторов.

  • Если подтягивание включено, результирующее значение равно 4K7 || 40K, то есть 4K2.

  • Если pull down включен, то он образует делитель напряжения. Поскольку подтягивание намного больше, чем 4K7, входное напряжение будет выше верхнего порога.

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

Для PA5значение подтягивающего резистора настолько велико, что тока будет недостаточно для зажигания светодиода.

Извините, а каково значение входного сопротивления микроконтроллера? Обычно это мегаомы (не уверен в серии STM), но если это так, ваше замечание о том, что ток не вырабатывает достаточного тока для освещения светодиода, имеет смысл. (при условии, что подтягивание включено, у вас есть последовательное входное сопротивление 40 кОм и MCU). Не уверен в вашем объяснении кнопки и в том, насколько она 4K7больше внутренней тяги, которая40K
@Pokloha Извините, опечатка в 4K7 > 40k. Добавил еще немного информации. Входное сопротивление настолько велико, что это не имеет значения. Он будет подключен параллельно нагрузочному резистору, поэтому эффективное значение будет равно ~40K. Имеет ли это смысл?
40K || 4k7 ~ 4k7а не ~40Kхотя, если вы имеете в виду что-то еще? разве это не то, что в значительной степени выглядит для кнопки ( tinyurl.com/yddcgj6h )?
Если установлено подтягивание, я вижу, что они параллельны, что приводит к ~4k7входному сопротивлению. если установлено понижение, вы получаете ~ 3,3 В на входе, подтягивая его к высокому уровню. Я не уверен, что происходит, когда установлено подтягивание и когда не установлено ни подтягивание, ни опускание (плавающее). а разве R30 там не для того, чтобы тянуть штифт высоко?
@Pokloha - вот что я написал - 40K || 4K7 ~ 4K2. В вашей связанной схеме 40Kвыпадающее меню не должно быть подключено. R30всегда вытягивает штифт высоко - как я уже упоминал в своем ответе, причина, по которой они имеют это более сильное подтягивание, заключается в том, что он находится на штыре, который взаимодействует с «миром» (а не с другой ИС), и на него с большей вероятностью будут воздействовать помехи. Более сильное 4K7подтягивание смягчает это, в то время как 40Kодно может быть недостаточно сильным. Это отвечает на ваш запрос?
Я поставил 40K pull down, потому что это то, что имеет схема MCU, и, предполагая, что pull down включен, вы формируете делитель напряжения между 4,7K и 40K, который дает вам ~ 5 В на выводе IO, нет?
@Pokloha На схеме нет переключаемых подтягиваний вверх / вниз - они встроены в микроконтроллер. Существует R30как сильное внешнее подтягивание на PC13. Что касается переключаемых тяг, вы не можете иметь оба одновременно. Если вы установите PC13как pull up , у вас будет эффективное подтягивание, 40K || 4K7а если вы включите pull down , вы получите делитель напряжения, как я сказал в ответе. :)