Перейти к содержанию

TCA9548A — восьмиканальный коммутатор шины I²C от TI

TCA9548A — коммутатор шины I²C: одна пара SDA и SCL от контроллера разветвляется на восемь пар, и любые из них можно подключить командой по той же шине. Так решают конфликт одинаковых адресов — например, восемь одинаковых датчиков на одной шине. Разбираем по даташиту TI выводы, адресацию и регистр каналов, вывод RESET, согласование уровней через питание VCC и расчёт подтяжек, когда открыто несколько каналов.

Обновлено Редакция GAW

TCA9548A (Texas Instruments) — восемь двунаправленных ключей, которые соединяют пару SDA и SCL контроллера с парами SD0–SD7 и SC0–SC7. Управляет ими единственный восьмибитный регистр, доступный по той же шине I²C. Сам коммутатор сигналы не буферизует и не формирует фронты: открытый канал — это просто участок шины за сопротивлением ключа, поэтому подтяжки, ёмкость и нагрузка складываются по всем открытым каналам. Типичная задача — несколько устройств с одинаковым адресом I²C, у которых адрес нельзя сменить или вариантов адреса не хватает.

Коротко

  • Каналы — 8 пар SDn/SCn, открываются в любой комбинации; после включения питания все закрыты.
  • Адрес — 0x70–0x77 по выводам A2–A0; до восьми микросхем на шине.
  • Питание — 1,65–5,5 В при −40…+85 °C, до 3,6 В при работе до +125 °C; все входы и выходы допускают 5 В.
  • Шина — до 400 кГц, ёмкость до 400 пФ; ключ 4–20 Ом при VCC 4,5–5,5 В.
  • Сброс — вывод RESET (активный ноль) и сброс при включении питания.
  • Корпуса — TSSOP-24 (PW), VSSOP-24 (DGS), VQFN-24 4 × 4 мм (RGE).

Выводы

TCA9548A, вид сверху: 1 A0, 2 A1, 3 RESET (инверсный), 4 SD0, 5 SC0, 6 SD1, 7 SC1, 8 SD2, 9 SC2, 10 SD3, 11 SC3, 12 GND, 13 SD4, 14 SC4, 15 SD5, 16 SC5, 17 SD6, 18 SC6, 19 SD7, 20 SC7, 21 A2, 22 SCL, 23 SDA, 24 VCCTCA9548A1A02A13/RESET4SD05SC06SD17SC18SD29SC210SD311SC312GND13SD414SC415SD516SC517SD618SC619SD720SC721A222SCL23SDA24VCCвид сверху
TCA9548A в корпусах TSSOP-24 (PW) и VSSOP-24 (DGS), вид сверху (рис. 4-1 даташита)
Вывод PW, DGSВывод RGEОбозначениеНазначение
1, 2, 2122, 23, 18A0, A1, A2адрес; прямо к VCC или земле
324RESET (инверсный)сброс; если не используется — подтяжка к VCC
4, 6, 8, 101, 3, 5, 7SD0, SD1, SD2, SD3данные каналов 0–3
5, 7, 9, 112, 4, 6, 8SC0, SC1, SC2, SC3тактовые линии каналов 0–3
129GNDобщий провод
13, 15, 17, 1910, 12, 14, 16SD4, SD5, SD6, SD7данные каналов 4–7
14, 16, 18, 2011, 13, 15, 17SC4, SC5, SC6, SC7тактовые линии каналов 4–7
22, 2319, 20SCL, SDAшина контроллера
2421VCCпитание 1,65–5,5 В

Каждая линия SDn и SCn подтягивается своим резистором к своему напряжению канала, а SDA и SCL — к напряжению шины контроллера (примечание к табл. 4-1). У корпуса VQFN-24 есть площадка под корпусом.

Адрес и регистр каналов

Адрес — 1110 A2 A1 A0 (рис. 7-3), то есть 0x70–0x77. Регистр один, поэтому байт данных пишут сразу после адреса, без номера регистра (рис. 7-4): бит B0 открывает канал 0, бит B7 — канал 7 (рис. 7-6). Если в одной посылке передать несколько байт, сохранится последний. Чтение (рис. 7-5) возвращает текущее содержимое регистра.

Важная деталь из разд. 7.5.4: новый набор каналов включается только после условия STOP, чтобы все линии SCn и SDn были в единице в момент подключения. Наш вывод: выбор канала и обращение к датчику на нём нельзя склеить в одну транзакцию через повторный START — сначала «START, 0x70 + запись, байт каналов, STOP», затем обращение к датчику. Разложить транзакцию по битам помогает инструмент «Транзакция I²C».

Параметры

Условия — VCC = 1,65–5,5 В, весь рабочий диапазон температур (разд. 5.3, 5.5–5.8).

