谈谈碰到的一个I2C问题
时间:10-02
整理:3721RD
点击:
在前一个公司,和驱动的同事一起调试高通的QSC6085平台。
触摸IC 通过I2C直接挂在QSC6085上。
做触摸压力测试时,发现大约5分钟后,必然出现触摸失效。
I2C上还挂了FM 和Camera。
开始以为I2C timing有问题,抓了一段波形,所有的参数都满足要求。400KHz的低速信号,能有什么问题呢?
总线冲突也排除了。
没有办法,只有分析协议了。有发现,在QSC6085写完触摸IC的地址后,一直将SDA总线拉低,没有释放SDA。驱动说,封装好了,没有办法改!
只有问题高通的技术支持,他们说内部程序冲突,竟说其他的客户也有这个问题,说要更新版本。 早说嘛!
大家把自己调试I2C碰到问题,拿出来分享,分享!
触摸IC 通过I2C直接挂在QSC6085上。
做触摸压力测试时,发现大约5分钟后,必然出现触摸失效。
I2C上还挂了FM 和Camera。
开始以为I2C timing有问题,抓了一段波形,所有的参数都满足要求。400KHz的低速信号,能有什么问题呢?
总线冲突也排除了。
没有办法,只有分析协议了。有发现,在QSC6085写完触摸IC的地址后,一直将SDA总线拉低,没有释放SDA。驱动说,封装好了,没有办法改!
只有问题高通的技术支持,他们说内部程序冲突,竟说其他的客户也有这个问题,说要更新版本。 早说嘛!
大家把自己调试I2C碰到问题,拿出来分享,分享!
我们也是高通平台遇到的问题跟你一样,两种情况,第一种是你说的,读canera的时候总线被异常拉低,结果初始化失败,结果最后找TP供应商确认后得出结论,触摸屏内部芯片中有个监测电路,触摸屏繁忙时会把总线拉低等待这个时候canmra的时候就等不到ACK初始化异常,用的是塞朴拉斯的TP
最后供应商那边将那个监测电路关掉就OK了。
这个问题解决后,后来又遇到了一个问题,就是TP会导致总线上其他设备不能用,最后确认为是我们给TP供电晚于其他设备上电,结果TP上电之前的I2C通信会被TP内部端口的某种状态破坏,最后修改上电时序就解决了。
现在用的是ESM7227平台,遇到另一个问题,就是TP传送数据的时候I2C总线本该拉到地的电平只能拉到0.5V,增加TP方面上拉电阻效果不明显,增加主机方面上拉电阻导致上升时间减缓,目前纠结中,其中TP跟camra等设备间用的是mos管电平转换电路。
长见识了,谢谢各位大虾!
学习一下高手们的经验。
聘请 FAE 有ANDROID 平台 与I2C 协议经验 电容式TP 经验 熟悉手机 联系杨生13723791959 或发邮件到JERRY@SOURCEONE-ELEC.COM.CN