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

TCA9555 и PCA9555 — расширители портов I²C на 16 выводов от TI

TCA9555 и PCA9555 — расширители портов на 16 выводов для шины I²C с регистрами направления, полярности и выхода прерывания INT. Это одна и та же архитектура: PCA9555 работает от 2,3 до 5,5 В, более новый TCA9555 — от 1,65 В и потребляет в работе в несколько раз меньше. Разбираем по даташитам Texas Instruments выводы, адреса, восемь регистров, внутренние подтяжки, токи портов, ошибку прерывания PCA9555 и отличия от MCP23017 и PCF8575.

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

TCA9555 и PCA9555 (Texas Instruments) — расширители портов для шины I²C и SMBus: две группы по восемь выводов P00–P07 и P10–P17, у каждого вывода свой бит направления, выходной триггер и бит инверсии входа. По регистрам они повторяют давний стандарт PCA9555, по адресу совместимы с PCF8574 и PCF8575, а по набору функций ближе всего к MCP23017 — сравнение в конце карточки. Как работает сама шина и как выбрать подтягивающие резисторы, рассказывают статья об I²C и калькулятор подтяжек.

Коротко

  • Питание — TCA9555: 1,65–5,5 В; PCA9555: 2,3–5,5 В; выводы порта допускают до 5,5 В при любом питании.
  • Шина — I²C и SMBus до 400 кГц, адрес 0x20–0x27 выводами A0–A2, до восьми микросхем на шине.
  • Порты — 16 выводов с двухтактным выходом, подтяжкой 100 кОм к VCC и регистрами направления и инверсии; после включения — входы.
  • Ток вывода — в нуле до 25 мА, в единице до 10 мА; по нашему прочтению примечаний — не больше 100 мА на группу и 200 мА на корпус в нуле и 160 мА суммарно в единице.
  • Потребление — в покое 2,5 мкА тип. (до 3,5 мкА) при входах в единице; в работе 22 мкА у TCA9555 и 100 мкА у PCA9555 (5,5 В).
  • Корпуса — TCA9555: TSSOP-24, SSOP-24, WQFN-24 и VQFN-24 4 × 4 мм; PCA9555 ещё SOIC-24 и TVSOP-24.

Выводы

TCA9555, вид сверху: 1 INT, 2 A1, 3 A2, 4 P00, 5 P01, 6 P02, 7 P03, 8 P04, 9 P05, 10 P06, 11 P07, 12 GND, 13 P10, 14 P11, 15 P12, 16 P13, 17 P14, 18 P15, 19 P16, 20 P17, 21 A0, 22 SCL, 23 SDA, 24 VCCTCA95551INT2A13A24P005P016P027P038P049P0510P0611P0712GND13P1014P1115P1216P1317P1418P1519P1620P1721A022SCL23SDA24VCCвид сверху
TCA9555 и PCA9555 в корпусах TSSOP-24, SSOP-24, SOIC-24 и TVSOP-24, вид сверху; в QFN номера выводов другие — см. таблицу
ВыводTSSOP, SSOP, SOIC, TVSOPWQFN, VQFN (RTW, RGE)Назначение
INT122выход прерывания, открытый сток; подтянуть к VCC (обычно 10 кОм)
A1, A22, 323, 24выводы адреса; прямо к VCC или GND
P00–P074–111–8порт 0
GND129общий провод
P10–P1713–2010–17порт 1
A02118вывод адреса
SCL2219тактовая линия I²C, подтяжка к VCC
SDA2320линия данных I²C, подтяжка к VCC
VCC2421питание
площадка (QFN)——соединить с землёй или оставить свободной

Расстановка выводов у всех корпусов с двумя рядами одна и та же и совпадает с PCF8575, поэтому платы под один из них подходят и для другого. TCA9555 выпускается в TSSOP-24 (PW), SSOP-24 (DB), WQFN-24 4 × 4 мм (RTW) и VQFN-24 4 × 4 мм (RGE); PCA9555 — в DB, PW, RGE, а также TVSOP-24 (DGV) и SOIC-24 (DW); вариант DBQ ещё упомянут на первой странице, но в таблице заказа PCA9555DBQR помечен как снятый с производства. Центральную площадку QFN TI разрешает подключить к земле как второй вывод GND или не подключать вовсе.

Адрес и регистры

