I2C设备驱动(四)-- 调试问题
2017-06-10 16:10
337 查看
1 i2c死锁
异常现象:master设备复位后,不能对slave进行读写操作,总线表现为SCL为高,SDA一直为低原因:master与slave进行通信时,正好发生打算发第9个时钟,此时SCL为高,而从开始拉低SDA为低做准备(作为ACK信号),等待SCL变低后,从再释放SDA为高。如果此时正好master复位,master SCL还没来得及变低,直接变成高电平,此时slave还在等待SCL变低,所以一直拉低SDA;而master由于复位,发现SDA一直为低,也在等待slave释放SDA为高。因此主从都进入一个相互等待的死锁状态。
解决方法:每次I2C master设备复位后,如果检测到SDA数据线被拉低,则控制I2C中的
SCL时钟线产生9个时钟脉冲(针对8位数据的情况),这样I2C slave设备就可以完成被挂起的读操作,从死锁状态中恢复过来。
2 …
3
相关文章推荐
- 电容屏驱动,输入设备注册,I2C设备注册,中断注册,虽然没有完全调试成功
- 四极管: Android开发调试I2C设备驱动 i2cdetect 工具的使用
- 调试wince流设备驱动遇到的问题
- LED设备驱动二之重要代码和调试问题分析
- Linux下I2C设备驱动开发和实现
- Linux USB gadget设备驱动解析(2)---驱动调试
- WM5仿真设备的调试遇到的问题
- 驱动调试常见问题_触摸屏
- Linux I2C核心、总线与设备驱动
- Linux下I2C设备驱动开发和实现
- 第15章 Linux的I2C核心、总线与设备驱动
- 在EVC4 + SMARTPHONE 2003环境中使用设备进行调试报错问题。
- linux i2c设备驱动
- Linux I2C Input设备驱动代码的几点理解
- Linux I2C核心、总线与设备驱动
- AT91SAM9263 WINCE 6.0 R2驱动开发-DM9000驱动调试需要注意问题
- 如何使用CeLog调试Windows mobile设备驱动
- I2C设备与驱动的关联
- 驱动调试常见问题_LCD
- 【转】驱动调试常见问题_触摸屏