¿Cuál es el propósito de una resistencia de pull-up en un microcontrolador?

1

Estoy leyendo sobre el microcontrolador AVR. En un capítulo sobre puertos de E / S me he topado con un concepto que tengo problemas para entender: la resistencia de pull-up.

Aquí hay una cita del libro de texto:

  

Función de registro PORT en la entrada de datos:

     

Hay una resistencia de pull-up para cada uno de los pines del AVR. Si ponemos s en los bits del registro PORTx, se activan las resistencias de pull-up. En los casos en los que no hay nada conectado al pin o los dispositivos conectados tienen una impedancia alta, la resistencia levanta el pin. Vea la figura 4-4. Si ponemos 0s en los bits del registro PORTx, la resistencia de pull-up está inactiva.

Y el diagrama asociado:

Ahora, tengan paciencia conmigo; Tengo entendido que controlamos la dirección de los datos de los puertos escribiendo 1s o 0s en el registro DDRx. Entonces, si quiero leer datos de un puerto, borro el registro DDRx (0s) y obtengo mis datos del registro PINx. A la inversa, si quiero escribir datos, configuro el registro DDRx (1s) y escribo en el registro PORTx.

esta bien? Así que el libro da ejemplos en código ensamblador de cómo activamos las resistencias de pull-up de un puerto. Hacemos esto escribiendo al registro PORTx sin configurar el DDRx!

¿Cuál es la función o el efecto deseado de hacer esto? No me queda claro, incluso después de haber leído la mitad del libro.

    

3 respuestas

5

Una resistencia de pull-up hace dos cosas:

  1. Evita que el pin flote

    Las entradas CMOS flotantes pueden provocar un mayor consumo de energía o, en algunos casos, incluso la destrucción del dispositivo. Un pull-up mantiene la entrada a un estado bueno conocido.

  2. Por defecto, la entrada a un valor alto

    Esto es útil cuando se trata de salidas de drenaje abierto que funcionan de forma cableada o desplegable, como líneas de interrupción, o incluso con botones simples.

También hace que la entrada genere una pequeña cantidad de corriente para fines de detección, pero este uso es mucho menos frecuente que los dos anteriores.

    
respondido por el Ignacio Vazquez-Abrams
4

El pull-up se usa para evitar que la entrada flote para ciertos tipos de entrada.

Por ejemplo, un interruptor puede conectar el pin a tierra cuando está cerrado. Cuando el interruptor está abierto, necesitamos conectar el pin a un 1. lógico. El pull-up archiva esto. El pull-up puede ser externo, pero usar un micro con la posibilidad de pull-ups internos ahorra costos y espacio en la placa.

    
respondido por el Houston Fortney
1

Hay algo que se llama hoja de datos y (y las notas de la aplicación y los manuales de referencia del fabricante o del propietario de IP en el caso de ARM) siempre deben ser su primer punto de referencia.

Los pull-ups se describen como tales en la hoja de datos completa:

Como puede ver, el pull-up se desactiva automáticamente cuando la salida está habilitada o la deshabilitación global de pull-up está activa.

    
respondido por el Spehro Pefhany

Lea otras preguntas en las etiquetas