Безумные длины звучания, такие как 10, 25 и 100 м, вполне возможны, и я часто использую этот метод (с UART, а не с I2C, но метод стоит), когда мне нужно быстро собрать вещи. Хотя это не совсем лучший способ.
Ключ должен знать ваш порог входного напряжения. Убедитесь, что падение напряжения в заземляющем проводе намного ниже этого, иначе передатчик с высоким потенциалом земли не сможет снизить напряжение достаточно низко. Отсутствие допустимого отклонения для наземных смещений ИМХО является основной причиной использования 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 могут быть полезны в экстремальных ситуациях с низким энергопотреблением, но подумайте, сколько времени вы на самом деле тратите на отправку.