pca9674a — Драйвер I2C-расширителя¶
Модуль pca9674a предоставляет драйвер для 8-битного квазидвунаправленного расширителя ввода-вывода NXP PCA9674A. Чип предоставляет 8-битный порт ввода-вывода по I2C и активный по низкому уровню сигнал INT, который выдаёт импульс при изменении состояния любого входного вывода.
Каждый вывод является квазидвунаправленным: запись 1 отпускает вывод на слабый внутренний подтягивающий резистор, благодаря чему он работает как вход, который внешний драйвер может притянуть к низкому уровню; запись 0 активно притягивает вывод к низкому уровню. Отдельного регистра направления нет — PCA9674A.read() возвращает текущий внешний уровень каждого вывода независимо от того, что было записано последним.
7-битный адрес I2C составляет 0x38 – 0x3F в зависимости от состояния выводов A0/A1/A2; 0x3F (63) используется по умолчанию (все выводы притянуты к высокому уровню).
class PCA9674A — 8-битный расширитель ввода-вывода¶
- class pca9674a.PCA9674A(bus: machine.I2C, irq_pin: str, address: int = 63, callback: Callable | None = None)¶
Создаёт интерфейс к расширителю ввода-вывода PCA9674A.
bus— это шинаmachine.I2C, к которой подключён расширитель.irq_pin— это метка вывода на главном MCU, подключённого к выходуINTрасширителя. Драйвер настраивает его как вход с подтягивающим резистором и отслеживает его спадающий фронт.address— это 7-битный адрес I2C расширителя (0x38–0x3F). По умолчанию0x3F.callbackвызывается по спадающему фронтуirq_pinпри изменении состояния любого вывода. Он получает экземплярPCA9674Aв качестве своего единственного аргумента; новое состояние выводов можно прочитать с помощьюread(). ПередайтеNone(по умолчанию) для опросного режима.