ZHCSU48 December 2023 BQ76972
PRODUCTION DATA
BQ76972 器件中的 I2C 串行通信接口用作响应者器件,支持高达 400kHz 的速率和可选的 CRC 检查。如果未对 OTP 进行编程,则 BQ76972 器件默认会在 400kHz I2C 模式下启动,但其他版本的器件最初可能会在不同的模式下上电(如器件比较表 中所述)。可以在生产线上对 OTP 设置进行编程,然后当该器件上电时,它会自动进入根据 OTP 设置选择的模式。主机也可以在 CONFIG_UPDATE 模式下更改 I2C 速度设置,然后新的速度设置会在退出 CONFIG_UPDATE 模式时生效。或者,主机可以使用 SWAP_TO_I2C() 子命令立即将通信接口更改为 I2C。
I2C 器件地址(作为包括响应者器件地址和 R/W 位在内的 8 位值)默认设置为 0x10(写入)或 0x11(读取),该地址可以通过配置设置进行更改。
通信接口包括可编程超时功能。仅当总线以 100kHz 或 400kHz 运行时才应使用该功能。当在器件被设置为 100kHz 模式的情况下启用该功能时,如果检测到时钟为低电平超过 tTIMEOUT(25ms 至 35ms),或者累积时钟低电平响应者延长时间超过约 25ms,或者如果累积时钟低电平控制器延长时间超过 10ms,则器件将复位通信接口逻辑。当在器件被设置为 400kHz 模式的情况下启用超时时,如果检测到时钟为低电平超过 tTIMEOUT(5ms 至 20ms),则器件将复位通信接口逻辑。如果检测到 SCL 引脚为低电平超过 2 秒,则总线还包括一个长期超时,无论是否启用上述超时都是如此。
图 7-8 显示了 I2C 写入事务。通过在停止之前发送额外的数据字节来允许进行块写入。I2C 逻辑将在每个数据字节后自动递增寄存器地址。
启用时,可以通过以下方式来计算 CRC:
CRC 多项式为 x8 + x2 + x + 1,初始值为 0。
当响应者检测到无效 CRC 时,I2C 响应者将否定响应 CRC,从而使 I2C 响应者进入空闲状态。
图 7-9 展示了使用重复启动的读取事务。
图 7-10 显示了一个未使用重复启动的读取事务(例如在硬件中不可用时)。对于块读取,控制器响应除最后一个数据字节之外的每个数据字节,并继续为接口提供时钟。I2C 块在每个数据字节后自动递增寄存器地址。
启用时,可以通过以下方式来计算读取事务的 CRC:
CRC 多项式为 x8 + x2 + x + 1,初始值为 0。
当控制器检测到无效 CRC 时,I2C 控制器将不确认 CRC,从而使 I2C 响应者进入空闲状态。