pca9674a — I2C bővítő illesztőprogram

A pca9674a modul illesztőprogramot nyújt az NXP PCA9674A 8 bites kvázi-kétirányú I/O bővítőhöz. A chip egy 8 bites I/O portot tesz elérhetővé I2C-n keresztül, valamint egy aktív-alacsony INT vonalat, amely impulzust ad, valahányszor bármely bemeneti láb állapota megváltozik.

Minden láb kvázi-kétirányú: az 1 írása egy gyenge belső felhúzóra engedi el a lábat, így bemenetként viselkedik, amelyet egy külső meghajtó alacsonyra húzhat; a 0 írása aktívan alacsonyra hajtja a lábat. Nincs külön irányregiszter – a PCA9674A.read() minden láb aktuális külső szintjét adja vissza, függetlenül attól, mi volt utoljára írva.

A 7 bites I2C cím 0x380x3F az A0/A1/A2 strap lábaktól függően; a 0x3F (63) az alapértelmezett (összes-magas strapek).

class PCA9674A – 8 bites I/O bővítő

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

Létrehoz egy interfészt egy PCA9674A I/O bővítőhöz.

  • A bus az a machine.I2C busz, amelyhez a bővítő csatlakozik.

  • Az irq_pin a host MCU-n lévő láb címkéje, amely a bővítő INT kimenetéhez csatlakozik. Az illesztőprogram felhúzással rendelkező bemenetként konfigurálja, és figyeli a lefutó élét.

  • Az address a bővítő 7 bites I2C címe (0x380x3F). Alapértelmezett értéke 0x3F.

  • A callback az irq_pin lefutó élén kerül meghívásra, amikor bármely láb állapota megváltozik. Egyetlen argumentumként a PCA9674A példányt kapja meg; az új lábállapot a read() segítségével olvasható ki. Adjon meg None értéket (az alapértelmezett) a lekérdezéses használathoz.

write(value: int) None

Kiírja a 8 bites value értéket az I/O bővítő lábaira.

read() int

Visszaadja az I/O bővítő lábainak 8 bites értékét.

reset() None

Visszaállítja és újrainicializálja az I/O bővítőt, és újra csatlakoztatja az IRQ callback visszahívást, ha meg volt adva.