PCF8574 — восьмиразрядный расширитель портов на шине I2C: он даёт восемь дополнительных выводов к микроконтроллеру, у которого портов не хватает. Управление идёт по двум проводам, а данные читаются и записываются побайтно, по восемь выводов за одну операцию. Ключевая особенность прибора, которую надо понимать до подключения, — его выводы квазидвусторонние. Управления направлением у них нет: каждый вывод может работать и на вход, и на выход, и переключается сам, по тому, читают его или пишут. Из этого следует поведение при включении питания: все восемь выводов подтягиваются вверх, и в таком состоянии они уже работают как входы с подтяжкой. Если к выводу подключён светодиод, он при включении вспыхнет — и это нормальное поведение прибора, а не неисправность. Второе — подтяжки выводов слабые, порядка 100 мкА, поэтому внешнее устройство может перетянуть их вниз, но не может заставить прибор выдать сильный сигнал: как выход вывод работает только через защёлку, под которую нужно записать значение. Третье, что экономит время, — адрес: у прибора три вывода A0, A1, A2, и каждый задаёт свой бит адреса, причём внутренних подтяжек у них нет, так что каждый вывод обязательно надо подтянуть к земле или к питанию явно, иначе адрес будет неопределённым. И последнее: два варианта — PCF8574 и PCF8574A — имеют разные базовые адреса и спокойно уживаются на одной шине, в отличие от одинаковых модулей.
Содержание руководства (9 разделов)
Распиновка PCF8574 (DIP-16 / SO-16)
| Вывод | Назначение | Вывод | Назначение |
|---|---|---|---|
| 1 | A0 — бит адреса | 9 | P4 — вывод 4 |
| 2 | A1 — бит адреса | 10 | P5 — вывод 5 |
| 3 | A2 — бит адреса | 11 | P6 — вывод 6 |
| 4 | P0 — вывод 0 | 12 | P7 — вывод 7 |
| 5 | P1 — вывод 1 | 13 | INT̅ — прерывание, активно по низкому уровню |
| 6 | P2 — вывод 2 | 14 | SCL — такт шины |
| 7 | P3 — вывод 3 | 15 | SDA — данные шины |
| 8 | VSS — земля | 16 | VDD — питание 2,5…6 В |
Что значит «квазидвусторонний» вывод
У большинства микроконтроллеров вывод порта либо вход, либо выход, и направление задаётся регистром. У PCF8574 иначе: направления у выводов нет вообще, и режим определяется тем, что делает контроллер — читает он этот вывод или записывает в него.
В режиме вывода вывод работает как обычный выход с защёлкой: записанное значение удерживается, и вывод может непосредственно зажечь светодиод или дать ток нагрузке. В режиме ввода внутри вывода включена слабая подтяжка вверх, и внешнее устройство может перетянуть её вниз, чтобы сообщить контроллеру ноль. Например, кнопка на земле при таком подключении читается как ноль, а отпущенная — как единица, без всяких внешних резисторов.
Практическое следствие ограничивает то, что можно подключить: подтяжка вывода слабая, порядка 100 мкА, поэтому внешний источник не сможет «затолкать» в линию сильный сигнал — он может только заземлить её. Приборы с током потребления больше этого на единицу состояния читать не получится, и это надо учитывать при выборе, что подключается к порту.
Состояние выводов при включении питания
При подаче питания все восемь выводов подтягиваются вверх, то есть переходят в состояние входа с единицей. Логика здесь выбрана правильно: в таком состоянии потребление тока минимально, и выводы ничего не «замыкают» на землю, пока в них не запишут значение.
Но у этого есть видимое последствие. Если к выводу подключён светодиод с ограничительным резистором на землю, то при включении питания светодиод загорится — прибор ведь выставил единицу. Для многих схем это нормально, но если прибор должен стартовать с выключенными индикаторами, в схему вводят инвертирование или дополнительную цепь.
Отсюда и типичная неисправность, которую приносят на диагностику: «после замены прибора всё горит». Почти всегда дело не в новой детали, а в том, что состояние выводов до первой записи контроллером не выставляется, и в схеме не предусмотрено начальное состояние.
Адрес и выводы A0, A1, A2
Три вывода A0, A1, A2 задают младшие три бита адреса, и всего на шине помещается восемь таких приборов. Внутренних подтяжек у этих выводов нет, поэтому каждый из них обязательно нужно подтянуть явно: к земле или к питанию. Оставленный в воздухе вывод адреса даёт непредсказуемый адрес, и прибор то не виден на шине, то отвечает не на тот запрос, — симптом, который ищут в прошивке, хотя причина в пайке.
Базовый адрес у PCF8574 — 0x20, и с учётом трёх бит получается диапазон 0x20…0x27. У варианта PCF8574A базовый адрес другой — 0x38, и диапазон 0x38…0x3F. Это как раз то, что делает пару PCF8574 и PCF8574A удобной: они не конфликтуют на одной шине, и на ней можно разместить шестнадцать приборов, то есть 128 выводов.
Отдельно про тип линии: SDA и SCL открытые, и подтяжки на них обязательны — обычно 4,7 кОм. На готовых модулях они распаяны, но при сборке своего модуля их нельзя забыть, иначе шина просто не будет работать, и это выглядит как «неисправный модуль».
Характеристики
- Питание 2,5…6 В, потребление в дежурном режиме до 10 мкА.
- Скорость шины: до 100 кГц в стандартном режиме, до 400 кГц в быстром.
- Выход INT̅ с открытым коллектором, активен по низкому уровню: он не тянет линию сам, подтяжка на нём обязательна.
- Как выход вывод держит ток до 100 мА при защёлке, что позволяет зажигать светодиоды напрямую.
- Выводы порта после включения питания подтянуты вверх, в режиме входа подтяжка около 100 мкА.
Частые вопросы
- Как задать адрес — выводами A0, A1, A2, каждый из которых нужно подтянуть к земле или к питанию явно.
- Что означает квазидвусторонний вывод — направления у вывода нет, он сам переключается между чтением и записью.
- Что будет при включении питания — все восемь выводов подтянуты вверх, то есть в состоянии единицы.
- Можно ли поставить PCF8574 и PCF8574A на одну шину — да, у них разные базовые адреса, 0x20 и 0x38, и они не конфликтуют.
- Нужны ли подтяжки на SDA и SCL — да, обязательно, обычно 4,7 кОм; на готовых модулях они уже распаяны.
Примените это к своей спецификации
Отправьте партномера или файл спецификации (Excel / CSV). По каждой строке проверим складские остатки в Шэньчжэне, наличие заводской упаковки и проверенные аналоги — с отгрузкой единой партией.
Запрос успешно отправлен!
Ваш запрос по позиции (ICBOMS) зарегистрирован. Номер заявки:
1. Служба закупок в Шэньчжэне проверяет реальные физические остатки на складах и Data Code.
2. Официальный расчет с ценами, сроками и условиями DDP будет отправлен на в течение 2-24 ч.
Как написано это руководство
Руководство написано службой поставок ICBOMS в Шэньчжэне и выверено по документам производителей и стандартам, на которые ссылается текст. Формулировки ограничены тем, что делает эта служба, и тем, как оценивают деталь — без ориентировочных цен, сроков поставки и остатков: всё это считается по каждой строке отдельно, по факту проверки. Дата последней вычитки стоит в начале страницы.