Руководства по применению AN-13-0023 и AN-13-0021: расчёт нагрузочной способности шины I²C и проектирование изолированных интерфейсов I²C (NSI8200 / NSI8100)

Шина I²C (и её производные SMBus и PMBus) повсеместно используется для управления батарейными модулями BMS, серверными блоками питания (PSU/BBU), датчиками температуры и промышленными модулями ввода-вывода. Поскольку линии SDA и SCL являются двунаправленными с открытым стоком (Open-Drain), их гальваническая развязка не может быть выполнена обычными однонаправленными цифровыми изоляторами без риска взаимной блокировки (Latch-up). Объединённый обзор официальных руководств Novosense AN-13-0023 и AN-13-0021 объясняет устройство двунаправленных изоляторов NSI8200 / NSI8100 и расчёт нагрузочной способности шины.

1. Как предотвращается самоблокировка в двунаправленном изоляторе I²C

Если соединить два встречно-направленных канала изолятора напрямую, низкий уровень со стороны А переведёт сторону Б в «0», а обратный канал удержит сторону А в «0» даже после отпускания линии ведущим устройством. В изоляторах Novosense NSI8200 и NSI8100 для развязки встречных потоков на стороне 1 (SDA1/SCL1) применён метод разделения уровней низкого напряжения (Voltage Offset Separation):

  • Когда внешнее устройство на стороне 1 притягивает линию SDA1 к земле (ниже входного порога V_IL1 ≈ 0,4 В), изолятор транслирует логический «0» на сторону 2 (SDA2 ≈ 0,2 В).
  • Когда же внешнее устройство на стороне 2 притягивает линию SDA2 к земле, выходной буфер стороны 1 формирует специальный «высокий нулевой уровень» V_OL1 ≈ 0,65…0,80 В.
  • Этот уровень 0,65–0,80 В гарантированно распознаётся как логический «0» любым внешним контроллером I²C на стороне 1 (порог V_IL стандарта I²C составляет 0,3 × VDD ≥ 0,99 В при питании 3,3 В), но не вызывает срабатывания собственного входного компаратора стороны 1 (так как 0,65 В > V_IL1 ≈ 0,4 В). Благодаря этому защёлкивание полностью исключено.

2. Расчёт диапазона подтягивающих резисторов R_p (AN-13-0023)

Значение резистора подтяжки R_p на обеих сторонах изолятора ограничено снизу максимальным втекающим током выходного каскада I_OL, а сверху — максимально допустимым временем нарастания фронта t_r при заданной паразитной ёмкости шины C_bus:

  • Минимальное сопротивление R_p(min): определяется как `(VDD − V_OL(max)) / I_OL(max)`. На стороне 1 изолятора NSI8200 / NSI8100 максимальный втекающий ток ограничен величиной 3,5 мА, а на стороне 2 — 35 мА. Поэтому на стороне 1 при питании 3,3 В сопротивление R_p1 должно быть не менее 910 Ом – 1 кОм (при 5 В — не менее 1,5 кОм).
  • Максимальное сопротивление R_p(max): определяется постоянной времени RC-заряда шины от уровня 0,3×VDD до 0,7×VDD: `R_p(max) = t_r(max) / (0,8473 × C_bus)`. Для режима Fast Mode (400 кГц, t_r ≤ 300 нс) при ёмкости дорожек и входов C_bus = 100 пФ максимальное сопротивление составляет `300 нс / (0,8473 × 100 пФ) ≈ 3,54 кОм`.
  • Разделение ёмкости магистрали: поскольку ёмкости сторон 1 и 2 гальванически и электрически развязаны буферами изолятора NSI8200, установка изолятора позволяет разбить длинную высокоёмкостную линию (где ёмкость кабеля на стороне 2 достигает 400 пФ) от локальной платы микроконтроллера (на стороне 1 с ёмкостью <50 пФ).

3. Правило подключения сторон 1 и 2

Никогда не соединяйте стороны 1 двух изоляторов NSI8200 друг с другом напрямую, так как уровень V_OL1 ≈ 0,7 В одного изолятора не сможет переключить входной порог V_IL1 ≈ 0,4 В другого изолятора. Сторона 1 всегда подключается к локальному ведущему контроллеру (MCU), а сторона 2 — к магистральной шине или стороне 2 другого изолятора.

4. Полная документация

Источник: Application Notes AN-13-0023 & AN-13-0021 (PDF) · открыть материал на novosns.com