[应用相关] STM EEPROM

[复制链接]
 楼主| xufj133 发表于 2011-10-29 10:35 | 显示全部楼层 |阅读模式
我最近在使用I2C读写AT24C256,当我在某个地址写按字节方式写单个数据时,我在其先后总共128个字节的地址都可以读到这个数,很是郁闷,若是按页写多个字节就会发生读错误,读出的数据有时错乱,有时少部分,还有些乱七八糟的数据,大概是我以前写的。例如我写入123456789asdf,有时就会读出678934000ffff。

并不是发生卷页了,因为我即使是从页的开始写,写十几个字节(每页64个字节)都不行,假如我按页在地址300处写入“123456789”,我按字节读时,在300~3ff处读到的一样,都是“1”,好像每次都读入上次写入的首个字节,不管你的读地址是多少,还请指教。我现在用的EEPROM是AT24C256,现在,我换了一块开发板,其上的EEPROM是M24c64,采用这个程序就不会出错,这是怎么回事?
 楼主| xufj133 发表于 2011-10-31 08:36 | 显示全部楼层
大侠们,帮帮我吧
IJK 发表于 2011-10-31 09:33 | 显示全部楼层
很简单:用数字示波器来看,到底写了什么数据,以及到底读出来什么数据了,读写是否符合I2C的规范
 楼主| xufj133 发表于 2011-10-31 09:51 | 显示全部楼层
 楼主| xufj133 发表于 2011-10-31 09:54 | 显示全部楼层
看了,写时的时钟和应答,数据都对,读的时候示波器的数据和读出来的一样,但读出来的数据本身就是错的啊。
IJK 发表于 2011-10-31 12:03 | 显示全部楼层
看了,写时的时钟和应答,数据都对,读的时候示波器的数据和读出来的一样,但读出来的数据本身就是错的啊。
xufj133 发表于 2011-10-31 09:54


那么,可以认为是AT24C256的问题 (假定示波器工作正常,且LZ没有看错)
 楼主| xufj133 发表于 2011-11-1 13:05 | 显示全部楼层
8# IJK


没看错,为什么在另一个开发板上测试这个程序就正确呢?另一开发板用的是M24C64,我后来改为模拟方式,也是在另一个开发板上好使,在这个板子上发送数据都没有应答,愁啊!我检查过从地址。时序、和供电电压都对,大侠们指教一下吧!
IJK 发表于 2011-11-1 14:05 | 显示全部楼层
5L、7L是矛盾的:“写时的时钟和应答,数据都对”,  “在另一个开发板上好使,在这个板子上发送数据都没有应答”

如果 AT24C256 回NAK,而不是ACK,那么多半是I2C MASTER的问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

12

帖子

0

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

0

主题

12

帖子

0

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