1.芯片的简单介绍:
电源管理芯片借助IIC和外部的MCU进行通信:
下图是这个芯片的IIC时序图:
2.我想和BQ7692003PWR的IIC进行通信,我需要MCU知道这个芯片的什么信息:
1.知道这个芯片的通信速率和IIC地址:
2.知道代表不同信息的寄存器的地址,并和其建立联系:
100-kHz I2C interface and acts as a slave device. The I2C device address is 7 bits and is factory programmed。
说明了这个芯片的IIC频率支持100Khz , 地址位 7 bits
下面又给了一张表格,介绍了一下不同版本的芯片IIC的地址,和支持LDO输出的范围:
下面这种图讲了CRC的校验机制:
3.芯片的CRC校验规则:
MCU知道了和其通信芯片的IIC地址,IIC速率,那么MCU怎么获取想要从芯片获取的信息呢:
4.IIC信号的测试方法以及失效性分析:
标准模式(Standard Mode, 100 kHz) 快速模式(Fast Mode, 400 kHz)
高速模式(High-Speed Mode, 3.4 MHz) 超高速模式(Ultra-Fast Mode, 5 MHz)
电压范围:典型的I²C设备工作在3.3V或5V,但低功耗设备可能支持1.8V或更低
上拉电阻:SDA和SCL线需要上拉电阻(典型值4.7kΩ~10kΩ,但取值依赖于总线电容和速率)高速模式可能需要更小的上拉电阻(1kΩ~2kΩ)来确保信号边沿上升足够快。
IIC调试时候的几个常见问题:
(1)总线冲突
多个设备同时尝试发送数据,可能导致信号异常。可以检查是否正确设置了主/从设备模式。
(2)信号干扰
SDA/SCL线上噪声干扰:可能是上拉电阻过大导致信号上升时间过长,可适当降低电阻值。长线传输衰减:I²C适用于短距离(一般<1米),长距离可考虑I²C中继器(如PCA9615)
(3)设备地址冲突
确保不同I²C设备地址不同,某些芯片支持更改地址(如通过引脚或软件指令)。使用i2cdetect
工具扫描设备地址。
(4)时序问题
低速模式可尝试降低I²C速率,确保设备能够正确应答。检查MCU I²C时钟源配置是否正确(如STM32的I2C_TIMINGR
寄存器)。
应答信号的波形:
应答信号为低电平时,规定为有效应答位(ACK,简称应答位),表示接收器已经成功地接收了该字节;有效应答:SDA为低电平,SCL经历一个完整的时候, 也就是SCL为高电平时候,SDA为低电平
应答信号为高电平时,规定为非应答位(NACK),一般表示接收器接收该字节没有成功。有效非应答:SDA为高电平,SCL经历一个完整的时候, 也就是SCL为高电平时候,SDA为高电平
送数据和接收数据时通用。当SCL为高电平,如果SDA始终为高电平时表示逻辑1,如果SDA始终为低电平表示逻辑0.