Puede parecer una pregunta trivial, pero ¿cuándo se usa Pull up y Pull down como PUPDR
registro del GPIO? Supongo que se usa para definir el estado predeterminado del pin.
A continuación se incluye la imagen del botón pulsador en la placa nucleo STM32F401. Es evidente que PC13
IO se eleva a través de una resistencia de extracción en caso de que no se presione el botón.
Entonces, el pin IO como se muestra a continuación ya está alto, ¿no es así? ¿Importa si PC13
está configurado para estar en modo Pull up
o Pull down
evento?
En segundo lugar, para el LED ( LD2
) que está conectado PA5
: si el PUPDR
de este pin está configurado para tirar hacia abajo, hay una resistencia desplegable (como se muestra en la imagen IO de arriba) que está conectada PA5
y para tirar hacia arriba, hay un pull up a VDD ? Suponiendo que ese sea el caso, ¿no debería LD2
estar "encendido" al inicio del programa si PUPDR
está configurado en PULL UP
? (no parece ser el caso conmigo)
Según la hoja de datos , el valor de las resistencias pull up y pull down es nominal 40K
. (Tenga en cuenta que, a menudo, los valores de subida y bajada pueden ser diferentes).
Para el caso de PC13
, anote el valor de la resistencia pull up externa - 4K7
. Esto es mucho más bajo que las resistencias de extracción internas.
Si el pull up está habilitado, el valor resultante es 4K7 || 40K
, que es 4K2
.
Si el pull down está habilitado, entonces forma un divisor de voltaje. Debido a que el pull down es mucho mayor que el 4K7
, el voltaje de entrada estará por encima del umbral alto.
Probablemente hayan puesto un tirón más fuerte aquí porque saben que se usará para un interruptor y tiene potencial para captar interferencias externas. El condensador C15
también ayuda en este sentido.
Para PA5
, el valor de la resistencia pull up es tan alto que no habrá suficiente corriente para encender el LED.
pokloha
4K7
mayor que el tirón interno que es40K
awjlogan
4K7 > 40k
. Se agregó algo más de información. La impedancia de entrada es tan grande que no importa. Estará en paralelo con la resistencia de extracción, por lo que el valor efectivo será~40K
. ¿Tiene sentido?pokloha
40K || 4k7 ~ 4k7
y no~40K
aunque a menos que te estés refiriendo a otra cosa? ¿No es esto lo que parece con el botón pulsador ( tinyurl.com/yddcgj6h )?pokloha
~4k7
una impedancia de entrada. si se configura pull down, obtienes ~ 3.3V en la entrada tirando de ella hacia arriba. No estoy seguro de lo que sucede cuando se establece pull up y cuando no se establece pull up ni pull down (flotante). ¿No está R30 allí para tirar del alfiler alto de todos modos?awjlogan
40K || 4K7 ~ 4K2
. En su esquema vinculado, el40K
menú desplegable no debe estar conectado.R30
siempre tira del pin alto, como mencioné en mi respuesta, la razón por la que tienen este pull up más fuerte es que está en un pin que se conecta al "mundo" (no a otro IC), y es más probable que se vea afectado por la interferencia. El4K7
tirón más fuerte mitiga eso, mientras que el40K
solo podría no ser lo suficientemente fuerte. ¿Eso responde a tu consulta?pokloha
awjlogan
R30
un fuerte tirón externo enPC13
. Para los tirones intercambiables, no puede tener ambos al mismo tiempo. Si configuraPC13
como pull up , tiene un pull up efectivo40K || 4K7
y si habilita el pull down , obtiene un divisor de voltaje como dije en la respuesta. :)