pca9674a — Driver pentru expander I2C¶
Modulul pca9674a oferă un driver pentru expanderul de I/O cvasi-bidirecțional pe 8 biți NXP PCA9674A. Cipul expune un port de I/O pe 8 biți prin I2C și o linie INT activă pe nivel scăzut care emite un impuls ori de câte ori vreun pin de intrare își schimbă starea.
Fiecare pin este cvasi-bidirecțional: scrierea valorii 1 eliberează pinul către un pull-up intern slab, astfel încât acesta să acționeze ca o intrare pe care un driver extern o poate trage la nivel scăzut; scrierea valorii 0 trage activ pinul la nivel scăzut. Nu există un registru de direcție separat – PCA9674A.read() returnează nivelul extern curent al fiecărui pin indiferent de ce a fost scris ultima dată.
Adresa I2C pe 7 biți este 0x38 – 0x3F în funcție de pinii de configurare A0/A1/A2; 0x3F (63) este valoarea implicită (toți pinii de configurare la nivel înalt).
class PCA9674A – expander de I/O pe 8 biți¶
- class pca9674a.PCA9674A(bus: machine.I2C, irq_pin: str, address: int = 63, callback: Callable | None = None)¶
Creează o interfață către un expander de I/O PCA9674A.
buseste magistralamachine.I2Cla care este conectat expanderul.irq_pineste eticheta pinului de pe MCU-ul gazdă conectat la ieșireaINTa expanderului. Driverul îl configurează ca intrare cu pull-up și urmărește muchia sa descendentă.addresseste adresa I2C pe 7 biți a expanderului (0x38–0x3F). Valoarea implicită este0x3F.callbackeste invocat pe muchia descendentă airq_pinatunci când vreo stare de pin se schimbă. Primește instanțaPCA9674Aca singur argument; noua stare a pinilor poate fi citită curead(). TrecețiNone(valoarea implicită) pentru utilizarea prin interogare.