Скоростные режимы I²C (Sm, Fm, Fm+, Hs, UFm)
Шина I²C начиналась со 100 кбит/с, а сегодня в спецификации пять режимов до 5 Мбит/с. Режим определяет не только частоту SCL, но и допустимое время фронта, ёмкость шины и нагрузочную способность выходов. Разбираем, чем они отличаются и совместимы ли между собой.
Обновлено Редакция GAW
Скоростные режимы I²C — классы устройств и шины, которые спецификация NXP UM10204 различает по скорости и электрическим требованиям. Кроме частоты SCL они задают допустимое время нарастания фронта, ёмкость шины, нагрузочную способность выходов и наличие входного фильтра.
Сравнение
| Режим | Скорость | Фронт tr | Ёмкость Cb | Ток выхода IOL |
|---|---|---|---|---|
| Standard-mode (Sm) | до 100 кбит/с | ≤ 1000 нс | ≤ 400 пФ | ≥ 3 мА |
| Fast-mode (Fm) | до 400 кбит/с | ≤ 300 нс | ≤ 400 пФ | ≥ 3 мА |
| Fast-mode Plus (Fm+) | до 1 Мбит/с | ≤ 120 нс | ≤ 550 пФ | ≥ 20 мА |
| High-speed (Hs) | до 3,4 Мбит/с | отдельные требования | — | — |
| Ultra Fast-mode (UFm) | до 5 Мбит/с, в одну сторону | двухтактная шина | — | — |
Что меняется с режимом
Фронты и подтяжка. Фронт на шине с открытым стоком формирует резистор подтяжки вместе с ёмкостью шины. Чем быстрее режим, тем короче допустимый фронт, и тем меньше должно быть сопротивление подтяжки. Для Fast-mode UM10204 допускает резистор при нагрузке до 200 пФ, а от 200 до 400 пФ — источник тока до 3 мА. Подбор подтяжки — в калькуляторе подтягивающих резисторов I²C.
Входной фильтр. Входы Fast-mode и выше должны подавлять выбросы короче 50 нс — см. фильтр выбросов I²C.
Fm+. Выходы держат 20 мА, поэтому шина может быть длиннее и тяжелее без буферов. Если на шине только устройства Fm+, UM10204 разрешает обменять скорость на ёмкость и увеличить её примерно в десять раз при соблюдении фронтов Standard-mode. Пример устройства Fm+ — драйвер ШИМ NXP PCA9685.
Совместимость
Режимы Sm, Fm и Fm+ обратно совместимы: быстрое устройство работает на медленной шине. Скорость шины определяет самое медленное устройство. Hs-mode включается специальным кодом ведущего, а UFm — отдельная однонаправленная шина без подтверждений. Подробнее — в статье I²C.
Частые вопросы
Можно ли подключить устройство Fast-mode к шине Standard-mode?
Да. Режимы I²C обратно совместимы: устройство Fast-mode или Fast-mode Plus работает на шине со скоростью 100 кГц. Обратное не гарантируется: если на шине есть устройство Standard-mode, частоту поднимать выше 100 кГц нельзя, а устройства Hs-mode переходят на высокую скорость только по специальной процедуре.
Чем Fast-mode Plus отличается от Fast-mode кроме скорости?
Выходами и ёмкостью. По UM10204 выход Fm+ должен держать не меньше 20 мА при 0,4 В против 3 мА у Fast-mode, а допустимая ёмкость шины — 550 пФ против 400 пФ. Поэтому на Fm+ можно поставить более сильную подтяжку и вести длинную шину без буферов. Фронт при этом должен быть не длиннее 120 нс.
Почему Ultra Fast-mode не похож на обычный I²C?
UFm — однонаправленная двухтактная шина: ведущий только передаёт, а ведомые только принимают. Подтверждений в ней нет — бит на девятом такте выставляется в единицу и игнорируется. Скорость до 5 Мбит/с достигается за счёт отказа от открытого стока; применяют UFm, например, для управления светодиодными драйверами.
Источники
- NXP. UM10204 I2C-bus specification and user manual, Rev. 7.0 (1 October 2021) — разд. 1–2: двунаправленная передача до 100 кбит/с в Standard-mode, до 400 кбит/с в Fast-mode, до 1 Мбит/с в Fast-mode Plus, до 3,4 Мбит/с в High-speed mode; Ultra Fast-mode — однонаправленный режим до 5 Мбит/с; разд. 3.2: UFm — двухпроводная двухтактная шина до 5 МГц, бит подтверждения игнорируется; разд. 5.1: Fast-mode — подавление выбросов и триггер Шмитта на входах, ограничение скорости спада на выходах; при нагрузке до 200 пФ подтяжка — резистор, от 200 до 400 пФ — источник тока до 3 мА или переключаемый резистор; разд. 5.2: Fm+ полностью совместим с Fast и Standard, выходы с большим током; при 400 пФ укладываются в тайминги Fm+; если на шине только устройства Fm+, скорость можно обменять на ёмкость и поднять её примерно в десять раз, пока фронты не хуже 1 мкс и спады не хуже 300 нс; табл. 10: IOL ≥ 3 мА при VOL = 0,4 В для Sm и Fm, ≥ 20 мА для Fm+; табл. 11: fSCL до 100/400/1000 кГц, tr ≤ 1000/300/120 нс, Cb ≤ 400/400/550 пФ
- NXP. PCA9685 16-channel, 12-bit PWM Fm+ I2C-bus LED controller, Product data sheet Rev. 4 (16 April 2015) — в названии и описании: интерфейс I²C Fast-mode Plus (Fm+) до 1 МГц
Нашли ошибку?
Смотрите также
- Ёмкость шины I²C (Cb)Ёмкость линии I²C: 400 пФ, подтяжка и скорость
- Время нарастания (rise time)Длительность фронта между двумя порогами
- Подтягивающий резисторPull-up и pull-down: определённый уровень на свободной линии
- Фильтр выбросов I²C (tSP)Входной фильтр SDA и SCL, подавляющий импульсы короче 50 нс
- I²CSDA и SCL, START/STOP, ACK, адреса, скорости, расчёт подтяжек
- Подтягивающие резисторы I²CДиапазон Rp по напряжению, скорости и ёмкости шины