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

Después de aprender y experimentar con microcontroladores, entendí el concepto de resistencias pull-up y pull-down. Ahora entiendo cuándo y cómo usarlos, y cómo funcionan. Principalmente he usado 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 MCU en BAJA. Creo que tendría más sentido usar una resistencia desplegable, de modo que la entrada sea BAJA cuando el interruptor esté abierto, pero esa es solo mi forma de pensar.

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

Como (otro) novato en electrónica, debo decir que esta pregunta no es estúpida. No convertirse tampoco lo sé, pero porque: "Visto: 1989 veces".
*porque *12998 veces

Respuestas (5)

La respuesta depende de cuál desee que sea la configuración "predeterminada". Por ejemplo, supongamos que tiene un MOSFET de canal N descendente y desea que esté desactivado de forma predeterminada. Luego, usaría una resistencia desplegable para garantizar este comportamiento si la entrada se vuelve de alta impedancia.

esquemático

simular este circuito : esquema creado con CircuitLab

Por otro lado, suponga que tiene un MOSFET de canal P aguas arriba y desea que esté desactivado por defecto. Esta vez se requiere una resistencia pull up para crear este comportamiento.

esquemático

simular este circuito

También existe el caso alternativo en el que desea que un dispositivo esté activado de forma predeterminada, en cuyo caso los dos casos anteriores se invertirían (pull hacia arriba para el MOSFET de canal N, desplegable para el MOSFET de canal P).

Algunas otras consideraciones:

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

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

  3. Puede extraer más corriente usando resistencias pullup/pulldown, dependiendo de lo que esté conectado a la entrada/salida.

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

... Y cualquier número de razones muy específicas de la aplicación por las que se puede preferir una configuración.

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

Si son botones, asegúrese de usar un circuito antirrebote (o hágalo en el software).

esquemático

simular este circuito : esquema creado con CircuitLab

+1 para la única comparación lado a lado de activo-alto frente a activo-bajo que he visto. Genial, aclara las cosas.

Si el diseño de su circuito es tal que puede elegir, en otras palabras, el resto del circuito no requiere que use un pull up o pull down, entonces debe considerar la seguridad en caso de falla.

Si su microcontrolador falla, o simplemente falla la salida, el pull up o pull down estarán en efecto. ¿Cómo cambiará esto el funcionamiento de su dispositivo? ¿Pondrá en peligro al usuario, por ejemplo, forzando el encendido de un elemento calefactor? ¿Afectará la seguridad, como deshabilitar la cerradura de una puerta?

Las resistencias pull up/down determinan el estado predeterminado del cable. Decidir cuál debe ser el estado predeterminado depende de la seguridad, la protección y, finalmente, la funcionalidad deseada del circuito.

Si está trabajando con un Arduino/ATmega328, puede usar la resistencia pull-up incorporada .

Hay resistencias pullup de 20K integradas en el chip Atmega a las que se puede acceder desde el software. Se accede a estas resistencias pullup integradas configurando pinMode() como INPUT_PULLUP. Esto invierte efectivamente el comportamiento del modo de ENTRADA, donde ALTO significa que el sensor está apagado y BAJO significa que el sensor está encendido.

El valor de este pullup depende del microcontrolador utilizado. En la mayoría de las placas basadas en AVR, el valor está garantizado entre 20 kΩ y 50 kΩ. En Arduino Due, está entre 50kΩ y 150kΩ. Para conocer el valor exacto, consulte la hoja de datos del microcontrolador de su placa.

Al conectar un sensor a un pin configurado con INPUT_PULLUP, el otro extremo debe conectarse a tierra. En el caso de un interruptor simple, esto hace que el pin indique ALTO cuando el interruptor está abierto y BAJO cuando se presiona el interruptor.

La Raspberry Pi también los tiene .

A menudo desea pull-ups o downs, a menudo downs, en las salidas de dispositivos programables como microcontroladores para definir su estado durante las secuencias de encendido. Estas salidas suelen ser de alta impedancia al encenderse, y los dispositivos conectados pueden recibir señales no deseadas si no se hace esto. Si, por ejemplo, hay varios suministros involucrados, es mejor diseñar cada sección como segura con cero voltios en las entradas y usar pull-downs.

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

Aclaración: la pregunta no era por qué uno debería usar resistencias pull-up o pull-down, sino si uno debería tirar hacia arriba o hacia abajo.