pca9674a — I2C-laajentimen ajuri

pca9674a-moduuli tarjoaa ajurin NXP PCA9674A 8-bittiselle kvasi-kaksisuuntaiselle I/O-laajentimelle. Siru tarjoaa 8-bittisen I/O-portin I2C:n kautta sekä aktiivisesti matalan INT-linjan, joka pulssaa aina, kun jonkin tulonastan tila muuttuu.

Kukin nasta on kvasi-kaksisuuntainen: 1:n kirjoittaminen vapauttaa nastan heikkoon sisäiseen ylösvetoon, jolloin se toimii tulona, jonka ulkoinen ajuri voi vetää matalalle; 0:n kirjoittaminen ajaa nastan aktiivisesti matalalle. Erillistä suuntarekisteriä ei ole – PCA9674A.read() palauttaa jokaisen nastan nykyisen ulkoisen tason riippumatta siitä, mitä viimeksi kirjoitettiin.

7-bittinen I2C-osoite on 0x380x3F riippuen A0/A1/A2-strap-nastoista; 0x3F (63) on oletusarvo (kaikki strapit ylhäällä).

class PCA9674A – 8-bittinen I/O-laajennin

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

Luo rajapinnan PCA9674A I/O-laajentimeen.

  • bus on machine.I2C-väylä, johon laajennin on kytketty.

  • irq_pin on isäntä-MCU:n nastan luokkanimi, joka on kytketty laajentimen INT-ulostuloon. Ajuri määrittää sen tuloksi ylösvedolla ja tarkkailee sen laskevaa reunaa.

  • address on laajentimen 7-bittinen I2C-osoite (0x380x3F). Oletusarvo on 0x3F.

  • callback kutsutaan irq_pin-nastan laskevalla reunalla, kun jonkin nastan tila muuttuu. Se saa ainoana argumenttinaan PCA9674A-instanssin; uusi nastan tila voidaan lukea read()-metodilla. Anna None (oletus) pollattua käyttöä varten.

write(value: int) None

Kirjoittaa 8-bittisen value-arvon I/O-laajentimen nastoihin.

read() int

Palauttaa I/O-laajentimen nastojen 8-bittisen arvon.

reset() None

Nollaa ja alustaa uudelleen I/O-laajentimen ja kytkee uudelleen IRQ-callback-takaisinkutsun, jos sellainen annettiin.