Conduciendo un LED desde un pin de uC con el ánodo por encima del riel Vcc de uC

2

Estoy usando un 3.3V uC (ATMega 328p en Arduino Pro Mini) que funciona con 3 alcalinas (nominal 4.5V). Entonces Vin = 4.5V, Vcc = 3.3V

Me gustaría manejar los LED de algunos pines, digamos a 20m cada uno. Y estaba pensando en conectar los ánodos de LED a Vin (4.5v) con el cátodo que va al pin de la unidad, en lugar de poner todas las corrientes de LED a través del regulador a bordo de 3.3v. (Además, aunque usaré los LED rojos en el ejemplo aquí, es posible que también quiera usar el azul, que sería más cómodo con un poco más de voltaje de conducción).

Imagino un LED rojo a aproximadamente 2v Vfwd, por lo que la resistencia debería caer 2.5v @ 20ma, digamos 1K2 ohmios.

El problema: esto conecta un pin uC a una fuente 1.2V sobre su riel Vcc (a través de un LED).

Creo que estamos bien cuando el LED está encendido (pin bajo). Pero, ¿qué hay de apagar el LED?

simular este circuito : esquema creado usando CircuitLab

Enfoque 1: tire del pin uC alto (3.3v) para apagar el LED. El LED está entre 4.5V y 3.3V, y la diferencia de 1.2v no será suficiente para iluminarlo, y CREO que tampoco pondrá el pin demasiado alto por encima de su riel. Pero los LED no son dispositivos ideales, de ahí esta pregunta.

Enfoque 2: truco uC pin (haz que sea una entrada) para apagar el LED. El LED se encuentra entre 4.5 V y la entrada de alta impedancia (junto con su diodo de protección estática a Vcc). Una vez más, espero que el Vfwd del LED sea suficiente protección para el pin de la uC.

¿Alguno de estos enfoques, o ambos, es viable y seguro para la UC?

EDITAR: sustituye la resistencia de 120 ohm arriba, oops.

    
pregunta Zeph

4 respuestas

3

Lo que estás hablando no es un gran riesgo para un proyecto de pasatiempo ... algunas cosas en las que pensar.

Lo que realmente importa no es el \ $ V_F \ $ en la corriente de operación, es el \ $ V_F \ $ con el brillo máximo "off" que es aceptable. Ese voltaje puede ser tan bajo como 1.4-1.5 voltios para un LED rojo de baja corriente; en una habitación oscura pueden ser bastante visibles con microamperios de corriente. Conducir la salida a 3.3V (nivel nominal) nos da 3.3V en la salida. Una celda alcalina nueva con carga mínima podría ser 1.63V / celda a temperatura ambiente (solo una medida), por lo que 3 sería 4.89V. Eso lo deja con 1.59 V a través de la resistencia LED + (nominal, no permitiendo que los 3.3 V puedan ser un poco por ciento bajos).

Eso es demasiado para asegurar que no emita un montón de luz.

Por lo tanto, lo hacemos en tres estados, lo que permite que la salida pase un poco por encima de Vcc sin que fluya mucha corriente. 300mV es seguro, la hoja de datos dice 500mV máximo absoluto. A 500 mV, tendríamos 1.09 V en el LED, probablemente lo suficiente para asegurarnos de que esté apagado, al menos en condiciones nominales. La cifra de "máximo absoluto" nunca es algo bueno de diseñar, pero generalmente hay una advertencia en esta figura en particular que permite esa tensión o un poco más si la corriente es limitada.

Entonces, creo que esto funcionará (con tri-estado, no push-pull), y también creo que es lo suficientemente aceptable para un proyecto de hobby asumiendo que nadie va a usar un eliminador de batería en el circuito en el futuro *. Tenga en cuenta que el margen en los LED rojos es mínimo y considere evitar el rojo en lugar de amarillo o naranja. O simplemente agregue un diodo de silicio en serie con los LED rojos (se puede usar un diodo para varios LED).

  • Si la red de protección contra ESD en el ATMEGA328P comienza a conducir, tenderá a elevar el suministro de 3.3 V, fuera del control del regulador. Esto no es bueno para la estabilidad y posiblemente podría dañar algo, aunque el ATMEGA328P-M está clasificado para una operación de 5V.

