打印

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

[复制链接]
2314|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zfcbt|  楼主 | 2009-1-15 23:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  请各位大虾帮忙分析:AT24C01A 丢失数据原因:

单片机采用NXP的 LPC936,接E2PROM芯片:AT24C01A. 用周立功的 TKS-936 仿真器 进行仿真的时候芯片读写正常. 仿真时,把 7个0X00 写入 地址0开始的7个字节里.

  仿真完毕把程序烧进936芯片中 ,再读AT24C01中的数据 ,读出来不是以前写进去的7个 0X00 . 而且把电路板断电再读AT24C01中数据,仍然和上次读的数据一样,很有规律,但一直都不是写进 AT24C01中的7个 0X00.

   请大虾帮忙分析: 是不是断电需要对AT24C01做保护,还是需要给 AT24C01A供电的电源加一个大的 钽电容.使断电或上电时候,电源比较平稳?

相关帖子

沙发
gx_huang| | 2009-1-16 08:13 | 只看该作者

EEPROM没有这么复杂要求

肯定是程序问题了。
仿真时读出是对的吗?
仿真和实际使用的频率是一样的吗?

其实大部分场合,外部的EEPROM可以省掉,用936内部的IAP即可!

使用特权

评论回复
板凳
computer00| | 2009-1-16 08:15 | 只看该作者

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

使用特权

评论回复
地板
zfcbt|  楼主 | 2009-1-16 09:11 | 只看该作者

写数据已经延迟

写完数据做了延迟,问题是现在 电路板 是电池供电,把电池拿了, 再接上, 就出现读出来的数据不对.  然后又拿仿真器去读AT24C01A中数据, 数据的确是变了. 请帮忙分析原因.

使用特权

评论回复
5
zfcbt|  楼主 | 2009-1-16 09:11 | 只看该作者

gx_huang 您好

  您有 对LPC936 读,写 操作代码吗

使用特权

评论回复
6
wi2c| | 2009-1-16 09:44 | 只看该作者

关于I2C

很成熟的东西
控制好频率
严格按时序来
936你连上拉电阻都可以省了

使用特权

评论回复
7
vwwj| | 2009-1-16 10:34 | 只看该作者

IIC规定是开漏输出

  除非你用普通IO模拟IIC,否则还是要按照规则来

使用特权

评论回复
8
zfcbt|  楼主 | 2009-1-16 10:42 | 只看该作者

用普通I/O模拟的I2C

使用特权

评论回复
9
xzl| | 2009-1-16 11:27 | 只看该作者

问题还是出在时序上

还有要注意延时

使用特权

评论回复
10
computer00| | 2009-1-16 12:27 | 只看该作者

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

上下电时,你把I2C的两个接口用导线连在一起,看它还变不变...

使用特权

评论回复
11
bg6nw| | 2009-1-16 20:42 | 只看该作者

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

把24C01的7脚接个开关,掉电之前接入高电平,然后掉电;7脚接到地上再上电,如果数据正常了,即可确定是在掉电瞬间改写的。
同理,反过来可以试验是否上电改写。

使用特权

评论回复
12
hotpower| | 2009-1-16 20:49 | 只看该作者

I2C时多读读55AA~~~

使用特权

评论回复
13
airwill| | 2009-1-18 00:50 | 只看该作者

我看

有可能是仿真器的问题, 仿真器工作中, 中途要测试端口, 这就改变了I2C 严格的时序关系

使用特权

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

本版积分规则

8

主题

14

帖子

0

粉丝