Circuito de recepción RS-232 optoacoplado

Estoy buscando implementar un circuito de recepción optoacoplado RS-232/422 de bajo costo. El objetivo es la protección contra sobretensiones y la tolerancia a las compensaciones de CC.

El desafío es que las entradas sean completamente flotantes y funcionen en un amplio rango de temperatura, por ejemplo, de -40 °C a 85 °C. Velocidad de hasta 4800 baudios. Entrada lógica nula 1.6V - 25V.

Consideré simplemente encadenar un 5kOhm con la entrada del diodo, pero la corriente directa resultante es demasiado pequeña para producir una relación de transferencia de corriente útil con optoacopladores económicos. (Especialmente a altas temperaturas.)

¿Cómo ve esta solución para todos? ¿Estoy pasando por alto algo?

esquemático

simular este circuito : esquema creado con CircuitLab

Tengo entendido que esto debería interrumpirse abruptamente en (Vin1-Vin2) = Vf del optoacoplador con un tiempo de subida y bajada de aproximadamente 10 µs y ser bastante tolerante a la degradación de CTS y las sobretensiones en el lado de Vin. - ¿Es esto correcto?

¿Es probable que sea un problema que la impedancia de entrada sea de 10 kOhm a voltajes de entrada altos en lugar de los 5 kOhm estándar?


Editar 1

esquemático

simular este circuito

¿Puede aclarar exactamente qué tan a prueba de bombas debe ser esto? Existen algunos transceptores IC RS485/422/232 bastante robustos, ya que RS485 y 422 se usan ampliamente en la industria donde los transitorios y los voltajes perdidos (y los rayos) son bastante comunes.
@JohnU Para ser honesto, no sé qué límite de protección se requiere. Necesito pensar mucho en esto por un tiempo. Pensé que podría evitarlo simplemente optando por el aislamiento óptico, pero incluso a 4800 baudios esto no parece trivial...
A menos que tenga un caso de uso muy funky / extremo, apostaría dinero para poder encontrar IC de controlador estándar que funcionen bien. Se pueden hacer comunicaciones de optoaislamiento como esta (mi jefe diseñó una placa que hizo exactamente eso para 485 + video analógico), pero no es trivial y realmente debe hacerlo. TBH si necesita hacer esto, probablemente haya problemas más importantes que debe comprender. O si te quedas atascado, probablemente podrías licenciar el diseño que hizo mi jefe;)

Respuestas (3)

Probablemente no se pueda lograr una velocidad de 4800 baudios con este circuito: Tf es típicamente 100 useg y Toff se acerca a 200 useg.

http://www.chaoyi1688.com/UploadFiles/FCK/20110921140322_fgdgdt.pdf

Tal vez si lo termina en una resistencia de unos pocos cientos de ohmios y usa un comparador ...

Pensé que con R_L=R3=500ohm, la velocidad de conmutación sería del orden de 1 µs, que es aproximadamente 1/10 de la duración del período de 4800 baudios.
Con respecto a la sugerencia de un comparador: ¿satisfacerá esto mi requisito de una entrada flotante? ¿Qué sucede si la compensación de CC de las entradas excede el Vcc del comparador?
En mi primer comentario quise escribir "velocidad de conmutación del orden de 10 µs". Perdón por la acumulación de comentarios.
Creo que encontrará que la velocidad de conmutación será similar a la de una carga de 10K.

Independientemente de las consideraciones de velocidad, el circuito no funcionará para RS422. Los niveles de entrada RS422 pueden ser tan pequeños como +/- 200 mV, y esto ni siquiera hará cosquillas en su optoacoplador.

Para RS232, el rango de voltaje de entrada mínimo permitido es +/- 3V. A 3 voltios de entrada, suponiendo un optoacoplador Vf de 1,2 voltios, la corriente del diodo será de 120 uA. Esto está muy lejos de cualquier extrapolación razonable de la hoja de datos, pero es casi seguro que niveles de corriente tan bajos provocarán un funcionamiento muy lento. Esto representa la operación en el peor de los casos, a -55 C. A temperaturas más altas, el Vf disminuye y la corriente de entrada aumenta, pero una curva típica de 25 C da un Vf de 1 voltio, con una corriente de 200 uA, que no es un juego. -mejora cambiante.

Con estas corrientes bajas, el CTR es muy bajo, en el rango del 10 % en el peor de los casos, aunque, como digo, es una extrapolación fuera de lo común.

