Las longitudes de sonido insanas como 10,25 y 100 m son perfectamente posibles, y uso el método a menudo (con UART no I2C, pero el método es válido) cuando necesito armar cosas rápidamente. Sin embargo, no es exactamente la mejor manera.
La clave es conocer el umbral de voltaje de entrada. Asegúrese de que la caída de voltaje en el cable a tierra esté muy por debajo de esto, o de lo contrario, un transmisor con un potencial de tierra alto no podrá bajar el voltaje lo suficiente. Falta de tolerancia para las compensaciones en tierra La IMHO es la razón principal para usar RS485 o los transceptores de latas (I2C sobre CAN se menciona en algunas notas de la aplicación).
Idealmente, todos los dispositivos tendrán su propia verruga de pared y batería, y no se enviará energía a través del cable de tierra entre los dispositivos.
Pero, tomemos CAT5 por ejemplo. CAT5 no puede ser superior a 52pf / m, o no es CAT5.
100m de cable de 52pf tiene una capacidad de 5200pf o 5.2nf.
5.2n veces 20kohms (pullup) proporciona una constante de tiempo de aproximadamente 104 microsegundos. Eso limita la velocidad a unos 10kHz o menos.
Usando 2.2kohm pullups, probablemente podrías llegar a 100kHz.
He escuchado que los dispositivos deberían tener una resistencia en SDL y SCK, debido a la gran carga capacitiva que están manejando, de algo así como 180 o 200 ohmios.
Pero, honestamente, I2C no es el camino a recorrer para distancias largas. Los transceptores CAN o RS485 utilizados con UART normal son una solución robusta con muy buena protección contra fallas, resistencia ESD, velocidad, distancia, etc., a un costo de aproximadamente un dólar por chip, las compensaciones en tierra no importan tanto, por lo que son libre para llevar el poder junto con los datos.
El único inconveniente es que un transceptor puede alcanzar una transmisión de 70 mA y 1 o 2 mA solo escucha, por lo que I2C o UART TTL directo pueden ser útiles en situaciones de potencia extremadamente baja, pero considere cuánto tiempo pasa realmente enviando.