pca9674a — I2C-expanderdrivrutin

Modulen pca9674a tillhandahåller en drivrutin för NXP PCA9674A 8-bitars kvasibidirektionella I/O-expander. Chippet exponerar en 8-bitars I/O-port över I2C och en aktiv-låg INT-linje som pulsar närhelst något inmatningsstift ändrar tillstånd.

Varje stift är kvasibidirektionellt: att skriva 1 släpper stiftet till en svag intern pull-up så att det fungerar som en ingång som en extern drivare kan dra lågt; att skriva 0 driver aktivt stiftet lågt. Det finns inget separat riktningsregister – PCA9674A.read() returnerar den aktuella externa nivån för varje stift oavsett vad som senast skrevs.

Den 7-bitars I2C-adressen är 0x380x3F beroende på strappstiften A0/A1/A2; 0x3F (63) är standardvärdet (alla strappar höga).

class PCA9674A – 8-bitars I/O-expander

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

Skapar ett gränssnitt till en PCA9674A I/O-expander.

  • bus är den machine.I2C-buss som expandern är ansluten till.

  • irq_pin är stiftetiketten på värd-MCU:n som är ansluten till expanderns INT-utgång. Drivrutinen konfigurerar den som en ingång med en pull-up och bevakar dess fallande flank.

  • address är expanderns 7-bitars I2C-adress (0x380x3F). Standardvärdet är 0x3F.

  • callback anropas på den fallande flanken av irq_pin när något stifttillstånd ändras. Den tar emot PCA9674A-instansen som sitt enda argument; det nya stifttillståndet kan läsas med read(). Skicka None (standardvärdet) för pollad användning.

write(value: int) None

Skriver det 8-bitars value till I/O-expanderns stift.

read() int

Returnerar det 8-bitars värdet för I/O-expanderns stift.

reset() None

Återställer och återinitierar I/O-expandern och återansluter IRQ-callback om en sådan angavs.