Si quiere intentar que esto funcione, lo primero que debe hacer es deshacerse de R2 y reemplazar D1 con un diodo de señal simple como 1N4148. La caída directa del fotodiodo sujeta el voltaje de entrada a un voltaje mucho más bajo que el nivel zener. Incluso una entrada de 25 voltios solo consumirá 5 mA, que es menos de 1/10 de lo que el optoacoplador puede manejar felizmente, y aproximadamente 0,5% del límite de pulso de 1 usec. Al hacer esto, obtendrá la corriente de entrada en el peor de los casos hasta aproximadamente 360 ​​uA, y aún no se acercará a la velocidad que desea. Tenga en cuenta que la curva de tiempo en la respuesta de Spehro está operando a 10 mA, por lo que cualquier cosa que haga con los niveles que operará su circuito será mucho más lenta.

Le sugiero que busque en una configuración de cascode. Dada la falta de especificaciones de transistores en la hoja de datos, ni siquiera puedo intentar sugerir valores de circuito o tiempos de respuesta estimados.

Gracias por la explicación. Investigué la configuración de cascode, sin embargo, no veo cómo ayudará esto. Suponiendo una señal de entrada con un desplazamiento de CC desconocido, posiblemente "grande", por ejemplo, entre 12 V y 15 V (o también -12 V a -15 V) y una señal de salida objetivo entre 0 V y 5 V, no veo cómo implementar una configuración de cascode eso funcionará sin conocer el desplazamiento de CC en el momento del diseño.
RS232 no se preocupa por el desplazamiento, solo se preocupa por el cruce por cero. Sospecho que la compensación de la que está hablando es el voltaje de modo común, y eso es tratado (es decir, ignorado) por el aislamiento de entrada del optoacoplador. Si realmente el offset está en la señal con respecto al optoacoplador v2, tienes una situación patológica y algo anda realmente mal. En ese caso patológico, querrá colocar un condensador en la entrada y filtrar la CC.
Ok, estaba realmente confundido. No me di cuenta de que el optoacoplador todavía estaba en la imagen. ¿Pensaste en algo como el esquema en mi pregunta editada? Todavía no veo cómo esto podría ayudar en principio (ignorando los números por el momento...).
Mirando el esquema editado, no funcionará. En esa configuración, la corriente del colector es esencialmente igual a la corriente del emisor, en este caso menos de 1 mA. Por lo tanto, el cambio en el voltaje de salida será inferior a 0,5 voltios.

Estás haciendo esto demasiado complicado. Los niveles lógicos adecuados de RS-232 van desde menos de -5 V para el espacio hasta más de +5 V para la marca. Dado que el nivel inactivo es espacio, desea detectar el estado de la marca activando un optoaislador.

Su tasa máxima de baudios es 4800, por lo que 208 µs por bit. Esto permite el uso de optoacopladores relativamente "lentos", hasta aproximadamente 20 µs, lo que es aceptable a 1/10 del tiempo de bit. La ventaja de los optoacopladores lentos es que generalmente están disponibles con altas relaciones de transferencia de corriente (CTR). Me viene a la mente el FOD817D económico y disponible, que tiene un CTR mínimo garantizado de 3 y un retraso máximo de 18 µs.

Digamos que quiere que la salida del opto haga al menos 1 mA cuando está encendido. Eso significa que debe darle a la entrada al menos 350 µA. El voltaje de entrada máximo de un FOD817 es de 1,4 V. Eso deja 3,6 V en una resistencia con 5 V en la línea RS-232. (3,6 V)/(350 µA) = 10,3 kΩ. Por lo tanto, debería funcionar una resistencia de 10 kΩ al 1%.

Ahora tiene un interruptor que está apagado cuando la línea RS-232 está inactiva (en estado de "espacio"), y que puede admitir hasta 1 mA cuando está en estado de "marca". Dado que tales señales seriales de nivel lógico suelen ser altas cuando están inactivas, todo lo que necesita es una resistencia pullup en serie con este interruptor. Como parece que está utilizando una lógica de 5 V, la resistencia que necesita es (5 V)/(1 mA) = 5 kΩ. El valor estándar de 5,1 kΩ debería funcionar bien.

Así que aquí está el circuito final:

Puede salirse con la suya con algo tan simple debido al requisito de baja velocidad en baudios. Este circuito no funcionará a velocidades de transmisión mucho más altas.