pca9674a — Pilote d’expandeur I2C

Le module pca9674a fournit un pilote pour l’expandeur d’E/S quasi-bidirectionnel 8 bits NXP PCA9674A. La puce expose un port d’E/S 8 bits via I2C ainsi qu’une ligne INT active à l’état bas qui émet une impulsion chaque fois que l’état d’une broche d’entrée change.

Chaque broche est quasi-bidirectionnelle : écrire 1 relâche la broche vers un faible pull-up interne afin qu’elle agisse comme une entrée qu’un pilote externe peut tirer à l’état bas ; écrire 0 force activement la broche à l’état bas. Il n’y a pas de registre de direction distinct – PCA9674A.read() renvoie le niveau externe actuel de chaque broche, quel que soit ce qui a été écrit en dernier.

L’adresse I2C 7 bits est 0x380x3F selon les broches de configuration A0/A1/A2 ; 0x3F (63) est la valeur par défaut (toutes les broches de configuration à l’état haut).

classe PCA9674A – expandeur d’E/S 8 bits

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

Crée une interface vers un expandeur d’E/S PCA9674A.

  • bus est le bus machine.I2C auquel l’expandeur est connecté.

  • irq_pin est l’étiquette de broche du MCU hôte connectée à la sortie INT de l’expandeur. Le pilote la configure comme une entrée avec un pull-up et surveille son front descendant.

  • address est l’adresse I2C 7 bits de l’expandeur (0x380x3F). La valeur par défaut est 0x3F.

  • callback est invoqué sur le front descendant de irq_pin lorsque l’état d’une broche change. Il reçoit l’instance PCA9674A comme unique argument ; le nouvel état des broches peut être lu avec read(). Passez None (la valeur par défaut) pour une utilisation par scrutation.

write(value: int) None

Écrit la value 8 bits sur les broches de l’expandeur d’E/S.

read() int

Renvoie la valeur 8 bits des broches de l’expandeur d’E/S.

reset() None

Réinitialise et réinitialise l’expandeur d’E/S, et rattache la fonction de rappel IRQ callback si une a été fournie.