I2C son las siglas de Inter-Integrated-Circuit communications (comunicaciones entre circuitos integrados), está pensado para distancias cortas en una PCB o subconjunto. Pero, oye, somos ingenieros y nos gusta superar los límites de la tecnología, ¿no?
Entonces, ¿por qué no intentar que el I2C circule por un cable de un metro de largo, o incluso más? Pues bien, si intentas hacerlo te darás cuenta rápidamente de que la longitud del cable añade capacitancia y resistencia que ralentiza los pullups de drenaje abierto utilizados en I2C, lo que dificulta el uso de velocidades de reloj de más de 100KHz. Podrías intentar ralentizar tu reloj I2C a 1 KHz... o podrías utilizar un terminador activo LTC4311 de Adafruit como este.
Usar esta placa es fácil: conéctala a tu bus I2C al principio de la cadena (si no tienes un cable masivamente largo, también puedes probar al final de la cadena). Cuando el chip está alimentado y habilitado, observará las líneas SCL y SDA. Cuando vea que se suben a través de las resistencias I2C, se activará y descargará un poco de corriente para darle un impulso a través del carril de alimentación superior.
Ahora se pueden conseguir velocidades de transmisión de datos mucho más rápidas sin necesidad de complicarse con las resistencias y a través de cables largos. Adafruit hizo funcionar un OLED de 400 KHz a través de 3 metros de cable telefónico con facilidad. Con una señal de 100KHz, incluso hicieron funcionar un BME680 a través de 100 pies de Ethernet (¡unos 3000pF de ida y vuelta!), e hicieron que un OLED mostrara los detalles del sensor.
Funciona con cualquier tensión de bus, desde 1,6V hasta 5,5V y hasta 400 KHz de velocidad SCL, con cables de hasta 4000pF. No se requiere ningún firmware, software o configuración especial. Sólo tienes que conectar los conectores de alimentación, tierra, SCL y SDA a tu bus y ver cómo los tiempos de subida se convierten mágicamente en dientes de sierra en ondas cuadradas.
Para que puedas ponerte en marcha rápidamente, Adafruit ha creado una placa de circuito impreso a medida con el factor de forma STEMMA QT, que facilita la interfaz. Los conectores STEMMA QT de ambos lados son compatibles con los conectores SparkFun Qwiic I2C. Esto le permite realizar conexiones sin soldadura entre su placa de desarrollo y el LTC4311 o encadenarlo con una amplia gama de otros sensores y accesorios utilizando un cable compatible.
DETALLES TÉCNICOS
LTC4311 Características y especificaciones
Mejora la transición del tiempo de subida del bus I2C
Asegura la integridad de los datos con múltiples dispositivos en el bus I2C.
Amplio rango de tensión de alimentación: de 1,6V a 5,5V
Mejora el margen de ruido de estado bajo
Funcionamiento de hasta 400kHz
Detección automática del modo de espera de bajo consumo
Apagado por baja corriente de alimentación (<5?A)
No carga el bus cuando se desactiva o se apaga
Fuerte corriente de pull-up con limitación del slew
Resistencia ESD del modelo de cuerpo humano de ±8kV