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

Estoy leyendo sobre el microcontrolador AVR. En un capítulo sobre puertos de E/S, me topé con un concepto que me cuesta entender: la resistencia pull-up.

Aquí hay una cita del libro de texto:

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

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

Y el diagrama asociado:

diagrama de resistencia pull-up

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

¿Bueno? Entonces, el libro brinda ejemplos de código ensamblador de cómo activamos las resistencias pull-up de un puerto. ¡Hacemos esto escribiendo en el registro PORTx sin configurar 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.

No está claro lo que no está claro para ti. ¿Luchas con el concepto general de la resistencia y por qué está ahí o tienes problemas para entender la lógica de "activación" que describiste? Por favor elabora.
Eche un vistazo a iamsuhasm.wordpress.com/tutsproj/avr-gcc-tutorial y vea si le ayuda.

Respuestas (3)

Una resistencia pull-up hace dos cosas:

  1. Evita que el pasador 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 en un buen estado conocido.

  2. Predetermina 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 con fines de detección, pero este uso es mucho menos frecuente que los dos anteriores.

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 el tablero.

Hay algo llamado hoja de datos y (y las notas de aplicación y los manuales de referencia del fabricante o del propietario de la propiedad intelectual en el caso de ARM) siempre debe ser su primer punto de referencia.

Los pull-ups se describen así en la hoja de datos completa:

ingrese la descripción de la imagen aquí

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