Страница 1 из 1

Какова максимальная длина линии I2C?

Добавлено: Вт июн 26, 2012 17:41:42
Chip115
всем привет! В интернетах нашел, что максимальная длина линии в стандартном режиме до 2 м и скорость 100 кбит/с [1].
решил разобраться и полез в доку [2], где сказано что Data on the I2C-bus can be transferred at rates of up to 100 kbit/s in the Standard-mode, up to 400 kbit/s in the Fast-mode, or up to
3.4 Mbit/s in the High-speed mode. Вот. А про длину линии я не нашел инфы (( Помогите, пожалуйста, найти информацию, в доке на интерфейс, о длине линии при разной скорости или при максимальной скорости и минимальной. Что то не по глазам.


1. источник
2. Дока IIC

Re: Какова максимальная длина линии I2C?

Добавлено: Вт июн 26, 2012 17:47:56
m.ix
Chip115
если есть автомагнитола, по поробую морду её на метр удлиннить :)))

Через опу удлиннил алпайну
Изображение

Re: Какова максимальная длина линии I2C?

Добавлено: Вт июн 26, 2012 18:18:15
Aleks300
Chip115 писал(а):всем привет! В интернетах нашел, что максимальная длина линии в стандартном режиме до 2 м и скорость 100 кбит/с [1].
решил разобраться и полез в доку [2], где сказано что Data on the I2C-bus can be transferred at rates of up to 100 kbit/s in the Standard-mode, up to 400 kbit/s in the Fast-mode, or up to
3.4 Mbit/s in the High-speed mode. Вот. А про длину линии я не нашел инфы (( Помогите, пожалуйста, найти информацию, в доке на интерфейс, о длине линии при разной скорости или при максимальной скорости и минимальной. Что то не по глазам.


1. источник
2. Дока IIC
вообще он придуман для внутри обмена-управления устройства поэтому об растоянии только на свой страх скорость большая а страховка от ошибок как в USB и др. не предусмотрено на сайт Philips он это создал

Re: Какова максимальная длина линии I2C?

Добавлено: Вт июн 26, 2012 18:32:18
Chip115
Хм... Интересно. Но русскоязычные источники пишут про 2 м. при стандартном режиме (с потолка взяли цифру?). Кроме того, есть датчики на IIC, которые могут и быть удаленны от станции. Как тут быть с длиной линии?

Re: Какова максимальная длина линии I2C?

Добавлено: Вт июн 26, 2012 18:53:06
Ser60
Длина линии зависит от паразитной емкости кабеля и подтягивающих резисторов. Минимальня величина последних ограничена максимальным током через порт I2C устройства, регламентируемого в его ДШ. Проще всего определить максимальную частоту экспериментально, наблюдая осциллограммы на входах устройства с подключенным кабелем.

Re: Какова максимальная длина линии I2C?

Добавлено: Вт июн 26, 2012 19:48:45
mickbell
А вообще-то I2C считается внутридевайсовой шиной, там и защиты-то от помех особой вроде как нет, так что делать кабель длиннее полуметра, ну метра - не надо бы. Конечно, размеры девайсов могут быть и довольно большими... всё равно, лучше не злоупотреблять.

Re: Какова максимальная длина линии I2C?

Добавлено: Вт июн 26, 2012 21:27:51
nds
если надо далеко протянуть
на медной stp 50м работало

Re: Какова максимальная длина линии I2C?

Добавлено: Вт июн 26, 2012 21:44:47
Seal
nds писал(а):если надо далеко протянуть
на медной stp 50м работало
Поддерживаю, клавиатура от КПП до бокса(DSC https://encrypted-tbn0.google.com/image ... gkHa-m1F0H)выносная до 100-120 м работает устойчиво

Re: Какова максимальная длина линии I2C?

Добавлено: Сб июн 30, 2012 17:17:57
BOB51
переведи с помощью оптронов в "токовую петлю"... :roll:

Re: Какова максимальная длина линии I2C?

Добавлено: Сб июн 30, 2012 17:47:55
Seal
BOB51 писал(а):переведи с помощью оптронов в "токовую петлю"... :roll:
Если используется обмен по линии ,то слишком хлопотно.

А если есть возможность,то использовать витую пару, САТ 5-6 .

Re: Какова максимальная длина линии I2C?

Добавлено: Пн июл 02, 2012 19:09:45
avreal
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 кГц, так как этого всё равно достаточно.

Re: Какова максимальная длина линии I2C?

Добавлено: Вт июл 03, 2012 19:37:05
YS
А про длину линии я не нашел инфы
Стандарт накладывает ограничения на максимальную емкость линии. Отсюда и получается ограничение длины. Т.е., все зависит от конкретного кабеля.

Насчет помех - никто не мешает поверх I2C устроить свой протокол с CRC.