Может показаться тривиальным вопросом, но когда использовать Pull up и Pull down в качестве PUPDR
регистра GPIO? Я предполагаю, что он используется для определения состояния вывода по умолчанию.
Ниже приведено изображение кнопки на плате STM32F401 nucleo. Очевидно, что PC13
IO получает высокий уровень через подтягивающий резистор, если кнопка не нажата.
Таким образом, вывод ввода-вывода, как показано ниже, уже находится в высоком положении, не так ли? Имеет ли значение, PC13
настроено ли это событие в режиме Pull up
или Pull down
?
Во-вторых, для светодиода ( LD2
), который подключен к PA5
: если PUPDR
этот контакт настроен на подтягивание, есть подтягивающий резистор (как показано на изображении ввода-вывода выше), который подключен к PA5
и для подтягивания, есть подтягивание к VDD ? Предполагая, что это так, не должно LD2
быть «включено» при запуске программы, если PUPDR
установлено значение PULL UP
? (видимо у меня не так)
Судя по техническому описанию , номиналы подтягивающего и подтягивающего резисторов номинальны 40K
. (Обратите внимание, что часто значения подтягивания вверх и вниз могут отличаться.)
В случае PC13
обратите внимание на значение внешнего подтягивающего резистора - 4K7
. Это намного ниже, чем у внутренних тяговых резисторов.
Если подтягивание включено, результирующее значение равно 4K7 || 40K
, то есть 4K2
.
Если pull down включен, то он образует делитель напряжения. Поскольку подтягивание намного больше, чем 4K7
, входное напряжение будет выше верхнего порога.
Они, вероятно, сделали здесь более сильное подтягивание, так как знают, что оно будет использоваться для выключателя и может улавливать внешние помехи. Конденсатор C15
также помогает в этом отношении.
Для PA5
значение подтягивающего резистора настолько велико, что тока будет недостаточно для зажигания светодиода.
Поклоха
4K7
больше внутренней тяги, которая40K
авжлоган
4K7 > 40k
. Добавил еще немного информации. Входное сопротивление настолько велико, что это не имеет значения. Он будет подключен параллельно нагрузочному резистору, поэтому эффективное значение будет равно~40K
. Имеет ли это смысл?Поклоха
40K || 4k7 ~ 4k7
а не~40K
хотя, если вы имеете в виду что-то еще? разве это не то, что в значительной степени выглядит для кнопки ( tinyurl.com/yddcgj6h )?Поклоха
~4k7
входному сопротивлению. если установлено понижение, вы получаете ~ 3,3 В на входе, подтягивая его к высокому уровню. Я не уверен, что происходит, когда установлено подтягивание и когда не установлено ни подтягивание, ни опускание (плавающее). а разве R30 там не для того, чтобы тянуть штифт высоко?авжлоган
40K || 4K7 ~ 4K2
. В вашей связанной схеме40K
выпадающее меню не должно быть подключено.R30
всегда вытягивает штифт высоко - как я уже упоминал в своем ответе, причина, по которой они имеют это более сильное подтягивание, заключается в том, что он находится на штыре, который взаимодействует с «миром» (а не с другой ИС), и на него с большей вероятностью будут воздействовать помехи. Более сильное4K7
подтягивание смягчает это, в то время как40K
одно может быть недостаточно сильным. Это отвечает на ваш запрос?Поклоха
авжлоган
R30
как сильное внешнее подтягивание наPC13
. Что касается переключаемых тяг, вы не можете иметь оба одновременно. Если вы установитеPC13
как pull up , у вас будет эффективное подтягивание,40K || 4K7
а если вы включите pull down , вы получите делитель напряжения, как я сказал в ответе. :)