SMBus中的超时规范如何理解?
在应用APM32E030时,看到I2C章SMBus超时管理章节中有Ttimeout, Tlow.sext和Tlow.mext三个超时时间标记。以Ttimeout为例,其为检测时钟低超时,则对TTE**寄存器中的IDLECLKTO位进行赋值操作。我的问题是:这里面怎么有SCL低超时和总线空间超时呢?什么情况下会出现类似的情况?
I2C默认空闲状态不就是高电平嘛!其硬件结构是开漏上拉,也不存在SCL低的情况呀?
就是一个I2C。
当I2C使用即可 主要用于当出现问题的时候可以恢复总线状态 风暴之眸 发表于 2025-7-9 18:00
就是一个I2C。
当I2C使用即可
这个和I2C区别还是挺大的。
我们现在是通过在I2C上面通过软件实现SMBus,但觉得硬件实现应该更好 阳光爆裂 发表于 2025-7-9 19:48
主要用于当出现问题的时候可以恢复总线状态
这个恢复指得什么意思?
总线不是处于空闲态嘛 SCL低超时和总线空间超时主要是为了确保在I2C总线上通信的可靠性。SCL低超时是指在一定时间内SCL保持低电平,而总线空间超时是指在一定时间内总线没有被任何设备占用。这些超时机制可以防止因总线冲突或设备响应延迟导致的通信错误。
虽然总线在空闲时是高电平,但在通信过程中,SCL线被拉低是正常操作。超时机制是为了防止这种“拉低”状态被异常地无限期保持,从而导致整个总线瘫痪。 SCL低超时和总线空间超时是SMBus协议中为了确保通信稳定性而设置的保护机制。SCL低超时是指在SCL线意外保持低电平状态超过规定时间时触发的超时,这可能是由于总线冲突或设备故障导致的。
页:
[1]