pca9674a — Controlador de expansor I2C¶
El módulo pca9674a proporciona un controlador para el expansor de E/S cuasi-bidireccional de 8 bits PCA9674A de NXP. El chip expone un puerto de E/S de 8 bits a través de I2C y una línea INT activa a nivel bajo que emite un pulso cada vez que cualquier pin de entrada cambia de estado.
Cada pin es cuasi-bidireccional: escribir 1 libera el pin a una débil pull-up interna de modo que actúa como entrada que un controlador externo puede llevar a nivel bajo; escribir 0 lleva activamente el pin a nivel bajo. No hay un registro de dirección separado – PCA9674A.read() devuelve el nivel externo actual de cada pin independientemente de lo que se haya escrito por última vez.
La dirección I2C de 7 bits es 0x38 – 0x3F según los pines de configuración A0/A1/A2; 0x3F (63) es el valor predeterminado (todos los straps a nivel alto).
class PCA9674A – expansor de E/S de 8 bits¶
- class pca9674a.PCA9674A(bus: machine.I2C, irq_pin: str, address: int = 63, callback: Callable | None = None)¶
Crea una interfaz con un expansor de E/S PCA9674A.
buses el busmachine.I2Cal que está conectado el expansor.irq_pines la etiqueta del pin del MCU anfitrión conectado a la salidaINTdel expansor. El controlador lo configura como entrada con una pull-up y vigila su flanco de bajada.addresses la dirección I2C de 7 bits del expansor (0x38–0x3F). El valor predeterminado es0x3F.callbackse invoca en el flanco de bajada deirq_pincuando cambia el estado de cualquier pin. Recibe la instancia dePCA9674Acomo único argumento; el nuevo estado de los pines puede leerse conread(). PasaNone(el valor predeterminado) para uso por sondeo.