Адресный байт — 0100 A2 A1 A0 и бит R/W: от 0x20 (A2 = A1 = A0 = 0) до 0x27 (все единицы). Выводы адреса нельзя оставлять свободными и нельзя переключать при включённом питании, иначе адрес может смениться прямо во время обмена (разд. 9.3.2). После адреса контроллер передаёт командный байт — номер регистра, — а затем данные.

КомандаРегистрДоступПосле включения
0x00Input Port 0чтениеуровни выводов
0x01Input Port 1чтениеуровни выводов
0x02Output Port 0чтение и запись1111 1111
0x03Output Port 1чтение и запись1111 1111
0x04Polarity Inversion 0чтение и запись0000 0000
0x05Polarity Inversion 1чтение и запись0000 0000
0x06Configuration 0чтение и запись1111 1111
0x07Configuration 1чтение и запись1111 1111

Единица в регистре Configuration делает вывод входом, ноль — выходом; после включения все 16 выводов — входы. Регистр Output задаёт уровень выходов, но при чтении возвращает содержимое триггера, а не фактический уровень на выводе; настоящий уровень любого вывода, даже выхода, читается из Input Port. Polarity Inversion инвертирует бит входа при чтении. Регистры работают парами: после байта одного регистра пары следующий байт относится ко второму (за Output Port 0 идёт Output Port 1), так что 16 выводов записываются или читаются одной транзакцией из двух байтов. Командный байт запоминается: чтения без нового командного байта продолжают обращаться к тому же регистру. Наш вывод: типовая настройка — запись в 0x06 и 0x07 масок направления, затем запись выходов в 0x02 и 0x03; разобрать такие транзакции побайтно помогает конструктор транзакции I²C.

Подтяжки, выходы и прерывание

Каждый вывод порта — двухтактный выход, который отключается, когда вывод работает входом. Внутри к VCC подключён резистор 100 кОм (рис. 23 SCPS200E): свободный вход читается как единица, кнопка между выводом и землёй работает без внешних резисторов. Отключить подтяжку нельзя. Наш расчёт: вход, замкнутый на землю при VCC = 5,5 В, потребляет 5,5 / 100 000 ≈ 55 мкА; шестнадцать таких входов — около 0,88 мА, это близко к табличному току покоя при входах в нуле — 1,1 мА тип. и до 1,5 мА. При входах в единице ток покоя — 2,5 мкА тип. и до 3,5 мкА (5,5 В).

Выход INT — открытый сток, активный ноль: он опускается, когда на любом входе меняется уровень, и через tiv до 4 мкс сигнал действителен. Сбрасывается INT, когда вход возвращается в прежнее состояние или когда контроллер читает порт, вызвавший прерывание. Выводы-выходы прерывания не вызывают, а перевод вывода из выхода во вход может дать ложное прерывание, если его уровень не совпадает с содержимым Input Port. Порты читаются независимо: чтение порта 1 не сбрасывает прерывание порта 0, и наоборот (разд. 9.3.3).

После подачи питания схема сброса держит микросхему в исходном состоянии, пока VCC не превысит VPORR (1,2 В тип., до 1,5 В). Повторный сброс происходит, только если питание опустится ниже VPORF (0,75 В тип., до 1 В) и снова поднимется; по табл. 9 SCPS200E питание должно нарастать и спадать за 0,1–2000 мс. Там же два отдельных предела провалов: до VCC_GH = 1,2 В питание может опуститься без сбоя на время не больше VCC_GW = 10 мкс, а до VCC_MV = 1,5 В — без сброса, причём для этого уровня длительность не оговорена (нужно лишь не нарушить VCC_GH). Отдельного вывода RESET у этих микросхем нет — его нужно делать выключением питания.

Параметры

Условия — −40…+85 °C, если не указано иное (табл. 7.3–7.7 SCPS200E и 6.3–6.7 SCPS131J).

