pca9674a — Driver Expansor I2C¶
O módulo pca9674a fornece um driver para o expansor de E/S quase-bidirecional de 8 bits NXP PCA9674A. O chip expõe uma porta de E/S de 8 bits via I2C e uma linha INT ativa-baixa que pulsa sempre que qualquer pino de entrada muda de estado.
Cada pino é quase-bidirecional: escrever 1 liberta o pino para um pull-up interno fraco, fazendo-o atuar como entrada que um driver externo pode colocar a baixo; escrever 0 conduz ativamente o pino a baixo. Não existe registo de direção separado – PCA9674A.read() devolve o nível externo atual de cada pino independentemente do que foi escrito por último.
O endereço I2C de 7 bits é 0x38 – 0x3F dependendo dos pinos de configuração A0/A1/A2; 0x3F (63) é o valor padrão (todos os pinos de configuração a alto).
classe PCA9674A – expansor de E/S de 8 bits¶
- class pca9674a.PCA9674A(bus: machine.I2C, irq_pin: str, address: int = 63, callback: Callable | None = None)¶
Cria uma interface para um expansor de E/S PCA9674A.
busé o barramentomachine.I2Cao qual o expansor está ligado.irq_piné o identificador do pino no MCU anfitrião ligado à saídaINTdo expansor. O driver configura-o como entrada com pull-up e monitoriza a sua aresta descendente.addressé o endereço I2C de 7 bits do expansor (0x38–0x3F). O valor padrão é0x3F.callbacké invocado na aresta descendente deirq_pinquando o estado de qualquer pino muda. Recebe a instânciaPCA9674Acomo único argumento; o novo estado dos pinos pode ser lido comread(). PasseNone(valor padrão) para uso por polling.