请各位大虾帮忙分析:AT24C01A 丢失数据原因:

[复制链接]
3386|12
 楼主| zfcbt 发表于 2009-1-15 23:14 | 显示全部楼层 |阅读模式
&nbsp;&nbsp;请各位大虾帮忙分析:AT24C01A&nbsp;丢失数据原因:<br /><br />单片机采用NXP的&nbsp;LPC936,接E2PROM芯片:AT24C01A.&nbsp;用周立功的&nbsp;TKS-936&nbsp;仿真器&nbsp;进行仿真的时候芯片读写正常.&nbsp;仿真时,把&nbsp;7个0X00&nbsp;写入&nbsp;地址0开始的7个字节里.<br /><br />&nbsp;&nbsp;仿真完毕把程序烧进936芯片中&nbsp;,再读AT24C01中的数据&nbsp;,读出来不是以前写进去的7个&nbsp;0X00&nbsp;.&nbsp;而且把电路板断电再读AT24C01中数据,仍然和上次读的数据一样,很有规律,但一直都不是写进&nbsp;AT24C01中的7个&nbsp;0X00.<br /><br />&nbsp;&nbsp;&nbsp;请大虾帮忙分析:&nbsp;是不是断电需要对AT24C01做保护,还是需要给&nbsp;AT24C01A供电的电源加一个大的&nbsp;钽电容.使断电或上电时候,电源比较平稳?
gx_huang 发表于 2009-1-16 08:13 | 显示全部楼层

EEPROM没有这么复杂要求

肯定是程序问题了。<br />仿真时读出是对的吗?<br />仿真和实际使用的频率是一样的吗?<br /><br />其实大部分场合,外部的EEPROM可以省掉,用936内部的IAP即可!
computer00 发表于 2009-1-16 08:15 | 显示全部楼层

写入数据后要适当延时,数据才能写入的。

  
 楼主| zfcbt 发表于 2009-1-16 09:11 | 显示全部楼层

写数据已经延迟

写完数据做了延迟,问题是现在&nbsp;电路板&nbsp;是电池供电,把电池拿了,&nbsp;再接上,&nbsp;就出现读出来的数据不对.&nbsp;&nbsp;然后又拿仿真器去读AT24C01A中数据,&nbsp;数据的确是变了.&nbsp;请帮忙分析原因.
 楼主| zfcbt 发表于 2009-1-16 09:11 | 显示全部楼层

gx_huang 您好

&nbsp;&nbsp;您有&nbsp;对LPC936&nbsp;读,写&nbsp;操作代码吗
wi2c 发表于 2009-1-16 09:44 | 显示全部楼层

关于I2C

很成熟的东西<br />控制好频率<br />严格按时序来<br />936你连上拉电阻都可以省了<br />
vwwj 发表于 2009-1-16 10:34 | 显示全部楼层

IIC规定是开漏输出

&nbsp;&nbsp;除非你用普通IO模拟IIC,否则还是要按照规则来
 楼主| zfcbt 发表于 2009-1-16 10:42 | 显示全部楼层

用普通I/O模拟的I2C

  
xzl 发表于 2009-1-16 11:27 | 显示全部楼层

问题还是出在时序上

还有要注意延时
computer00 发表于 2009-1-16 12:27 | 显示全部楼层

你的程序中有地方改了数据吧?

上下电时,你把I2C的两个接口用导线连在一起,看它还变不变...
bg6nw 发表于 2009-1-16 20:42 | 显示全部楼层

可能是掉电瞬间PC弹飞,改写了数据

把24C01的7脚接个开关,掉电之前接入高电平,然后掉电;7脚接到地上再上电,如果数据正常了,即可确定是在掉电瞬间改写的。<br />同理,反过来可以试验是否上电改写。<br />
hotpower 发表于 2009-1-16 20:49 | 显示全部楼层

I2C时多读读55AA~~~

  <br /> 相关链接:<a href='http://blog.**/hotpower/195062/message.aspx'>http://blog.**/hotpower/195062/message.aspx</a>
airwill 发表于 2009-1-18 00:50 | 显示全部楼层

我看

有可能是仿真器的问题,&nbsp;仿真器工作中,&nbsp;中途要测试端口,&nbsp;这就改变了I2C&nbsp;严格的时序关系
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

14

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部