pca9674a — I2C-Expander-Treiber¶
Das Modul pca9674a stellt einen Treiber für den NXP PCA9674A bereit, einen quasi-bidirektionalen 8-Bit-I/O-Expander. Der Chip stellt einen 8-Bit-I/O-Port über I2C sowie eine Low-aktive INT-Leitung bereit, die immer dann einen Impuls erzeugt, wenn ein Eingangspin seinen Zustand ändert.
Jeder Pin ist quasi-bidirektional: Das Schreiben einer 1 gibt den Pin auf einen schwachen internen Pull-up frei, sodass er als Eingang fungiert, den ein externer Treiber auf Low ziehen kann; das Schreiben einer 0 treibt den Pin aktiv auf Low. Es gibt kein separates Richtungsregister – PCA9674A.read() gibt den aktuellen externen Pegel jedes Pins zurück, unabhängig davon, was zuletzt geschrieben wurde.
Die 7-Bit-I2C-Adresse liegt je nach den A0/A1/A2-Strap-Pins zwischen 0x38 und 0x3F; 0x3F (63) ist der Standardwert (alle Straps High).
class PCA9674A – 8-Bit-I/O-Expander¶
- class pca9674a.PCA9674A(bus: machine.I2C, irq_pin: str, address: int = 63, callback: Callable | None = None)¶
Erstellt eine Schnittstelle zu einem PCA9674A-I/O-Expander.
busist dermachine.I2C-Bus, an den der Expander angeschlossen ist.irq_pinist das Pin-Label am Host-MCU, das mit demINT-Ausgang des Expanders verbunden ist. Der Treiber konfiguriert es als Eingang mit Pull-up und überwacht seine fallende Flanke.addressist die 7-Bit-I2C-Adresse des Expanders (0x38–0x3F). Standardwert ist0x3F.callbackwird bei der fallenden Flanke vonirq_pinaufgerufen, wenn sich der Zustand eines Pins ändert. Es erhält diePCA9674A-Instanz als einziges Argument; der neue Pin-Zustand kann mitread()gelesen werden. Übergeben SieNone(der Standardwert) für den abfragenden Betrieb.