打印

IIC死在应答位

[复制链接]
2129|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
flyman613|  楼主 | 2014-11-8 13:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用的是PIC32MX与24C512进行通讯,采用库函数进行读写IIC,1.5秒左右读一次IIC,跑半小时到一小时左右就会出现SDA为低,只有重新上电才能恢复正常。各位有什么好的方法解决吗?
沙发
xiaodao35| | 2014-11-8 15:28 | 只看该作者
可能是从设备缩死总线了,重新初始化一下主设备,另外看看时序!

使用特权

评论回复
板凳
flyman613|  楼主 | 2014-11-8 16:10 | 只看该作者
xiaodao35 发表于 2014-11-8 15:28
可能是从设备缩死总线了,重新初始化一下主设备,另外看看时序!

我给单片机复位了,都不行,就是IIC芯片锁死了,只能断电在上电才行。你有遇到过吗?

使用特权

评论回复
地板
xiaodao35| | 2014-11-8 16:12 | 只看该作者
降低点速度看看,从设备死了,CPU复位没用的

使用特权

评论回复
5
flyman613|  楼主 | 2014-11-9 11:36 | 只看该作者
xiaodao35 发表于 2014-11-8 16:12
降低点速度看看,从设备死了,CPU复位没用的

100K 200K 400K 都试过,我在试试50K会不会

使用特权

评论回复
6
Ryanhsiung| | 2014-11-11 11:06 | 只看该作者
flyman613 发表于 2014-11-8 16:10
我给单片机复位了,都不行,就是IIC芯片锁死了,只能断电在上电才行。你有遇到过吗? ...

使用I2C 复位时序复位从机。
   好像是拉低SCL 发送10个SDA脉冲

使用特权

评论回复
7
yewuyi| | 2014-11-12 10:59 | 只看该作者
最白菜的做法:可以在启动总线前,先连续发9个CLK给从机,通知从机强行释放SDA

使用特权

评论回复
8
flyman613|  楼主 | 2014-11-25 11:44 | 只看该作者
yewuyi 发表于 2014-11-12 10:59
最白菜的做法:可以在启动总线前,先连续发9个CLK给从机,通知从机强行释放SDA ...

用的是硬件IIC,就一些初始化和发、写数据函数,怎么进行发送9个CLK呢?谢谢!

使用特权

评论回复
9
flyman613|  楼主 | 2014-11-25 11:46 | 只看该作者
yewuyi 发表于 2014-11-12 10:59
最白菜的做法:可以在启动总线前,先连续发9个CLK给从机,通知从机强行释放SDA ...

试过检测到IIC死后,将IIC口置为普通IO口,SCL、SDA口无法置成低电平,被IIC芯片锁死了。

使用特权

评论回复
10
flyman613|  楼主 | 2014-12-9 21:47 | 只看该作者
Ryanhsiung 发表于 2014-11-11 11:06
使用I2C 复位时序复位从机。
   好像是拉低SCL 发送10个SDA脉冲

用的是硬件IIC,就一些初始化和发、写数据函数,怎么进行发送9个CLK呢?能详细点吗?谢谢!

使用特权

评论回复
11
Ryanhsiung| | 2014-12-10 08:12 | 只看该作者
flyman613 发表于 2014-12-9 21:47
用的是硬件IIC,就一些初始化和发、写数据函数,怎么进行发送9个CLK呢?能详细点吗?谢谢! ...

复位时  就至成手动的I2C就好了

使用特权

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

本版积分规则

5

主题

19

帖子

0

粉丝