mickbell писал(а):А вообще-то I2C считается внутридевайсовой шиной, там и защиты-то от помех особой вроде как нет, так что делать кабель длиннее полуметра, ну метра - не надо бы.
Защита от помех...
Ну какая может быть в таком случае — резисторы подтяжки уменьшить (лимит есть), триггера шмитта на входах поставить, после него можно подфильтровать. Из спецификации I2C
On-chip filtering rejects spikes on the bus data line to preserve data integrity
У I2C с этим приблизительно то де самое, что с 1-Wite — напряжение питания (определяющее разумный уровень гистерезиса на входах) и ограничение на резистор подтяжки. Так что по "аппаратной" помехоустойчивости между ними разницы большой быть не должно.
В самой спецификации I2C на «внутриприборность» вроде бы не напирают. Даже наоборот — проталкивали
ACCESS.bus (физический интерфейс — I2C с умощненными с 3 до 6 мА выходами, добавлен протокольный уровень) как многоточечную альтернативу RS232 для соединения в одну шинку клавы/мыши/планшета. Речь шла о соединении до полутора десятков устройств с суммарной длиной кабеля под десять метров. Вживую не видел

В мониторах в конце концов I2C EEPROM-ки на
DDC стояли.
Кстати, в HDMI-кабеле тоже оно есть
Pin 15 SCL (I²C Serial Clock for DDC)
Pin 16 SDA (I²C Serial Data Line for DDC)
Какое там ограничение на длину кабеля HDMI ? Они (hdmi и его кабели) ну совершенно не «внутридевайсные».
Впрочем, там точка-точка, а не шина. так легче.
Как уже было сказано, в спецификации на I2C есть ограничения на резистор подтяжки (определяется током драйвера) и ёмкость шины. Для шины 400 пикофарад. У кабеля UTP что-то в духе 50…60 пикофарад на метр. Песть вместе с разъемами, платой, микросхемой метр кабеля + устройство дадут 80 пикофарад. Всё равно для 400 пФ можно пять таких сегментов сделать.
На практике у меня в блоке-мастере была плата с atmega328+24C64+DS1307 и на ней на кабеле UTP три метра длиной висел блок, в котором десять модулей с atmega48 (платка-перехолдник с RJ на штыри и шлейф около полуметра по этим десяти модулям).
Подтяжки только в блоке-мастере, 2 кОм. Питание всего этого 5 вольт.
В цех я такое и не думал бы ставить

В лаборатории вполне работало. Погонял несколько дней интенсивно на где-то пятистах килогерцах (максимум, что позволили тактовые AVR-ок). После чего опустил на 100 кГц, так как этого всё равно достаточно.