ZHCZ043 July 2025 MSPM0H3216
I2C 模块
功能
当 I2C 时钟速率低于 24KHz 及更低时,SMBus 高电平超时功能会失败。
当 I2C 时钟速率低于 24kHz 及更低(20kHz、10kHz)时,SMBus 高电平超时功能会失败。根据 SMBUS 规格,活动事务期间 SCL 高电平时间的上限为 50us。从 I2C START 位写入到 SCL 变为低电平所需的总时间为 60us,超过了 50us。它将触发超时事件,并使 I2C 控制器在传输开始时进入 IDLE 状态,而不会完成事务。以下是详细说明。
对于 SCL 配置为 20kHz 的情况,SCL 低电平周期和高电平周期分别为 30us 和 20us。首先,在高电平超时计数器开始递减的同时开始 I2C START 位写入。然后,从 START 位写入到 SDA 变为低电平(启动条件)需要一个 SCL 低电平周期 (30us)。接下来,从 SDA 变为低电平(启动条件)到 SCL 变为低电平(数据传输开始)需要另一个 SCL 低电平周期 (30us),此时应该停止高电平超时计数器。从计数器开始到结束总共需要 60us 的时间。但是,由于高电平超时计数器的上限 (50us),尽管 I2C 事务会正常工作,而且不出现问题,但仍将触发超时事件。
当 I2C 时钟速率低于 24KHz 及更低时,请勿使用 SMBus 高电平超时功能。