发新帖我要提问
12
返回列表
打印
[其他ST产品]

str710 iic 错误

[复制链接]
楼主: shenmou
手机看帖
扫描二维码
随时随地手机跟帖
21
shenmou|  楼主 | 2007-4-15 14:52 | 只看该作者 回帖奖励 |倒序浏览

在顶下

这个问题还是存在的,现在只是用软件的方法在遇到这个问题的时候避开。但是,最好还是可以知道硬件上面引起这个错误的原因。
 

使用特权

评论回复
22
香水城| | 2007-4-15 16:46 | 只看该作者

看过波形吗?你是如何用软件的方法避开的?

使用特权

评论回复
23
zizzfish| | 2007-4-15 22:42 | 只看该作者

710的硬件I2C很不好使。

以前用来操作24C512,发现I2C经常死。
不得以改用模拟的。

使用特权

评论回复
24
shenmou|  楼主 | 2007-4-16 18:29 | 只看该作者

hoho 遇到知音了

示波器也看过的,发生错误的时候,data 线有波形,clk 没有波形

使用特权

评论回复
25
浪淘沙| | 2007-4-16 18:35 | 只看该作者

楼主能把示波器的波形发上来吗?它对我们分析你的问题非

你是在发送I2C地址时出问题,我希望看到整个发送地址的波形,从START位到停止位。

使用特权

评论回复
26
shenmou|  楼主 | 2007-4-17 16:23 | 只看该作者

示波器比较差,没有输出功能

使用特权

评论回复
27
香水城| | 2007-4-25 15:12 | 只看该作者

楼主是否可以分享一下你是如何回避这个问题的

提醒一下,请检查你的I2C设备在上电之后需要多长时间才能进入正常工作状态,你是否在I2C设备还未稳定时就对它进行操作,造成I2C设备通讯失败。

使用特权

评论回复
28
xhtwork| | 2007-10-6 17:27 | 只看该作者

这个问题确实是存在的,我也碰到了

我使用的是str710,在I2C上只带了一个时钟芯片:PCF8563,每秒读一次,短至几分钟,长至2天会出现死机,后来经过检查跟楼主主贴描述的情况完全一致:在发送完地址后,无法等到ENDAD。我100%肯定这个问题跟上电过程无关。

我认为这是CPU 没有检测到ACK造成的,开始我想有可能是外设因为某种原因没有发出ACK,或者ACK被干扰了,但既然这个问题在楼主的设备里也出现了,应该基本可以断言是CPU本身的bug。

至于变长参数,是标准C语言必须支持的,我不认为IAR的编译器会有问题。
当然,我没有分析相关汇编代码,只是觉得不太可能!

从实用的角度,程序员处理I2C的ACK异常是必须的,其实是手册中给出的通信流程误导了用户,好像每次通信都应该是正常的,好像可以死等ENDAD。只要明白I2C通信是会失败的,软件应该处理偶发的通信失败,那么这个问题实际上就不算什么严重的问题。

使用特权

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

本版积分规则