Las longitudes de sonido locas como 10,25 y 100m son perfectamente posibles, y uso el método a menudo (con UART no I2C, pero el método permanece) cuando necesito armar cosas rápidamente. Sin embargo, no es exactamente la mejor manera.
La clave es conocer su umbral de voltaje de entrada. Asegúrese de que la caída de voltaje en el cable de conexión a tierra esté muy por debajo de esto, de lo contrario, un transmisor con un alto potencial de conexión a tierra no podrá tirar del voltaje lo suficientemente bajo. Falta de tolerancia para las compensaciones de tierra En mi humilde opinión, la razón principal para usar transceptores RS485 o de lata (en algunas notas de aplicación se menciona I2C sobre CAN).
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.
100 m de cable de 52pf tienen una capacidad de 5200pf o 5.2nf.
5.2n veces 20kohms (pullup) da una constante de tiempo de aproximadamente 104 microsegundos. Eso limita la velocidad a aproximadamente 10kHz más o menos.
Usando pullups de 2.2kohm, probablemente podría llegar a 100kHz.
Escuché que los dispositivos deberían tener una resistencia en SDL y SCK, debido a la gran carga capacitiva que conducen, de algo así como 180 o 200 ohmios.
Pero, sinceramente, I2C no es el camino a seguir para largas distancias. 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. libre de transportar energía junto con datos.
El único inconveniente es que un transceptor de lata puede alcanzar 70 ma de transmisión y 1 o 2 ma solo escuchar, por lo que I2C o TTL UART directo pueden ser útiles en situaciones de baja potencia extrema, pero tenga en cuenta cuánto tiempo realmente pasa enviando.