54 votos

Cuándo usar resistencias de pull-down vs. resistencias de pull-up

Después de aprender y experimentar con microcontroladores, he comprendido el concepto de resistencias pull-up y pull-down. Ahora entiendo cuándo y cómo utilizarlas, y cómo funcionan. Principalmente he utilizado pull-ups porque me enseñaron a hacerlo, pero siempre me ha parecido un poco al revés, ya que cerrar el interruptor establece la entrada del MCU en LOW. Creo que tendría más sentido usar una resistencia pull-down, para que la entrada esté en LOW cuando el interruptor está abierto, pero esa es solo mi forma de pensar.

¿Debo tirar hacia arriba o hacia abajo mis entradas de un solo tiro? ¿Cuándo se prefiere tirar hacia abajo en lugar de tirar hacia arriba y viceversa?

3 votos

Como un principiante en electrónica, debo decir que esta pregunta de ninguna manera es estúpida. No porque yo tampoco sepa la respuesta, sino porque: "Visto: 1989 veces".

0 votos

*porque* 12998 veces

32voto

Ryan Ginstrom Puntos 8354

La respuesta depende de cuál quieres que sea la configuración "predeterminada". Por ejemplo, supongamos que tienes un MOSFET N-canal aguas abajo y quieres que esté predeterminadamente apagado. Entonces usarías una resistencia de pull-down para asegurar este comportamiento si la entrada se vuelve de alta impedancia.

schematic

simular este circuito – Esquemático creado utilizando CircuitLab

Por otro lado, supongamos que tienes un MOSFET P-canal aguas arriba y quieres que esté predeterminadamente apagado. En este caso se requiere una resistencia de pull up para crear este comportamiento.

schematic

simular este circuito

También está el caso alternativo donde quieres que un dispositivo esté predeterminadamente encendido, en cuyo caso los dos casos anteriores se invertirían (pull-up para el MOSFET N-canal, pull-down para el MOSFET P-canal).

Algunas otras consideraciones:

  1. Las líneas I2C especifican resistencias de pull-up porque se "espera" que los dispositivos tengan un drenaje abierto a tierra, y por lo tanto necesitan alguna forma de elevar el potencial de la línea.

  2. Los comparadores analógicos suelen estar configurados como dispositivos de drenaje abierto, y por lo tanto también necesitan resistencias de pull up para obtener una salida de alto potencial.

  3. Puedes consumir más corriente usando resistencias de pull-up/pull-down, dependiendo de lo que esté conectado a la entrada/salida.

  4. Cualquiera de las configuraciones podría funcionar igual de bien en tu aplicación (es decir, no hay una ventaja significativa de una forma sobre la otra).

... Y cualquier cantidad de razones muy específicas de la aplicación por las que se podría preferir una configuración.

19voto

FredB Puntos 496

Si la señal aún no tiene una especificación, utiliza la que más sentido tenga para ti. Es tu elección hacer que una entrada sea activa-alta o activa-baja.

Si son botones, asegúrate de usar un circuito de rebote (o hacerlo en software).

esquemático

simular este circuito – Esquemático creado usando CircuitLab

1 votos

+1 por la única comparación lado a lado de activo alto vs. activo bajo que he visto. Bueno, aclara las cosas.

15voto

Federico Builes Puntos 1940

Si tu diseño de circuito es tal que puedes elegir - en otras palabras, no estás obligado por el resto del circuito a usar un pull up o pull down - entonces debes considerar la seguridad en caso de falla.

Si tu microcontrolador falla, o simplemente ese output falla, el pull up o pull down entrará en efecto. ¿Cómo cambiará esto la operación de tu dispositivo? ¿Pondrá al usuario en peligro - por ejemplo, forzando un elemento calefactor encendido? ¿Afectará la seguridad, como deshabilitando un cerrojo de puerta?

Los resistores pull up/down determinan el estado predeterminado del cable. Decidir cuál debería ser el estado predeterminado depende de la seguridad, la seguridad y, finalmente, la funcionalidad deseada del circuito.

6voto

Pete Skelly Puntos 683

Si estás trabajando con un Arduino/ATmega328 puedes utilizar la resistencia pull-up integrada.

Hay resistencias pull-up de 20K integradas en el chip Atmega que pueden ser accedidas desde el software. Estas resistencias pull-up integradas se acceden configurando el pinMode() como INPUT_PULLUP. Esto invierte efectivamente el comportamiento del modo INPUT, donde HIGH significa que el sensor está apagado, y LOW significa que el sensor está encendido.

El valor de esta resistencia pull-up depende del microcontrolador utilizado. En la mayoría de las placas basadas en AVR, el valor está garantizado entre 20kΩ y 50kΩ. En el Arduino Due, está entre 50kΩ y 150kΩ. Para el valor exacto, consulta la hoja de datos del microcontrolador en tu placa.

Cuando se conecta un sensor a un pin configurado con INPUT_PULLUP, el otro extremo debe estar conectado a tierra. En el caso de un simple interruptor, esto hace que el pin lea HIGH cuando el interruptor está abierto, y LOW cuando el interruptor está presionado.

La Raspberry Pi también los tiene.

4voto

Dave B Puntos 29

A menudo se prefieren las resistencias de pull-ups o pull-downs, en muchas ocasiones pull-downs, en las salidas de dispositivos programables como microcontroladores para definir su estado durante las secuencias de encendido. Tales salidas suelen tener una impedancia alta al encenderse, y los dispositivos conectados pueden recibir señales no deseadas si esto no se hace. Si, por ejemplo, están involucrados múltiples suministros, es mejor diseñar cada sección como segura con cero voltios en las entradas y utilizar pull-downs.

Más oscuro que las otras respuestas, pero he visto ejemplos que involucran humo azul y amenazas de acciones legales.

0 votos

Aclara: la pregunta no era por qué debería usarse resistencias pull-up o pull-down, sino si se debe tirar hacia arriba o hacia abajo.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X