ПараметрМин.Тип.Макс.Условия
Питание VCC1,65 В—5,5 / 3,6 В−40…+85 °C / до +125 °C
Единица на SCL, SDA0,7 · VCC—6 В—
Единица на A0–A2, RESET0,7 · VCC—VCC + 0,5 В—
Ноль на входах−0,5 В—0,3 · VCC—
Порог сброса при росте / спаде VCC— / 0,8 В1,2 / 1 В1,5 / — Вбез нагрузки
Ток нуля SDA3 / 6 мА6 / 9 мА—при 0,4 / 0,6 В на выходе
Сопротивление ключа RON4 Ом10 Ом20 ОмVCC 4,5–5,5 В, 0,4 В, 15 мА
То же5 / 7 / 10 Ом12 / 15 / 25 Ом30 / 45 / 70 ОмVCC 3–3,6 В (0,4 В, 15 мА) / 2,3–2,7 и 1,65–1,95 В (0,4 В, 10 мА)
Ток при 400 кГц—50 / 20 мкА80 / 35 мкАVCC = 5,5 / 3,6 В
Ток покоя—0,2 / 0,1 мкА2 мкАVCC = 5,5 / 3,6 В, −40…+85 °C
Ёмкость SDA / SDn при закрытом ключе—20 / 5,5 пФ28 / 7,5 пФ—
Частота SCL0—400 кГцбыстрый режим
Ёмкость шины Cb——400 пФ—
Импульс RESET6 нс———
Задержка через ключ——0,3 / 1 нсрасчёт RC при RON = 20 Ом и 15 / 50 пФ

Предельные режимы: VCC и входы от −0,5 до 7 В, ток входа ±20 мА, ток выхода −25 мА, ток по VCC ±100 мА. Защита от электростатики — ±2000 В по модели тела человека и ±1000 В по модели заряженного устройства. Тепловое сопротивление кристалл — среда — 108,8 °C/Вт у TSSOP-24, 86,1 °C/Вт у VSSOP-24 и 57,2 °C/Вт у VQFN-24.

Согласование уровней

Ключи устроены так, что напряжение VCC ограничивает наибольший уровень, который они пропускают, — Vpass; выше линию поднимает подтяжка канала (разд. 3 и 8.2.1). Табл. 5.5 даёт напряжение на выходе ключа Vo(sw) при токе 100 мкА:

VCCVo(sw) тип.Vo(sw) в диапазоне
5 В3,6 В2,6–4,5 В при 4,5–5,5 В
3,3 В1,9 В1,6–2,8 В при 3–3,6 В
2,5 В1,5 В1,1–2 В при 2,3–2,7 В
1,8 В1,1 В0,6–1,25 В при 1,65–1,95 В

Правило из разд. 8.2.1: Vpass должно быть не выше самого низкого напряжения среди всех шин. Пример TI: контроллер на 5 В, каналы на 3,3 и 2,7 В — VCC выбирают 3,3 В. Наш вывод: при VCC = 3,3 В порог единицы на SCL и SDA — 0,7 · 3,3 ≈ 2,31 В, так что 5-вольтовый контроллер управляет коммутатором уверенно, а датчики на 3,3 В не получат больше 3,3 В, потому что их линии подтянуты к 3,3 В. Если все шины одного напряжения, VCC берут равным ему. Отдельный преобразователь вроде TXS0108E в такой схеме не нужен.

Подтяжки, когда открыто несколько каналов

TI выводит границы подтяжки из двух условий (разд. 8.2.2 и SLVA689A): снизу — ток нуля, Rp(min) = (VDPUX − VOL(max)) / IOL, сверху — время нарастания, Rp(max) = tr / (0,8473 · Cb), где tr = 300 нс для 400 кГц и 1000 нс для 100 кГц. Ёмкость Cb складывается из ёмкости коммутатора (20–28 пФ на SDA и 5,5–7,5 пФ на закрытом SDn), дорожек и всех устройств на открытых каналах. Подбор — в калькуляторе «Подтяжка I²C».

Наш расчёт для канала на 5 В с ёмкостью 100 пФ в быстром режиме: Rp(max) = 300 нс / (0,8473 · 100 пФ) ≈ 3,5 кОм, Rp(min) = (5 − 0,4) / 3 мА ≈ 1,5 кОм.

Ловушка — готовые модули датчиков, на каждом из которых уже стоят свои подтяжки. Когда открыто несколько каналов, их резисторы оказываются параллельно подтяжке контроллера, и тянуть линию в ноль приходится через всех сразу (разд. 8.2.1: суммарный IOL — сумма токов всех подтяжек). Наш расчёт для шины 3,3 В: подтяжка контроллера 4,7 кОм и четыре открытых канала с модулями по 4,7 кОм дают пять резисторов параллельно, 940 Ом, и ток (3,3 − 0,4) / 940 ≈ 3,1 мА — больше 3 мА, при которых нормирован ноль 0,4 В. Наш вывод: на модулях лишние подтяжки снимают или открывают каналы по одному; это заодно решает и задачу ёмкости.

Сброс по питанию и RESET