ПараметрTCA9555PCA9555Условия
Питание VCC1,65–5,5 В2,3–5,5 Впредел 6 В
Единица на входеот 0,7 · VCCот 0,7 · VCCдо 5,5 В на выводах порта и адреса, до VCC на SCL и SDA
Ноль на входедо 0,3 · VCCдо 0,3 · VCCот −0,5 В
Ток нуля на выводе порта25 / 18 / 11 мА25 мАу TCA9555 — при TJ до +65 / +85 / +100 °C
Нуль на выводе: гарантированный токот 8 мА при 0,5 В, от 10 мА при 0,7 Вот 8 мА (20 тип.) при 0,5 В, от 10 мА (24 тип.) при 0,7 В1,65 или 2,3–5,5 В
Единица на выводе (VCC = 3 В)от 2,6 В при −8 мА, от 2,5 В при −10 мАто жепри 4,75 В — от 4,1 и 4 В
Ток единицы на выводедо 10 мАдо 10 мАрабочие условия
Ток нуля SDA и INTот 3 мА при 0,4 Вот 3 мА при 0,4 Ву TCA9555 рабочий предел — 6 мА до +85 °C
Утечка входа порта в нуледо −100 мкАдо −100 мкАток подтяжки, VI = GND
Потребление в работе22 мкА тип., до 40 мкА100 мкА тип., до 200 мкА5,5 В, 400 кГц, входы
То же11 мкА тип., до 30 мкА30 мкА тип., до 75 мкА3,6 В
Покой, входы в единице2,5 мкА тип., до 3,5 мкА2,5 мкА тип., до 3,5 мкА5,5 В, без тактов
Покой, входы в нуле1,1 мА тип., до 1,5 мА1,1 мА тип., до 1,5 мА5,5 В, ток подтяжек
Порог сброса VPORR / VPORF1,2 / 0,75 В тип.1,2 / 0,75 В тип.максимум 1,5 / 1 В
Частота I²Cдо 400 кГцдо 400 кГцStandard и Fast mode
Выход после SCL (tpv)до 200 нс, до 300 нс при VCC < 2,3 Вдо 200 нсCL ≤ 100 пФ
Прерывание tiv и сброс tirдо 4 мксдо 4 мкс—

Предельные режимы (с. 5 обоих даташитов): VCC, входы и выходы — от −0,5 до 6 В; ток одного выхода — 50 мА в нуле и −50 мА в единице, через GND — до 250 мА, через VCC — до 160 мА; у TCA9555 предельная температура кристалла — +100 °C. В примечаниях к таблицам характеристик TI ограничивает нагрузку точнее: 25 мА на вывод, 100 мА на группу из восьми и 200 мА на корпус, а также 160 мА суммарного вытекающего тока (по 80 мА на группу). Наше прочтение: первые три предела относятся к току в нуле, последний — к току в единице; в самих таблицах примечания стоят наоборот (см. «Расхождения»). Тепловое сопротивление кристалл — среда: 108,8 °C/Вт у TSSOP-24, 92,9 у SSOP-24, 43,6 у WQFN-24 и 48,4 °C/Вт у VQFN-24; у PCA9555 ещё 105,4 у TVSOP-24 и 66,7 °C/Вт у SOIC-24.

Светодиоды на выводах

Выводы в нуле принимают ток, поэтому светодиод подключают анодом через резистор к питанию, катодом к выводу. Наш расчёт для красного светодиода с прямым напряжением около 2 В при VCC = 5 В и токе 8 мА: остаточное напряжение на выводе — до 0,5 В, резистор (5 − 2 − 0,5) / 0,008 ≈ 312 Ом, ближайший из ряда — 330 Ом. Шестнадцать таких светодиодов дают 128 мА — меньше предела 200 мА на корпус, а каждая группа из восьми — 8 · 8 = 64 мА при пределе 100 мА. Наш вывод: все восемь выводов группы можно нагрузить одновременно током до 100 / 8 = 12,5 мА; при большем токе одновременно светит меньше светодиодов.

Наш расчёт нагрева: 16 выводов по 10 мА при остаточном напряжении 0,7 В рассеивают 16 · 0,01 · 0,7 ≈ 0,11 Вт, перегрев в TSSOP-24 — 0,11 · 108,8 ≈ 12 °C. Для TCA9555 это важно: при +85 °C снаружи кристалл окажется около +97 °C, и допустимый ток вывода по рабочим условиям опустится до 11 мА.

Когда светодиод выключен, вывод становится входом или выходом единицы, а на нём остаётся напряжение около VCC − 1,2 В, если светодиод питается от того же VCC. Такой вход тратит лишний ток (у PCA9555 ΔICC — до 1,5 мА при одном входе на VCC − 0,6 В). TI предлагает два решения (разд. 10.2.2.2 SCPS200E): резистор 100 кОм параллельно светодиоду, который поднимает вывод до VCC, или питание светодиодов от напряжения, которое выше VCC минимум на 1,2 В.

Ошибка прерывания PCA9555

