pca9674a --- I2C 扩展器驱动¶
pca9674a 模块为 NXP PCA9674A 8 位准双向 I/O 扩展器提供了一个驱动。该芯片通过 I2C 公开一个 8 位 I/O 端口,以及一个低电平有效的 INT 线,每当任何输入引脚状态改变时该线就会发出脉冲。
每个引脚都是准双向的:写入 1 会将引脚释放到一个弱内部上拉,使其充当一个输入,外部驱动器可将其拉低;写入 0 则主动将引脚驱动为低电平。没有单独的方向寄存器 —— PCA9674A.read() 返回每个引脚当前的外部电平,无论上次写入的是什么。
7 位 I2C 地址为 0x38 —— 0x3F,取决于 A0/A1/A2 选通引脚;0x3F(63)为默认值(所有选通引脚均为高电平)。
class PCA9674A —— 8 位 I/O 扩展器¶
- class pca9674a.PCA9674A(bus: machine.I2C, irq_pin: str, address: int = 63, callback: Callable | None = None)¶
创建一个到 PCA9674A I/O 扩展器的接口。
bus是扩展器所连接的machine.I2C总线。irq_pin是主机 MCU 上连接到扩展器INT输出的引脚标签。驱动会将其配置为带上拉的输入,并监视其下降沿。address是扩展器的 7 位 I2C 地址(0x38——0x3F)。默认为0x3F。callback在任何引脚状态改变时于irq_pin的下降沿被调用。它接收PCA9674A实例作为其唯一参数;可以用read()读取新的引脚状态。对于轮询用法,传入None(默认值)。