Inicio Artículos Aislamiento sencillo del bus I2C mediante componentes discretos

Aislamiento sencillo del bus I2C mediante componentes discretos

Torsten Siems, Ingeniero de Aplicaciones de Campo, Toshiba Electronics Europe GmbH

Las aplicaciones basadas en el bus I2C requieren en ocasiones un aislamiento de alta tensión para garantizar la protección y la fiabilidad. Una solución con aisladores ópticos discretos se implementa fácilmente y puede ofrecer flexibilidad y ahorro de costes, por ejemplo, en aplicaciones industriales.

El bus I2C (Inter-Integrated Circuit) fue presentado en la década de 1980 para permitir la comunicación entre una CPU central y dispositivos periféricos para configuración, monitorización y control. Si bien estaba destinado en un principio a la comunicación de corta distancia dentro de la placa, su éxito ha multiplicado el número de aplicaciones y la capacidad máxima de manejo de datos se ha ampliado para incluir los modos Standard (100 kHz), Fast (400 kHz), Fast Plus (1 MHz), High-Speed (3,4 MHz) y Ultra-Fast Plus (5 MHz).

El estándar establece una conexión de dos hilos para datos bidireccionales y líneas de reloj que se pueden implementar de forma económica. La sencillez y la eficiencia de I2C han hecho que sus principios de comunicación se recojan en estándares como SMBbus y PMBus.

El bus I2C generalmente tiene un controlador, por ejemplo un microcontrolador o un SoC, y uno o más dispositivos de destino. El controlador tiene E/S de colector abierto que pueden llevar las líneas de datos (SDA) y de reloj (SCL) a estado bajo y necesitan una resistencia de polarización (pull-up) que permite la coexistencia de varios controladores y dispositivos de destino sin provocar conflictos en el bus.

El controlador usa la línea SDA para seleccionar el dispositivo de destino y el registro de acceso a ese dispositivo, el cual envía los datos solicitados a través de la propia línea SDA. Los dispositivos de destino también utilizan la línea SDA para confirmar la recepción correcta de la solicitud (ACK) manteniendo SDA en estado bajo o negando la recepción correcta (NACK) dejando que SDA pase a estado alto.

La línea SCL controla la velocidad de comunicación de los datos por el bus. Esta señal suele ser unidireccional, si bien un dispositivo de destino puede tardar más tiempo en responder a una solicitud, si es necesario, manteniendo SCL y SDA en estado bajo mientras genera una ACK. Esto se denomina dilatación del reloj.

Demanda de aislamiento

La popularidad de I2C ha ido en aumento y su uso se ha extendido a situaciones que exigen unas distancias de comunicación más largas. En estos casos es bastante habitual que existan diferencias en el potencial de tierra local entre los dispositivos conectados que pueden afectar a los márgenes de ruido del sistema. Además se pueden superar los valores críticos del dispositivo, como la máxima tensión de E/S negativa.

I2C también se utiliza para comunicar circuitos que no pueden compartir una referencia de tierra, como automatización industrial y accionamientos, controles de motores, microinversores de paneles solares y sistemas médicos que requieran un aislamiento de protección entre las señales de control de I2C y la red de CA.

Estas situaciones requieren un medio adecuado para aislar las conexiones de I2C. Los circuitos integrados de aislamiento digital disponibles en el mercado permiten implementar toda la circuitería de aislamiento en un solo dispositivo. Si bien son fáciles de usar, pueden resultar caros y dejar al usuario sin soluciones alternativas o sin un segundo proveedor como protección frente a posibles problemas de suministro.

Se puede obtener una conexión aislada recurriendo a optoacopladores convencionales, si bien esto puede crear algunas complicaciones. Una de ellas es la naturaleza bidireccional de las líneas SDA y SCL, mientras que los optoacopladores suelen ser unidireccionales. A ello se suma que los dispositivos escogidos deben tener salidas con colector abierto para permitir el control adecuado del bus.

También deben ser capaces de cumplir los requisitos de temporización establecidos para I2C. Un aspecto es la respuesta ACK/NACK del dispositivo de destino al controlador. La señal ACK/NACK debe ser válida tras un tiempo de configuración (tVD; ACK) que varía entre los 3,45µs del funcionamiento en modo Standard (100 kHz) y los 0,45µs en modo Fast Plus (1 MHz). También hay limitaciones para la configuración de los datos desde el punto de vista de la temporización. Un dispositivo de destino debe configurar la señal SDA en menos de 250 ns tras el flanco descendente del bit de reloj anterior para el modo Standard (de acuerdo con la Tabla 11 de la Especificación 1 de I2C) y en 50 ns para el modo Fast Plus.