В даташите PCA9555 (разд. 8.4.1.1) описана ошибка: INT ошибочно снимается, если последний записанный командный байт — 0x00 (регистр Input Port 0) и другое устройство на шине подтверждает адрес с битом чтения. Тогда контроллер увидит, что прерывание сброшено, хотя он его не обработал. Обход, который предлагает TI: после чтения входов записать в расширитель другой командный байт, отличный от 0x00, до обращения к другим устройствам. Наш вывод: если на шине есть другие ведомые и INT используется, этот обход стоит включить в драйвер для обеих микросхем — TI называет его совместимым с другими версиями этого устройства, в том числе своими переработками.

TCA9555, PCA9555, MCP23017 и PCF8575

ПараметрTCA9555PCA9555MCP23017 (Microchip)PCF8575
Питание1,65–5,5 В2,3–5,5 В1,8–5,5 В2,5–5,5 В
Частота I²Cдо 400 кГцдо 400 кГцдо 1,7 МГцдо 400 кГц
Направление выводоврегистррегистррегистрнет, квазидвунаправленные
Подтяжка100 кОм, всегда100 кОм, всегда40–115 мкА при 5 В, включается битомслабый источник тока 30–300 мкА
Ток вывода в нуледо 25 мАдо 25 мАдо 25 мА (предел)до 25 мА
Прерываниеодин INTодин INTINTA и INTBодин INT
Адреса0x20–0x270x20–0x270x20–0x270x20–0x27

Наш вывод: TCA9555 и PCA9555 — самый простой путь к шестнадцати выводам с явным направлением: регистров восемь, драйвер умещается в несколько строк. MCP23017 гибче: подтяжки включаются по отдельности, есть прерывание по сравнению с заданным значением и шина до 1,7 МГц. PCF8575 обходится без регистров вовсе, но его выход в единице отдаёт лишь сотни микроампер. Если на шине нужно больше восьми расширителей с одинаковыми адресами, их разводят по каналам коммутатора TCA9548A.

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

  • Примечания о токе выводов. В обоих даташитах примечание (2) о пределах 25, 100 и 200 мА стоит у строки VOH, а примечание (3) о суммарных 160 мА — у строки IOL. По смыслу (вытекающий ток в единице и втекающий в нуле) должно быть наоборот; на странице мы приводим наше прочтение.
  • Ток покоя на первой странице. В свойствах TCA9555 — «3,5 мкА максимум», PCA9555 — «1 мкА максимум», а в таблицах характеристик обоих покой при входах в единице — до 3,5 мкА, при входах в нуле — до 1,5 мА: ток идёт через внутренние подтяжки. Значения ICC 1 мкА в таблице PCA9555 нет: 1 мкА там — только входные токи (IIH порта P и II).
  • Вход без подтяжки. Разд. 9.5.1 SCPS200E и 8.3 SCPS131J говорят, что во входном режиме оба транзистора выключены и вход высокоимпедансный, но рис. 23 и описание микросхем показывают подтяжку 100 кОм к VCC; это отличие от TCA9535 и PCA9535 TI отмечает сама.
  • ΔICC без таблицы. Разд. 10.2.2.2 SCPS200E отсылает к параметру ΔICC в таблице электрических характеристик, но в ревизии C этот параметр из таблицы TCA9555 удалён и заменён графиком; у PCA9555 он остался (до 1,5 мА).
  • Название корпуса PW. В таблице корпусов на с. 1 SCPS131J корпус PW назван SSOP, в таблице выводов и тепловых характеристик — TSSOP.
  • Корпус DBQ. Первая страница SCPS131J и таблица тепловых характеристик перечисляют DBQ (QSOP-24), а в таблице заказа PCA9555DBQR помечен как снятый с производства; чертежа DBQ в даташите нет. Чертежа DW (SOIC-24) в текстовом слое даташита тоже нет, хотя корпус в производстве.
  • Таблица выводов PCA9555. В заголовке табл. 5-1 SCPS131J перечислены DB, DBQ, PW и DGV, но нет DW, хотя рисунок над таблицей относится и к нему.

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

Чем TCA9555 отличается от PCA9555?

Выводы, адреса и регистры у них одинаковые, программа для одного работает с другим. TCA9555 питается от 1,65 до 5,5 В, PCA9555 — от 2,3 до 5,5 В. В работе на 400 кГц при 5,5 В TCA9555 потребляет 22 мкА тип. (до 40 мкА), PCA9555 — 100 мкА тип. (до 200 мкА). У TCA9555 допустимый ток нуля на выводе порта снижается с нагревом кристалла: 25 мА до +65 °C, 18 мА до +85 °C, 11 мА до +100 °C. В даташите PCA9555 описана ошибка выхода INT, в даташите TCA9555 такого раздела нет.

