I2C не предназначен для использования на больших расстояниях, но я знаю несколько приложений, где он фактически используется на расстоянии около 2 метров. Я также знаю один случай, когда у них были проблемы с этим, и он был исправлен путем исправления контуров заземления, как мне кажется.
Чтобы быть уверенным, что он будет работать, вы должны использовать удлинитель шины I2C, такой как P82B715.
Тем не менее, таблица данных PB2B715 говорит следующее в разделе 8.2:
Для типичной витой пары или плоских кабелей, используемых для телефонии или проводки Ethernet (Cat5e), эта емкость составляет от 50 пФ до 70 пФ / метр, поэтому теоретически длина кабеля может достигать 50 м . Из практического опыта 30 м доказали безопасную длину кабеля, которую можно провести простым способом, до 100 кГц, с указанными значениями. Возможны более длинные расстояния и более высокие скорости, но они требуют более тщательного проектирования.
Таким образом, эксперты (NXP - бывший Philips, изобретатель I2C) говорят, что 30 метров было доказано выполнимым расстоянием. Мой опыт говорит, что 2 метра - это выполнимое расстояние, и опыт, который мне сообщили, показывает, что также возможны более загруженные шины I2C без какого-либо удлинителя.
Ключевые моменты работы автобусов I2C на больших расстояниях:
- Использование кабеля с низкой емкостью (витая пара / Ethernet);
- Ограничение скорости шины;
- Наличие подтягиваний правильного размера.
Расчет подтягивания
У Texas Instruments есть хорошая заметка по применению (SLVA689) о расчете подтягивания .
- (3.6 V−1 V) / 20 mA=130 Ω .
- Rmax=tr/(0.8473∗Cb)trCbCbtrRmax=2950 Ω, В примечании к приложению TI есть графики, позволяющие быстро найти соответствующие значения.
- Конечно, значение для подтягивания является эквивалентным значением для всех подтягиваний, соединенных параллельно. У вас может быть подтягивание на главном конце, ведомом конце и любом другом ведомом / главном на шине.
- Чем больше вы находитесь «на пределе», тем больше вам также необходимо учитывать «паразитные факторы», такие как падение напряжения в кабеле.