pca9674a — Upravljački program za I2C ekspander

Modul pca9674a pruža upravljački program za NXP PCA9674A 8-bitni kvazi-dvosmjerni U/I ekspander. Čip izlaže 8-bitni U/I port putem I2C i aktivnu-nisku INT liniju koja se pulsira kad god bilo koji ulazni pin promijeni stanje.

Svaki pin je kvazi-dvosmjeran: upisivanje 1 otpušta pin na slabi interni pull-up tako da djeluje kao ulaz koji vanjski upravljač može povući na nisko; upisivanje 0 aktivno povlači pin na nisko. Nema zasebnog registra smjera – PCA9674A.read() vraća trenutnu vanjsku razinu svakog pina bez obzira na to što je zadnje upisano.

7-bitna I2C adresa je 0x380x3F ovisno o A0/A1/A2 strap pinovima; 0x3F (63) je zadana (svi strapovi visoki).

klasa PCA9674A – 8-bitni U/I ekspander

class pca9674a.PCA9674A(bus: machine.I2C, irq_pin: str, address: int = 63, callback: Callable | None = None)

Stvara sučelje prema PCA9674A U/I ekspanderu.

  • bus je machine.I2C sabirnica na koju je ekspander priključen.

  • irq_pin je oznaka pina na glavnom MCU-u povezanog s ekspanderovim INT izlazom. Upravljački program ga konfigurira kao ulaz s pull-upom i prati njegov padajući brid.

  • address je 7-bitna I2C adresa ekspandera (0x380x3F). Zadana vrijednost je 0x3F.

  • callback se poziva na padajućem bridu irq_pin kada se bilo koje stanje pina promijeni. Prima instancu PCA9674A kao svoj jedini argument; novo stanje pina može se pročitati pomoću read(). Proslijedite None (zadano) za uporabu s anketiranjem.

write(value: int) None

Upisuje 8-bitnu value na pinove U/I ekspandera.

read() int

Vraća 8-bitnu vrijednost pinova U/I ekspandera.

reset() None

Resetira i ponovno inicijalizira U/I ekspander te ponovno priključuje IRQ callback ako je naveden.