关于IIC超时的问题与解决办法

1.I2C中是否存在超时概念?

I2C协议中不存在超时的概念,而SMBus有超时概念,对于10kHz的最小时钟速度,可以考虑35ms的超时。

2.I2C总线什么时候可能被挂死

IIC总线在传输过程中出现以下情况时候(SDA电平被从机拉低):

(1) 当主机向从机写入数据或地址时,如果从机发送ACK响应,它将在第9个CLK期间下拉SDA

(2) 当主机读取数据时,从机向主机发送0(低电平)时

3.解除IIC中SDA被挂死的方法

(1) 方法1重置从设备(假设该设备具有Reset引脚)

(2) 方法2使用总线恢复序列(协议中申明)(五步)

1 step:主机停用IIC

2 step:I2C接口复用到GPIO模式

3 step:将SDA保持在高水平。

4 step:主设备通过在SCL线上以GPIO翻转模式提供至少9个时钟来释放从设备

5 step:主机重新初始化i2C模块,使i2C接口启用i2C功能。

4.PMBus可以超时:

PMBus支持更强大的协议,因为它提供超时和可选的数据包错误检查(PEC)来增强数据完整性。超时可以防止速度较慢的从设备保持时钟线超过指定的超时间隔,从而避免总线挂起。

5.使用IIC 写M24C04(EEPROM)与重定向

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值