Какой адрес у TCA9555 и PCA9555?

Семибитный адрес — 0100 A2 A1 A0, от 0x20 при всех выводах адреса на земле до 0x27 при всех на питании. Выводы A0–A2 подключают прямо к VCC или GND, оставлять их свободными нельзя. Этот же диапазон адресов занимают PCF8574, PCF8575 и MCP23017, поэтому на одной шине их вместе может быть не больше восьми.

Нужны ли внешние подтягивающие резисторы на входах?

Нет: у TCA9555 и PCA9555 каждый вывод порта подтянут к VCC внутренним резистором 100 кОм, поэтому кнопку можно включать между выводом и землёй. Подтяжку нельзя отключить, и у неё есть цена: вход, прижатый к земле, потребляет около 50 мкА при 5 В. Если подтяжка мешает, у TI есть TCA9535 и PCA9535 — те же микросхемы без неё.

Можно ли подавать 5 В на выводы TCA9555, питая его от 3,3 В?

На выводы порта и адреса — да: в рабочих условиях их единица допускается до 5,5 В при любом VCC. Наш расчёт: при этом через внутреннюю подтяжку 100 кОм из источника 5 В в цепь VCC = 3,3 В течёт около (5 − 3,3) / 100 000 ≈ 17 мкА на каждый такой вход. Для SDA и SCL верхняя граница единицы — VCC, а более высокое напряжение, по примечанию к таблице рабочих условий, увеличивает ток потребления; поэтому подтягивающие резисторы шины подключают к тому же питанию, что и VCC расширителя.

Источники

  1. Texas Instruments. TCA9555 Low-Voltage 16-Bit I2C and SMBus I/O Expander with Interrupt Output and Configuration Registers (SCPS200E, July 2009, revised April 2019) — с. 1 — свойства (3,5 мкА, 400 кГц, 5-V tolerant I/O), корпуса PW, DB, RTW, RGE; с. 3 — разд. 5 (подтяжка, совместимость адреса с PCF8575 и PCF8574); с. 4 — расположение и назначение выводов; с. 5 — предельные режимы, ESD, рабочие условия (1,65–5,5 В, IOL 25/18/11 мА по TJ); с. 6–7 — тепловые характеристики, табл. 7.5 (POR, VOH, IOL, токи утечки и потребления); с. 7–8 — разд. 7.6–7.7 (I²C, tiv, tpv); с. 16–17 — разд. 9.3–9.5.1, рис. 23 (100 кОм); с. 19–24 — табл. 1–7 (адрес, команды, регистры); с. 26 — разд. 10.2.2.2 (ΔICC); с. 29 — табл. 9 (питание при сбросе); с. 37–48 — чертежи RGE0024B, PW0024A, RTW0024B
  2. Texas Instruments. PCA9555 Remote 16-bit I2C and SMBus I/O Expander with Interrupt Output and Configuration Registers (SCPS131J, August 2005, revised March 2021) — с. 1 — свойства (1 мкА), корпуса DB, DBQ, DGV, DW, PW, RGE; с. 2–3 — история ревизий (VIH SCL и SDA ограничено VCC в ревизии J); с. 4 — выводы; с. 5 — предельные режимы, рабочие условия (2,3–5,5 В); с. 6 — тепловые характеристики; с. 7–8 — табл. 6.5–6.7 (IOL 8/20 и 10/24 мА, ICC 100/200 мкА, ΔICC 1,5 мА); с. 14–15 — разд. 8.1–8.3 (совместимость с PCF8575, подтяжка); с. 16 — разд. 8.4.1.1 (ошибка прерывания); с. 18–19 — адрес и регистры; с. 27 — требования к питанию при сбросе; приложение — PCA9555DBQR снят с производства
  3. Microchip. MCP23017/MCP23S17 16-Bit I/O Expander with Serial Interface (DS20001952C) — для сравнения: с. 1 — 100 кГц, 400 кГц и 1,7 МГц, питание 1,8–5,5 В; с. 3 — предельные токи (25 мА на вывод, 125 мА через VDD, 150 мА через VSS); с. 4 — подтяжка 40–115 мкА при 5 В

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