Безглузді звуки довжини, як 10,25 та 100м, цілком можливі, і я часто використовую цей метод (з UART не I2C, але метод стоїть), коли мені потрібно швидко скласти речі. Це не зовсім найкращий спосіб.
Головне - знати порог вхідної напруги. Переконайтесь, що падіння напруги в земному кабелі знаходиться значно нижче цього, інакше передавач з високим потенціалом землі не зможе витягнути напругу досить низько. Відсутність толерантності до компенсації заземлення IMHO є найбільшою причиною використання RS485 або трансиверів (I2C над CAN згадується в кількох примітках до програми).
В ідеалі всі пристрої матимуть власну бородавку для настінних батарей та акумулятор, і живлення між пристроями не надсилатиметься за заземленням.
Але, давайте, наприклад, CAT5. CAT5 не може бути вище 52pf / m, або це не CAT5.
100м кабелю 52pf має ємність 5200pf або 5.2nf.
5,2n разів 20 кілометрів (підтягування) дає константу часу приблизно 104 мікросекунди. Це обмежує швидкість приблизно до 10 кГц або близько того.
Використовуючи підключення 2,2 км, ви, ймовірно, зможете дістатися до 100 кГц.
Я чув, що пристрої повинні мати резистор на SDL і SCK через велику ємнісну навантаження, яку вони приводять, приблизно, як 180 або 200 Ом.
Але, чесно кажучи, I2C зовсім не так, щоб їхати на великі відстані. CAN-приймачі або RS485, які використовуються із звичайним UART, - надійне рішення з дуже хорошим захистом від несправностей, стійкістю до ОУР, швидкістю, дистанцією тощо за ціною долара чип чи так, компенсація заземлення не має значення майже стільки, скільки ви вільно нести владу разом із даними.
Єдиним недоліком є те, що трансивер може досягати 70 м передачі та 1 або 2 мА прослуховування, тому I2C або прямий TTL UART можуть бути корисними в екстремальних ситуаціях з низькою потужністю, але врахуйте, скільки часу ви насправді витрачаєте на надсилання.