pca9674a — I2C-expanderdriver¶
De pca9674a-module biedt een driver voor de NXP PCA9674A 8-bits quasi-bidirectionele I/O-expander. De chip stelt een 8-bits I/O-poort beschikbaar via I2C en een actief-lage INT-lijn die pulseert telkens wanneer een invoerpin van toestand verandert.
Elke pin is quasi-bidirectioneel: het schrijven van 1 geeft de pin vrij naar een zwakke interne pull-up, zodat hij fungeert als een invoer die door een externe driver laag kan worden getrokken; het schrijven van 0 drijft de pin actief laag. Er is geen apart richtingsregister – PCA9674A.read() geeft het huidige externe niveau van elke pin terug, ongeacht wat er als laatste is geschreven.
Het 7-bits I2C-adres is 0x38 – 0x3F afhankelijk van de A0/A1/A2 strap-pins; 0x3F (63) is de standaard (alle straps hoog).
class PCA9674A – 8-bits I/O-expander¶
- class pca9674a.PCA9674A(bus: machine.I2C, irq_pin: str, address: int = 63, callback: Callable | None = None)¶
Maakt een interface naar een PCA9674A I/O-expander aan.
busis demachine.I2C-bus waarop de expander is aangesloten.irq_pinis het pinlabel op de host-MCU dat is verbonden met deINT-uitgang van de expander. De driver configureert dit als een invoer met een pull-up en let op de neergaande flank ervan.addressis het 7-bits I2C-adres van de expander (0x38–0x3F). Standaard0x3F.callbackwordt aangeroepen op de neergaande flank vanirq_pinwanneer een pintoestand verandert. Het ontvangt dePCA9674A-instantie als enige argument; de nieuwe pintoestand kan metread()worden gelezen. GeefNone(de standaard) door voor gepold gebruik.