找回密码
 注册
搜索
查看: 1212|回复: 6

[讨论] I2C疑问紧急求助!!!

[复制链接]
发表于 2009-8-12 19:50:54 | 显示全部楼层 |阅读模式
按照I2C协议向从设备写数据前先start,写完之后stop,从设备每收到一个字节给主设备发一个ACK。目前兄弟遇到一个奇怪的现象。例如我要对从设备写四次数据,第一次start,发数据,stop,一切正常,都可以收到ACK,但第二次start,然后发从设备地址就收不到ACK,然后stop.第三次一切又正常,第四次又收不到ACK,就这样隔一次正常一次,快崩溃了,为什么会出现这种现象,是从设备的问题还是I2C代码的问题,但是这个代码之前有人用过没问题啊。如果一直没有ACK也就罢了,问题是现在是一会有一会没有,而且很有规律。请各位大侠帮帮忙,非常感谢!
发表于 2009-8-12 21:58:43 | 显示全部楼层
以前调某些sensor的时候遇到过,这个和器件本身有一定的关系,特别是非标准的I2C接口器件。
点评回复

使用道具 举报

发表于 2009-8-14 12:58:01 | 显示全部楼层
估计还是代码的问题,可能是没有很好的stop了,也可能是从机认为第二次start是restart。
点评回复

使用道具 举报

 楼主| 发表于 2009-8-15 23:24:02 | 显示全部楼层
解决了,但是不知道原因。是因为CLK为低时SDA有毛刺,但是很奇怪按照I2C协议CLK为低时是允许SDA变化的,而且只有在CLK为低时SDA才能变化。而且这个代码之前在别的项目上用的好好的。
点评回复

使用道具 举报

发表于 2010-9-8 17:09:10 | 显示全部楼层
楼主能说说怎么解决的吗
点评回复

使用道具 举报

发表于 2010-9-13 18:39:20 | 显示全部楼层
有些IIC需要对延时的要求较严格。加大两次传送间的延时估计会好。
点评回复

使用道具 举报

发表于 2010-9-25 11:49:50 | 显示全部楼层
是比较奇怪
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-11-15 17:56 , Processed in 0.114492 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表