pca9674a — Driver Expander I2C¶
Il modulo pca9674a fornisce un driver per l’espansore di I/O quasi-bidirezionale a 8 bit NXP PCA9674A. Il chip espone una porta di I/O a 8 bit tramite I2C e una linea INT attiva-bassa che genera un impulso ogni volta che un qualsiasi pin di input cambia stato.
Ogni pin è quasi-bidirezionale: scrivere 1 rilascia il pin a un debole pull-up interno in modo che agisca come input che un driver esterno può portare a livello basso; scrivere 0 porta attivamente il pin a livello basso. Non esiste un registro di direzione separato – PCA9674A.read() restituisce il livello esterno corrente di ogni pin indipendentemente da ciò che è stato scritto per ultimo.
L’indirizzo I2C a 7 bit è 0x38 – 0x3F a seconda dei pin di strap A0/A1/A2; 0x3F (63) è il valore predefinito (tutti gli strap alti).
class PCA9674A – espansore di I/O a 8 bit¶
- class pca9674a.PCA9674A(bus: machine.I2C, irq_pin: str, address: int = 63, callback: Callable | None = None)¶
Crea un’interfaccia verso un espansore di I/O PCA9674A.
busè il busmachine.I2Ca cui è collegato l’espansore.irq_pinè l’etichetta del pin sull’MCU host collegato all’uscitaINTdell’espansore. Il driver lo configura come input con pull-up e ne monitora il fronte di discesa.addressè l’indirizzo I2C a 7 bit dell’espansore (0x38–0x3F). Il valore predefinito è0x3F.callbackviene invocato sul fronte di discesa diirq_pinquando lo stato di un qualsiasi pin cambia. Riceve l’istanzaPCA9674Acome unico argomento; il nuovo stato dei pin può essere letto conread(). PassaNone(il valore predefinito) per l’uso in polling.