19 votos

Uso de resistencias pull-up y pull-down en pines MCU de entrada o salida

¿Las resistencias pull-up/down (internas o externas) sólo son necesarias para los pines INPUT de la MCU? Por el contrario, un pin MCU configurado como SALIDA "sabe a qué nivel está" porque es él el que lo conduce - un pin MCU SALIDA "flotante" unido a alguna entrada de otro circuito no tiene sentido, porque el estado del pin MCU sólo puede ser alto o bajo... ¿estoy en lo cierto? Ahora, en el arranque o fallo de la MCU, puede ser beneficioso tener un pull-up/down atado a esta línea "salida MCU a entrada IC" para asegurar que la entrada a algún IC nunca está flotando.

Tal vez haya respondido a mi propia pregunta... ¿se pueden utilizar resistencias pull-up/down tanto en los pines de entrada como en los de salida, dependiendo de la aplicación?

24voto

Passerby Puntos 28913

Los Pull-ups y Pull-downs se utilizan normalmente para asegurar que una línea tiene un estado definido mientras no es conducida activamente. Se utilizan en las entradas para evitar líneas flotantes, cambios rápidos entre alto y bajo y una región intermedia "indefinida". Las salidas normalmente no los necesitan.

Pero la mayoría de los pines de la mcu son GPIO, y a veces en el arranque se definen como entradas en lugar de salidas. Como usted ha dicho, a veces usted no quiere una entrada de pin IC flotante en el arranque, especialmente como un pin de reset que normalmente conducir con GPIO de su microcontrolador.

Esto ocurre cuando se utiliza un Débil Pull-up o Pull-down en la línea. Como son débiles, y eliges el estado por defecto, no interfieren con tu circuito (si la entrada debe estar baja todo el tiempo, y luego alta, eliges un pull-down débil, y viceversa), pero consumen un poco de corriente. Esta es la razón por la que elegir una resistencia débil (Cuanto mayor sea el valor, el más débil) suficiente para el trabajo.

Otra configuración de salida normal que utiliza pull-ups (o pull-downs, más raro) es Drenaje abierto o Colector abierto conexiones. Éstas sólo conducen una conexión a bajo, o liberan la línea, dejándola flotante. Los pull-ups se utilizan para llevar la línea a un estado lógico alto.

10voto

Brian Drummond Puntos 27798

Tienes razón; normalmente no necesitas pullups en las salidas, pero pueden ser útiles para mantener la seguridad durante el tiempo de arranque, etc.

Otra razón para utilizar un pull-up en una salida: si varias salidas de varias MPUs están conectadas entre sí, usted realmente no querrás uno que conduzca VCC y otro que conduzca 0V en el mismo cable. Así que o conduces 0V en la salida o apagas la salida (quizás configurándola como una entrada). Cuando todas las salidas están apagadas, el cable es llevado a '1' (Vcc) por el pullup. Esto se llama una señal "AND cableada". (Puedes hacer lo mismo conduciendo a '1' o apagado, con un pulldown R, entonces se llama un OR cableado).

Este patrón tiene varios usos, como permitir que cualquiera de las MPU señale un error o encienda un LED, o permitir que todas se turnen para enviarse mensajes entre sí a través de un único cable.

4voto

Ryan Ginstrom Puntos 8354

Como has dicho, el uso de resistencias pullup/pulldown en los pines que se espera que sean pines de salida puede estar ahí para garantizar un estado de entrada.

Esto se hace para mitigar el fallo del firmware/MCU, pero sólo funcionará para proteger contra el estado de alta impedancia (básicamente el pin está configurado como entrada por accidente).

La mayoría de los MCU con los que estoy familiarizado ponen por defecto los pines IO en estado de entrada de alta impedancia en el arranque (pero no lo garantizo, y no tengo experiencia ni de lejos con todas las familias de MCU), lo que significa que puede pasar algún tiempo antes de que se ejecute el código para inicializar el estado de los pines.

A veces esto no importa, otras veces sí.

3voto

JW. Puntos 145

La respuesta es que depende de la familia del microcontrolador, y cuál es su comportamiento por defecto en Power On Reset. Si el microcontrolador sólo puede ser configurado para "salida" o "entrada" en un pin, esto normalmente significa que está utilizando un controlador Totem-Pole para la salida - es decir, es esencialmente la salida de una puerta CMOS, en cuyo caso la salida es siempre conducida a un carril, por lo que no hay razón para influir pasivamente en ella. El único caso en el que tiene sentido utilizar pull-ups / pull-downs en una salida es cuando se configura como colector abierto / topología de drenaje abierto. Es mucho más común ver opciones internas de pull-up/pull-down que sólo son aplicables cuando un pin está configurado como entrada. Si puedes garantizar que en tu sistema la entrada siempre es conducida por algo, esto desperdicia un poco de energía.

2voto

jns Puntos 449

Puedes tener un pin que sea una salida algunas veces como para hacer I2C.

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