При включении внутренний сброс держит микросхему до порога VPORR (1,2 В тип., не больше 1,5 В), после чего регистр обнуляется и все каналы закрыты. Чтобы сброс повторился, VCC нужно опустить ниже VPORF − 50 мВ и держать так не меньше 40 мкс, со спадом 1–100 мс и нарастанием 0,1–100 мс (табл. 8-1, при 25 °C). Провал VCC до 1,2 В длительностью 1 мкс или до 0,5 · VCC длительностью до 10 мкс функционального сбоя не вызывает. Общие сведения — в статье «Сброс при включении питания».

Вывод RESET решает другую задачу: если датчик на одном из каналов завис и держит SDA в нуле, контроллер импульсом RESET от 6 нс закрывает все каналы и освобождает свою шину, не снимая питания (разд. 7.4.1). Наш вывод: RESET полезно подключить к свободному выводу микроконтроллера, а не только к подтяжке; как найти зависшее устройство — в ответе «Как проверить шину I²C».

Расхождения в документации

  • Упрощённая схема на с. 1 показывает у TCA9548A вывод INT и только два адресных вывода A0 и A1. Вывода прерывания у микросхемы нет, а адресных выводов три — A0, A1 и A2 (рис. 4-1, табл. 4-1).
  • Защита от ESD. В свойствах на с. 1 указано ещё 200 В по модели машины (A115-A), но в таблице ESD (разд. 5.2) этого значения нет — только ±2000 В HBM и ±1000 В CDM.
  • Чужое имя. Разд. 8.3.1 и подпись к табл. 8-1 говорят о PCA9548A — это другая микросхема TI, текст перенесён из её документации.
  • Подтяжка RESET. Разд. 7.4.1 требует подключать RESET к VCC через резистор, а табл. 4-1 допускает подтяжку к VCC или к напряжению шины контроллера VDPUM.

Частые вопросы

Какой адрес у TCA9548A?

Семибитный адрес — 1110 A2 A1 A0, то есть от 0x70 при A2 = A1 = A0 = 0 до 0x77 при всех единицах (табл. 7-1). Выводы A0–A2 подключают прямо к VCC или земле, оставлять их свободными нельзя. На одной шине можно поставить до восьми TCA9548A и получить 8 · 8 = 64 подканала (наш расчёт).

Как включить канал TCA9548A?

Записать один байт сразу после адреса микросхемы: каждый бит B0–B7 включает свой канал 0–7, регистрового адреса нет. Например, байт 0x05 открывает каналы 0 и 2, байт 0x00 закрывает все. Новый набор каналов вступает в силу только после условия STOP. После включения питания все каналы закрыты.

Можно ли через TCA9548A соединить 5-вольтовый контроллер с датчиками на 3,3 В?

Да, для этого TI предлагает выбрать VCC так, чтобы напряжение, которое пропускает ключ, не превышало самого низкого напряжения на шинах. При VCC = 3,3 В ключ пропускает 1,9 В тип. и не больше 2,8 В во всём диапазоне 3–3,6 В, а каждую шину до своего уровня поднимают её собственные подтяжки. Все выводы допускают 5 В.

Зачем вывод RESET и куда его подключать?

Ноль на RESET длительностью от 6 нс сбрасывает регистр, закрывает все каналы и перезапускает автомат I²C — так восстанавливают шину, если ведомое устройство на одном из каналов зависло и держит SDA в нуле. Если RESET не используется, его подтягивают резистором к VCC; TI в таблице выводов допускает и подтяжку к уровню шины контроллера.

Источники

  1. Texas Instruments. TCA9548A Low-Voltage 8-Channel I2C Switch with Reset (SCPS207H, May 2012, revised September 2024) — с. 1 — свойства, корпуса, упрощённая схема; разд. 4 — рис. 4-1, 4-2 и табл. 4-1 (выводы PW, DGS, RGE); разд. 5.1–5.3 — предельные режимы, ESD, рабочие условия (1,65–5,5 В, пороги 0,7 и 0,3 · VCC); разд. 5.4 — тепловые сопротивления; разд. 5.5 — VPOR, Vo(sw), IOL, токи, ёмкости, RON; разд. 5.6–5.8 — тайминги I²C до 400 кГц, RESET, задержка; разд. 7.4 — RESET и сброс при включении; разд. 7.5 — адрес (табл. 7-1), запись и чтение регистра, регистр каналов (рис. 7-6); разд. 8.2 — требования к подтяжкам, Vpass (рис. 8-2), формулы Rp(min) и Rp(max); разд. 8.3 — табл. 8-1 (сброс по питанию)
  2. Texas Instruments. I2C Bus Pullup Resistor Calculation (SLVA689A, February 2015, revised October 2026) — разд. 2 — вывод формул Rp(min) = (VCC − VOL) / IOL и Rp(max) = tr / (0,8473 · Cb), табл. 2-1 — tr 1000 и 300 нс, Cb до 400 пФ, VOL 0,4 В при 3 мА
  3. Texas Instruments. TCA9548A — страница изделия: описание и состав документации — текущая ревизия даташита — SCPS207H; используется для проверки актуальности документа

Нашли ошибку?