文章目录
概要
PCA9554是一款CMOS器件,可为I2C和SMBus兼容应用提供8位并行输入/输出端口扩展。该I / O扩展器为需要额外I / O的应用提供了简单的解决方案:传感器,电源开关,LED,按钮和风扇。 PCA9554包括一个输入端口寄存器,一个输出端口寄存器,一个配置寄存器,一个极性反转寄存器和一个I 2 C / SMBus兼容的串行接口。通过写入配置寄存器,可以将八个I / O中的任何一个配置为输入或输出。系统主机可以通过写入高电平有效的极性反转寄存器来反转PCA9554的输入数据。 PCA9554具有低电平有效中断输出,向系统主机指示输入状态已更改。该器件的扩展寻址功能允许最多8个器件共享同一总线。
原理图
1.PCA9554原理图
2.PCA9554读写寄存器时序图
关键代码
uint8_t pca9554_write_byte(uint8_t addr, uint8_t command, uint8_t write_register_data)
{
uint8_t ack = 1;
i2c_start();
i2c_send_byte(addr); //发送地址
ack = i2c_wait_ack();
i2c_send_byte(command); //发送命令--寄存器地址
ack = i2c_wait_ack();
i2c_send_byte(write_register_data);
ack = i2c_wait_ack()