打印

lpc824 i2c问题

[复制链接]
1542|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
longdelu|  楼主 | 2016-10-20 23:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 longdelu 于 2016-10-21 00:07 编辑

使用i2c1,通过开关矩阵配置其SCL引脚为PIO0_12, SDA引脚为PIO0_13,发现不能长时间稳定工作,逻辑分析仪显示,经过一段时间其SCL的时序会出错,准确来说缺失一个SCL时钟,本来应该发9个SCL时钟,然而它发了8个,最终导致I2C1控制器 pending 一直为0,从而I2C1再也不能操作总线了。i2c1总线的速率为400K, 外接上拉电阻为10K, 我也把i2c1的SCL、 SDA引脚配置为"假"开漏模式了。然而我把 i2c1的SCL引脚配置PIO0_10, SDA配置为PIO0_11(本来这两个引脚专门用于i2c0的,同时这两个引脚硬件上就是开漏),发现i2c1就能稳定的工作,请问这是啥子原因?是否还有哪些细节我没有注意到?或者芯片硬件的引脚存在bug?这个问题困惑好多天了,恳求各位热心的大神及FAE大牛略加指点,感激流泪!!!

相关帖子

沙发
longdelu|  楼主 | 2016-11-10 09:12 | 只看该作者
开始我认为上拉电阻太大了,然而我把上拉电阻换成4.7K还是有那个问题,同时我发现在keil中进入调试全速运行时,更容易复现这个问题,逻辑分析仪显示丢掉的时钟有一个时钟的低电平时间比其他的长,其实就是其它的两倍长,然后就导致I2C再也不能操作I2C总线了,还有各位大神指点指点吗?不胜感激呀

逻辑分析仪时序图.zip

2.93 MB

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

27

帖子

1

粉丝