Almacenamiento en búfer de una señal de microcontrolador digital para conectar a un optoacoplador

Con frecuencia trabajo en proyectos en los que utilizo optoacopladores para aislar señales de control digitales de +5 V CC (por ejemplo, de un microcontrolador) del resto del circuito. Sin embargo, dado que estos funcionan iluminando un LED dentro del dispositivo, puede haber varias decenas de miliamperios de carga en los pines del microcontrolador. Estoy buscando consejos sobre cuál sería la mejor práctica para almacenar en búfer esta señal de control con una etapa adicional, de modo que el microcontrolador vea efectivamente una alta impedancia y, por lo tanto, reduzca la corriente que necesita proporcionar.

ingrese la descripción de la imagen aquí

Ingenuamente, se me ocurren algunas cosas que podrían funcionar:

  1. Simplemente use un amplificador operacional como un amplificador de búfer de ganancia unitaria.

  2. Utilice un chip comparador dedicado para comparar la señal de entrada con, por ejemplo, +2,5 V CC.

  3. Utilice un MOSFET como una especie de amplificador de señal.

Sin embargo, después de leer un poco, me encontré con un montón de chips que nunca había usado antes, pero que parecen estar diseñados para este tipo de cosas. Por ejemplo:

  • Un controlador de línea diferencial ( MC3487 )
  • Un receptor de línea diferencial (DC90C032)
  • Un transceptor de línea (SN65MLVD040)
  • Puertas de búfer y controladores (SN74LS07, SN74ABT126)

¡Realmente no tengo experiencia con ninguno de estos y estoy un poco abrumado por la cantidad de cosas disponibles! Entonces, ¿alguien puede ayudarme a aprender las diferencias entre estos dispositivos y cuáles de ellos serían / ​​no serían adecuados en este caso? ¿Existe una forma mejor/estándar de lograr lo que describo?

editar:
dado que podría estar cambiando a alrededor de salidas x30, no quiero preocuparme en absoluto por cargar los microcontroladores, por lo que no consideraré conectarme directamente a los pines DIO. Por lo tanto, creo que optaré por un IC de búfer lógico. Voy a intentar usar el SN74LVC1G125 " Puerta de búfer de bus único con salida de 3 estados " para cada entrada, y veré cómo funciona.

Para una solución directa de un solo componente, MOSFET de canal P.
En una nota relacionada, los pines del microcontrolador generalmente pueden absorber más corriente de la que pueden generar. Ver esta pregunta .

Respuestas (4)

Tienes muchas opciones.

  1. Si necesitas conectar muy pocos optoacopladores, puedes conectarlos directamente al GPIO de tu microcontrolador (a través de una resistencia), siempre que:

    • No exceda la corriente de salida GPIO.
    • No exceda la corriente total del puerto.
    • No exceda la corriente total gnd/vdd.
  2. Si necesita conectar más optoacopladores, puede intentar usar optoacopladores de baja corriente y alta relación de transferencia de corriente como SFH618 ( https://www.vishay.com/docs/83673/sfh618a.pdf ) y conectarlos directamente a sus GPIO (a través de una resistencia).

  3. O bien, puede usar un BJT o MOSFET (consulte los esquemas a continuación). Algunas notas:

    • Recuerde colocar la resistencia pull-down/pull-up, lo que garantiza que el MOSFET/BJT esté APAGADO cuando el GPIO aún no se haya inicializado (por ejemplo, durante el reinicio).
    • La resistencia pull-up o down puede omitirse si su MCU tiene un pin GPIO con pull-up/down siempre habilitado durante el reinicio.
    • Si usa MOSFET, recuerde usar MOSFET de nivel lógico (por ejemplo, BSS138).
    • Si usa la solución activa baja, asegúrese de que el voltaje de alto nivel del GPIO sea VDD. ¡ Es decir , no use un 3.3V-GPIO y VDD = 5V en la solución baja activa! .
  4. Aún así, si necesita manejar muchos optoacopladores (por ejemplo, 6), puede usar el 74LS07 que mencionó, ya que permite 40 mA por pin, y tendrá que montar solo un componente (en lugar de 6 BJT / MOSFET). ¡Recuerde que, a diferencia de CMOS, los circuitos integrados TTL están intrínsecamente levantados! Sin embargo, es posible que aún desee la resistencia pull-up (la hoja de datos también recomienda no dejar las entradas flotando). Y, dado que '07 no se está invirtiendo, esta solución estará activa en BAJO. ¡El 74ABT126 es CMOS, por lo que DEBE usar de todos modos la resistencia pull-up!

esquemático

simular este circuito : esquema creado con CircuitLab

También puede usar seguidores de emisor/fuente
+1. Esto se puede usar para hacerlos activos altos, siempre que el GPIO esté alimentado con el mismo VDD (como en la configuración activa baja (con PNP)). Sin embargo, entonces no usaría un MOSFET, ya que tienden a tener un Vth grande (y una gran dispersión del mismo, lo que podría afectar el cálculo de la corriente del LED). Esto podría ser un problema si tiene un GPIO de 2,5 V o 3,3 V (necesita V T H + V O V + V L mi D + yo L mi D R . Si este valor está demasiado cerca de VDD, entonces la caída en R será pequeña y, por lo tanto, la dependencia de la corriente en Vth será alta).

Un BJT simple como MMBT3904 o cualquier BJT de conmutación hará el trabajo. Puedes conseguir un carrete de 100 por dos dólares.

ingrese la descripción de la imagen aquí

Los controladores de línea diferencial no están diseñados para conducir LED. Estos chips de búfer conducen (o reciben) una señal diferencial en dos cables. La oscilación de voltaje puede ser de 1,3 voltios a 1,7 voltios. No es suficiente para encender o apagar un LED.

Los búferes TTL son ideales para esta aplicación, pero en lugar de conectarse al lado alto del LED como se dibuja en su esquema, deben conectarse al lado bajo del LED, ya que TTL es bueno para hundir la corriente y pobre para generar corriente.

Sin embargo, si solo tiene unos pocos optoacopladores para conectar, entonces un NPN BJT es una forma aún más simple de controlar el LED.

Recomiendo que la salida de nivel lógico use el H11L1 que tiene un controlador de puerta lógica CMOS Schmitt y funciona con un mínimo de 1,4 mA ~ $ 1 (10) 3 ~ 16 V

Para colectores abiertos de bajo costo, clasificados con una amplia gama de ganancia actual de 80% a 300% mínimo http://www.taiwansemi.com/products/datasheet/TPC816%20SERIES_B1612.pdf

Esto significa que si solo necesita niveles lógicos o 1 mA, eso es al menos el 80% de lo que maneja, lo que no es mucha carga de energía en la CPU.

Así que busca lo que importa. miles de opciones costo versus rendimiento.

Para la velocidad, ayuda más corriente, pero algunos dispositivos cambian en ns otros en nosotros.