I2C дальность/длина линии

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
Ответить
xsash
Сообщения: 190
Зарегистрирован: 08 авг 2016, 12:27

I2C дальность/длина линии

Сообщение xsash » 03 янв 2018, 17:33

У кого есть готовый, рабочий, проект с i2c датчиками - какая у вас длина линий от меги до железок?
И чем трассу кидали?

Думал раскидать по комнатам Bosch BME280, но появился такой вопрос. Где-то пишут 1,5м... где-то 6м

Andrey_B
Администратор
Сообщения: 3645
Зарегистрирован: 18 мар 2011, 12:06

Re: I2C дальность/длина линии

Сообщение Andrey_B » 04 янв 2018, 02:39

У меня около года без сбоев работает HTU21D, подключенный к контроллеру кабелем UTP длиной 8 метров.
Более того. Около полугода абсолютно без сбоев работает MAX44009, подключенный к контроллеру кабелем UTP длиной около 25 метров.

Alex_Jet
Сообщения: 732
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

Re: I2C дальность/длина линии

Сообщение Alex_Jet » 04 янв 2018, 20:01

Примерно 1,5 месяца без сбоев на одной UTP 5cat работают BME280 и DS18B20, вынесенные на северную стену дома. Длина трассы ~10м, за указанное время сбоев не выявлено - главное обеспечить хороший контакт!

xsash
Сообщения: 190
Зарегистрирован: 08 авг 2016, 12:27

Re: I2C дальность/длина линии

Сообщение xsash » 05 янв 2018, 00:15

А как расключали? По каким цветовым парам данные, питание... Питание от меги не проседало?
Опять же, спрашиваю исходя из теоретических "знаниях" с англоязычного сегмента.

Нашел момент, где человек использовал один цвет (например бело-оранж + оранж) для SCL + SDA - там его "били по рукам", типа будет наводка и предлагали такую схему (аттач, и там чет дополнительно с 5-ю вольтами мутили), где была пара "SCL + земля" и отдельно пара "SDA + земля"
rj45-pinout2.jpg
rj45-pinout2.jpg (60.33 КБ) 546 просмотров

Alex_Jet
Сообщения: 732
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

Re: I2C дальность/длина линии

Сообщение Alex_Jet » 05 янв 2018, 10:28

Вообще, все правильно - для каждой сигнальной линии должна быть одна витая пара (второй проводок с одной стороны должен быть подсоединен к GDN). Поскольку в доме у меня уже была расключена одна ~8м UTP полностью (дисплей, HTU21D, DS18B20 и кнопка) следующим образом: питание - бордовый и бело-бордовый, 1-wire - синий и бело-синий, кнопка - оранжевый и бело-оранжевый, I2C - зеленый и бело-зеленый. То и для вывода наружу я использовал такую же схему с тем предположением, что если что-то будет сбоить, то в запасе есть одна витая пара для нормальной защиты SCL и SDA от помех.
По поводу просадки питания - она ничтожна поскольку датчики потребляют миллиамперы! Даже не заморачивался с этим зная исход. Сами посчитайте сопротивление линии и прикиньте на сколько милливольт просядет напряжение.

Я думаю, что если линия растянется хотя бы на 15-20 метров то возможно придется нормально подключать I2C. С питанием скорее всего ничего не надо будет делать если ток потребления будет менее 50мА (падение будет около 0,19В из расчета сопротивления одного проводника UTP 5Cat 9,38Ом на 100м).
Вот если на UTP будете садить 3G/4G модем, тогда питание на него через UTP нужно подавать от 12В БП со step-down преобразователем (12В->5В) около самого модема.

Ответить