I2C总线被拉低引起的问题
来源:互联网 发布:mac office2016 破解版 编辑:程序博客网 时间:2024/06/05 08:09
该I2C控制器本身没有内部上拉电阻,因此在PCB设计中在该I2C总线上做了外部上拉设计,但是该上拉电阻使用的是电容屏的供电,因此只有当电容屏上电后该I2C总线才会被拉高,而当电容屏断电时,I2C总线便会被拉低。
总线的这种被拉高拉低的状态可能引起一定概率的I2C 控制器状态紊乱。
测试发现当TP掉电后再重新上电时,某些情况下I2C驱动会检测到I2C控制器的状态 为“忙”从而放弃继续数据传输。实验证实当I2C控制器正常工作时,若通过某种方式在I2C总线上产生一个Start信 号,该start信号会导致I2C控制器的状态寄存器被标 记为“忙”,直到一个Stop信 号产生后,总线状态才会被重新标记为“空闲“。
由以上实验可推测:当TP断电时,若SDA先于SCL被拉低,则可产生一个Start信 号,从而引出问题。
由于示波器和逻辑分析仪无法捕获到该出错信息,因此上述结论系理论推测。
解决方案:
1. early suspend 时TP不断电。
或者
2. late resume时强制执行I2C reset
或者
3. I2C的上拉电阻和TP的供电控制分离
- I2C总线被拉低引起的问题
- I2C总线的仲裁问题
- I2C总线的一般性问题
- I2C总线的学习
- I2C的总线电容
- I2C总线的时序
- I2C总线SCL信号无法正常拉高的问题
- I2C总线 ----LM75的读写
- I2C总线的仲裁过程
- LPC2114的I2C总线介绍
- I2C总线的仲裁机制
- I2C总线驱动程序的实现
- I2C总线的仲裁机制
- I2C总线的仲裁机制
- I2C总线的仲裁机制
- 关于I2C总线的感悟
- I2C总线结构的EEPROM
- I2C总线的通信流程
- 程序调试中使用宏说明(Debug Routines)
- Struts2环境搭建
- 标准格式输出
- 微软企业库验证
- 目录使用说明(Directory Control)
- I2C总线被拉低引起的问题
- 关于Freebsd不能前置音频口
- ArcGIS_9.3_Javascript_API
- 异常处理说明(Exception Handling Routines)
- C#VS2008中DateTimePicker控件学习心得
- EXP用法,导出不包含同义词
- 如何设置ofbiz的日志输出级别
- C语言输入输出的重定向问题
- jquery 缓存初级应用