Die irrsinnig klingenden Längen wie 10,25 und 100 m sind durchaus möglich, und ich benutze die Methode oft (mit UART nicht I2C, aber die Methode steht), wenn ich Dinge schnell zusammenstellen muss. Es ist jedoch nicht gerade der beste Weg.
Der Schlüssel ist, Ihre Eingangsspannungsschwelle zu kennen. Stellen Sie sicher, dass der Spannungsabfall in der Erdungsleitung deutlich darunter liegt. Andernfalls kann ein Messumformer mit hohem Erdungspotential die Spannung nicht ausreichend absenken. Fehlende Toleranz für Ground Offsets IMHO ist der Hauptgrund für die Verwendung von RS485- oder Dosen-Transceivern (I2C über CAN wird in einigen Anwendungshinweisen erwähnt).
Im Idealfall haben alle Geräte ihre eigene Steckdose und Batterie, und es wird kein Strom über das Erdungskabel zwischen den Geräten übertragen.
Nehmen wir zum Beispiel CAT5. CAT5 kann nicht höher als 52pf / m sein, oder es ist nicht CAT5.
100 m 52-pf-Kabel haben eine Kapazität von 5200 pf oder 5,2 nf.
5,2n mal 20 kOhm (Pullup) ergibt eine Zeitkonstante von etwa 104 Mikrosekunden. Dies begrenzt die Geschwindigkeit auf ungefähr 10 kHz.
Mit 2,2 kOhm Klimmzügen könnten Sie wahrscheinlich auf 100 kHz kommen.
Ich habe gehört, dass Geräte einen Widerstand für SDL und SCK haben sollten, wegen der großen kapazitiven Last, die sie treiben, von etwa 180 oder 200 Ohm.
Aber ehrlich gesagt, ist I2C nicht der richtige Weg, um lange Strecken zurückzulegen. CAN-Transceiver oder RS485, die mit normalem UART verwendet werden, sind eine robuste Lösung mit sehr gutem Fehlerschutz, ESD-Beständigkeit, Geschwindigkeit, Entfernung usw., und kosten ungefähr einen Dollar pro Chip frei, Energie zusammen mit Daten zu tragen.
Der einzige Nachteil ist, dass ein Dosentransceiver bis zu 70mA Senden und 1 oder 2mA nur Hören erreichen kann. Daher ist I2C oder Direct TTL UART möglicherweise in Situationen mit extrem geringem Stromverbrauch nützlich.