Una vez hice algo como esto en un producto comercial (para conducir una serie de LED con Vf alto usando una salida de corriente constante de 5V), pero diseñé una fuente de alimentación con el voltaje de bola impar y el coeficiente de temperatura adecuado para Haga coincidir los LEDs y así optimizar la situación. Creo que el suministro fue de alrededor de 8-9V. Trabajó un tratamiento, fácilmente de -20 ° C a 80 ° C (la especificación fue de 0-50 ° C).

    
respondido por el Spehro Pefhany
3

No es una buena idea someter un pin de E / S a voltajes por encima del nivel de energía del procesador.

Usa un transistor:

Añadido:

Lasolucióncorrectaquenoinfringeningúnparámetroenlahojadedatosseencuentraarriba.Sinembargo,siestátratandodesalirseconlasuya,lomásprobableesquefuncionesiseaseguradequeelpindesalidaestésiempreactivado.

EstamosasumiendounprocesadormodernoconunasalidaCMOS.EltransistorCMOSpuedeconducirlacorrienteenambasdireccionescuandoestáencendido.ElpocodecorrientequeobtendráatravésdelLEDcuandolasalidaseaaltaserealizaráatravésdeltransistordelcontroladorsuperioraVdd.Elvalordeesacorrientea1.2Vdepolarizacióndirectaserádifícildepredecir,variarásignificativamenteconlatemperaturayvariarádeunaparteaotra.Sinembargo,será"muy pequeño" en comparación con el consumo de corriente general del procesador.

Si cambia la salida entre la impedancia baja y alta accionada en lugar de la alta y baja impulsada, entonces el circuito de protección para ese pin tomará la pequeña corriente del LED en su lugar. Para algunos diseños, esto es solo un diodo para Vdd y, por lo tanto, no es peor que tener la mejor conducta FET. Sin embargo, otros diseños tienen circuitos más complicados que serían peores para descargar la corriente. Adivinar qué causa el menor problema es uno de los problemas con los que se encuentra al ignorar las especificaciones.

Hay dos formas más de estar completamente en especificaciones:

  1. Agrega una pequeña resistencia de sangrado al suelo. Dimensione esto para tomar lo que determine que será la corriente máxima de LED en todas las condiciones. El LED puede estar muy débilmente iluminado cuando se supone que está apagado.

  2. Use un pin que tenga entrada de "5 V tolerante" y cambie el pin entre el nivel bajo y el flotante.

respondido por el Olin Lathrop
1

Su aproximación 2 (ajuste triple al pin D3) está bien, excepto que otros carteles señalaron que el diodo de protección ESD de D3 a VCC está en serie con el LED (y la resistencia) cuando la salida está desactivada. Habrá un pequeño flujo de corriente allí en (4.5V-3.3V) = 1.2V a través de ambos diodos desde el suministro de 4.5V a VCC. El umbral del LED es mucho más alto que el umbral del diodo ESD de aproximadamente 0.5V a 0.6V para una corriente apreciable (microamperios o más; son diodos grandes), por lo tanto, es probable que a 1.2V a través de ambos la corriente esté en el rango de microamperios. Sin embargo, el voltaje del pin D3 irá por encima de VCC en aproximadamente 0.5V a 0.6V y esto probablemente exceda el voltaje recomendado en la almohadilla (para la tensión en el óxido de la puerta de los transistores del circuito de entrada).

Básicamente estás usando el pin D3 como un interruptor NMOS de drenaje abierto. Siempre puede agregar un chip de transistor NMOS discreto que pueda soportar > 4.5V. Si bien agrega un componente e invierte el sentido del puerto, evita la sobretensión en el IC.

Tenga en cuenta que ninguno de los enfoques hasta ahora proporciona una regulación de corriente, por lo que el brillo variará con la tolerancia de la resistencia, la temperatura y la variación de suministro. Hay algunos esquemas simples para eso si estás interesado, pero agregan un par de componentes más.

    
respondido por el mixed_signal
0
  

Imagino un LED rojo a aproximadamente 2v Vfwd, por lo que la resistencia tendría que caer 2.5v @ 20ma, digamos 1K2 ohms.

Tienes que revisar tus cálculos en este para el valor de tu resistencia.

$$ R = \ frac {V} {I} $$

R = 2.5V caído por la resistencia / 20mA a través de la resistencia = 125 ohmios.

Si no está interesado en agregar un transistor, ¿por qué no fuente el LED desde el pin del microcontrolador?

    
respondido por el Evad

Lea otras preguntas en las etiquetas