当前位置: 代码迷 >> 嵌入开发 >> I2C的奇怪有关问题
  详细解决方案

I2C的奇怪有关问题

热度:5638   发布时间:2013-02-26 00:00:00.0
I2C的奇怪问题,高手进!
I2C线上挂了3个器件,2个正常工作,有一个对它发送读写指令时,它能回应ACK信号,但是读写却得不到正确的值。

而我用另一个CPU控制时,却可以。另一个CPU不是我做的,但是我抓它的时序和我是一样的! 有谁知道吗?

------解决方案--------------------------------------------------------
I2c的频率是多少,模拟的还是硬件的I2C接口,你用的什么抓它的时序,怎么判断和你的是一样的?
------解决方案--------------------------------------------------------
看起来是上拉有问题。还有看看芯片支持的工作电压和CPU外设支持的电压是否匹配。
------解决方案--------------------------------------------------------
探讨
谢谢楼上的帮忙

1、I2C的频率是50HZ
2、硬件的I2C接口有一个芯片不行,但是另一个CPU不是我做的,不知道他怎么操作
3、我用示波器抓的,0,1都很清晰,没有过冲和毛刺

但是据我分析,我CPU的硬件I2C的上升时间达到了2uS,而另一个CPU出的I2C的上升时间只有40nS,
这是我观察波形后的唯一区别了(可能有遗漏),I2C对上升时间要求这么严格吗?  他不是只要在CLK的‘0’跳变数据,‘1’保持数据就行的?

------解决方案--------------------------------------------------------
2uS?上升时间怎么会那么长?
------解决方案--------------------------------------------------------
硬件的I2C都不行,那要看看你的协议了
是什么单片机什么器件
  相关解决方案