La Figura 1 muestra cómo se pueden insertar dos pares de optoacopladores en las líneas SDA y SDL para proporcionar aislamiento y proteger la comunicación bidireccional.

aislamiento flexible
Figura 1. Aislamiento flexible y de bajo coste del bus I2C.

Funcionamiento del circuito

Las líneas SDA y SCL del circuito funcionan de igual manera. Por lo que respecta a SDA, la resistencia R1 lleva la señal SDA del lado no aislado (non-isolated side, NIS) hasta la alimentación, mientras que R8 hace lo propio en el lado aislado (isolated side, IS). Los valores de la resistencia dependen de la tensión de alimentación empleada, de la carga capacitiva que ven el controlador o el dispositivo de destino y de las características de salida del optoaislador. La especificación de I2C (Apartado 7.1) define los valores máximos y mínimos:

R_p(max) =t_r/(0,8473 × C_b )

y

R_(p(min))=(V_DD-V_(OL(max)))/I_OL

donde tr es el máximo tiempo de subida admisible para el modo de funcionamiento seleccionado y Cb es la capacidad estimada del bus. VOL e IOL son la tensión y la corriente de salida de bajo nivel del optoaislador.

El circuito se encuentra por defecto con SDA en ambos lados en nivel alto. Cuando la señal SDA del NIS pasa a nivel bajo circula corriente por R4 y por el LED del optoacoplador IC2. Este pasa el estado cero a la señal SDA del IS y pasa a estado bajo por la salida de IC2 y el diodo de barrera de pequeña señal D2. La implementación de polo inverso del LED en IC1 impide que el estado cero vuelva al lado del NIS, evitando así un estado cero de forma permanente. Dado que el circuito es simétrico, un estado cero generado en SDA del IS pasa al NIS de la misma manera.

Este método requiere 20 componentes, entre ellos cuatro optoacopladores, cuatro diodos y los componentes pasivos correspondientes. Los diodos separan la señal enviada de la señal de retorno en las líneas SDA y SCL bidireccionales. Deberían tener una capacidad baja, por ejemplo mediante diodos de barrera Schottky, para asegurar unos bajos niveles de ruido y distorsión, especialmente con las velocidades de señalización más rápidas. Los de pequeña señal son suficientes y deberían tener una baja tensión directa (VF) para que el bajo nivel de señal cumpla la especificación I2C (VIL = 0,3VDD).

Entre los aisladores ópticos disponibles con colector abierto, el TLP2362 de Toshiba proporciona 3750 Vrms de aislamiento y cumple las especificaciones del bus I2C. Su velocidad máxima de transferencia de datos es de 10 Mbit/s. Sabiendo que la máxima tensión de salida de bajo nivel del TLP2362 es de 0,6 V (0,2 V típica), un diodo de barrera Schottky con una VF de 0,3 V asegura que VIL se ajuste a la especificación incluso con una VDD de 3,3 V. Entre los diodos apropiados de Toshiba se encuentran el DSF01S30L y el DSR01S30SL. Solo se necesita un condensador cerámico de puente de 1 µF entre cada patilla de alimentación del TLP2362 para estabilizar el funcionamiento de la lógica de salida.

Los periféricos del bus I2C pueden variar enormemente, por lo que es preciso comprobar que los dispositivos utilizados con este circuito pueden entregar la corriente que necesita el LED interno del aislador óptico. La máxima corriente de umbral de entrada del TLP2362 es de 5,0 mA (típica 1,0 mA). Si se necesita una corriente más baja, el TLP2363 funciona a 3,3 V y su IFHL máxima es de 2,4 mA (típica 0,9 mA).

Si se precisa una tensión de aislamiento más elevada y una mayor distancia en el aire se puede modificar el mismo diseño para usar el TLP2768, que ofrece 5000 V. Si la velocidad del reloj fuera un problema se puede optar por el TLP2368, que es más rápido. El TLP2309 se puede utilizar con niveles lógicos más elevados, entre 3 V y 30 V, p.ej. para aislar el bus LIN directamente.

La Figura 2 muestra la forma de onda que atraviesa el optoacoplador. Su perfil limpio con un retardo casi simétrico de unos 60ns cumple con creces los requisitos de funcionamiento de I2C en modo Fast (400 kHz).

conexion l2c
Figura 2. Funcionamiento de la conexión I2C aislada.

Conclusión

A menudo se prefiere un nivel superior de integración al implementar circuitos como el aislamiento en las conexiones del bus I2C. No obstante, si se busca una mayor flexibilidad o un menor coste es posible adoptar una solución basada en aisladores ópticos discretos que cumplan las especificaciones de temporización de I2C y tengan la configuración necesaria de salida con colector abierto.