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.
Выводы
| Вывод | TSSOP, SSOP, SOIC, TVSOP | WQFN, VQFN (RTW, RGE) | Назначение |
|---|---|---|---|
| INT | 1 | 22 | выход прерывания, открытый сток; подтянуть к VCC (обычно 10 кОм) |
| A1, A2 | 2, 3 | 23, 24 | выводы адреса; прямо к VCC или GND |
| P00–P07 | 4–11 | 1–8 | порт 0 |
| GND | 12 | 9 | общий провод |
| P10–P17 | 13–20 | 10–17 | порт 1 |
| A0 | 21 | 18 | вывод адреса |
| SCL | 22 | 19 | тактовая линия I²C, подтяжка к VCC |
| SDA | 23 | 20 | линия данных I²C, подтяжка к VCC |
| VCC | 24 | 21 | питание |
| площадка (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). После адреса контроллер передаёт командный байт — номер регистра, — а затем данные.
| Команда | Регистр | Доступ | После включения |
|---|---|---|---|
| 0x00 | Input Port 0 | чтение | уровни выводов |
| 0x01 | Input Port 1 | чтение | уровни выводов |
| 0x02 | Output Port 0 | чтение и запись | 1111 1111 |
| 0x03 | Output Port 1 | чтение и запись | 1111 1111 |
| 0x04 | Polarity Inversion 0 | чтение и запись | 0000 0000 |
| 0x05 | Polarity Inversion 1 | чтение и запись | 0000 0000 |
| 0x06 | Configuration 0 | чтение и запись | 1111 1111 |
| 0x07 | Configuration 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).
| Параметр | TCA9555 | PCA9555 | Условия |
|---|---|---|---|
| Питание VCC | 1,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 / VPORF | 1,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
| Параметр | TCA9555 | PCA9555 | MCP23017 (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 | один INT | INTA и INTB | один INT |
| Адреса | 0x20–0x27 | 0x20–0x27 | 0x20–0x27 | 0x20–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 расширителя.
Источники
- 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
- 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 снят с производства
- 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 В
Нашли ошибку?
Смотрите также
- Интерфейсные микросхемыРасширители портов, трансиверы, Ethernet, 4–20 мА: параметры, карточки
- MCP2301716 выводов по I²C: адреса, регистры, подтяжки, прерывания, токи
- PCF85748 выводов по I²C: адреса, квазидвунаправленные порты, токи, INT
- PCF857516 квазидвунаправленных выводов по I²C: адреса, пары байтов, токи, INT
- TCA9548AКоммутатор I²C на 8 каналов: выводы, адреса 0x70–0x77, регистр, RESET, уровни, подтяжки
- I²CSDA и SCL, START/STOP, ACK, адреса, скорости, расчёт подтяжек
- Расширитель портовДополнительные выводы по I²C и SPI: типы, адреса, прерывания
- Адрес I²C7-битный адрес ведомого и байт адреса с битом R/W
- Подтягивающий резисторPull-up и pull-down: определённый уровень на свободной линии
- Открытый стокВыход только с транзистором к земле, единицу даёт подтяжка
- Двухтактный выходВыход push-pull: оба уровня формирует сам, без подтяжки
- Сброс при включении питанияВнутренний сброс до роста питания: пороги, скорость нарастания, примеры
- Подтягивающие резисторы I²CДиапазон Rp по напряжению, скорости и ёмкости шины
- Транзакция I²C по байтамБайт адреса, ACK и NACK, повторный START, диаграмма и код
- TSSOP-24Шаг 0,65 мм, корпус 7,7–7,9 × 4,3–4,5 мм, по выводам 6,2–6,6 мм, высота до 1,2 мм
- SSOP-24Шаг 0,65 мм, корпус 7,9–8,5 × 5,0–5,6 мм, по выводам 7,4–8,2 мм, высота до 2,0 мм
- VQFN-24 4×4Шаг 0,5 мм, корпус 4 × 4 мм, площадка 2,6 мм, θJA 60,6 °C/Вт
- WQFN-24 4×4Корпус 3,85–4,15 мм, высота до 0,8 мм, шаг 0,5 мм, площадка 2,35–2,55 мм
- TVSOP-24Шаг 0,4 мм, корпус 4,9–5,1 × 4,3–4,5 мм, по выводам 6,2–6,6 мм, высота до 1,2 мм