¿Deben los pines IO cada uno tener su propia resistencia pull-up / down?


13

Una pregunta muy básica:

¿Debe cada pin IO de un microcontrolador que sirve como entrada desde un interruptor o puente debe tener su propia resistencia pull-up / down?

Esquema simple de IO de 3 pines

En este ejemplo, cada pin es bajado por una resistencia, luego jalado por un interruptor 1P3T a VCC.

Parece sencillo, pero a medida que se usan más pines IO, ¿se requieren más resistencias? ¿Hay alguna manera inteligente de mantener la resistencia de la cuenta regresiva?

Pregunta relacionada: Compartir una resistencia pull-up

Respuestas:


16

Según el esquema proporcionado, si las 3 entradas compartieran una resistencia, entonces cualquiera de las líneas que se subieran a través del interruptor elevaría las 3 líneas a alto, contrarrestando el propósito del diseño: la MCU no sabría qué posición del interruptor está seleccionado.

Una forma común de reducir el recuento de piezas , no el recuento de resistencias, para tales diseños es usar una red o matriz de resistencias de bus comunes:
Conjunto de resistencia de bus común (desde aquí )


Están disponibles como SIP / DIP de orificio pasante, así como SMD, en una variedad de resistencias, según sus necesidades. El pin del bus está conectado a tierra, y los otros pines están conectados a las respectivas entradas de MCU como en su esquema. Conjuntos de resistencias SIP (desde aquí )

Conjuntos de resistencias SMD (desde aquí )


8

La mayoría de las MCU tienen resistencias opcionales pull-up (no down) incorporadas para cada pin, por lo que es normal tirar de las patillas hacia ABAJO con el interruptor (y tratar con la inversión de polaridad en el software).

Entonces, no se necesitan resistencias.

En cuanto a por qué el pullup, no hacia abajo, es un hábito que queda del circuito lógico TTL de 1970, donde se necesitaba mucha menos corriente para subir una entrada que hacia abajo: una resistencia pulldown desperdiciaría más energía. Esto ya no se aplica con la lógica CMOS actual, pero la tradición de pull-ups ha persistido, por lo que los primeros chips CMOS de 5V eran compatibles con la lógica TTL más antigua.


Pensé que la razón del pull-up era porque su uso común era con salidas de colector abierto, y una vez que tengas la costumbre de ir en una dirección, seguirás así sin una buena razón.
Dunkers

Además, las salidas TTL pueden hundir 16 mA pero generar solo 800 uA, por lo que se puede usar un pull-up para agregar músculo a una salida. Una entrada TTL se abriría sola si no la conectaras, por lo que un pull-up por razones de entrada me parece un poco extraño. (Lo siento, esperé demasiado tiempo en editar el comentario anterior ...)
dunkers

"una entrada TTL se levantaría sola" ... hasta cierto punto sí, pero no confiablemente: el gran libro naranja especifica un 40 microamperios Ih para garantizar Vin> 2.4V (para 7400; 20ua para 74LS) Dejar definitivamente abiertas las entradas TTL fue definitivamente no recomendado en ningún lugar donde trabajé ...
Brian Drummond

1
Pulldowns versus pullups no es simplemente histórico. Con una resistencia pullup, el otro lado del interruptor puede conectarse a tierra, lo que a menudo es conveniente.
Olin Lathrop

1
La familia de microcontroladores TI MSP430 tiene tanto pull-ups internos como pull-ups.
Passerby

0

Nunca querrás dejar una entrada a la lógica abierta suponiendo que se moverá hacia arriba o hacia abajo. Si una entrada se deja abierta, es una pequeña antena y también está sujeta a las corrientes dentro del dispositivo lógico. Así que tira hacia arriba o hacia abajo para asegurarte de tener una entrada limpia y predecible. Aprendí esta regla mientras trabajaba en Fairchild Semiconductor en la década de 1980.


1
Esto no responde la pregunta que se hizo.
El Photon

Creo que el contexto de la pregunta original es que hay botones y conmutadores que son entradas para una MCU. Si un pin de E / S no se usa, se puede convertir en una salida y luego bajar (o subir) del firmware. Eso debería abordar los problemas de EMI que acechan, y no requiere una resistencia externa.
Nick Alexeev
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.