打印
[应用相关]

STM EEPROM

[复制链接]
2593|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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 | 只看该作者
4# IJK

使用特权

评论回复
5
xufj133|  楼主 | 2011-10-31 09:54 | 只看该作者
看了,写时的时钟和应答,数据都对,读的时候示波器的数据和读出来的一样,但读出来的数据本身就是错的啊。

使用特权

评论回复
6
IJK| | 2011-10-31 12:03 | 只看该作者
看了,写时的时钟和应答,数据都对,读的时候示波器的数据和读出来的一样,但读出来的数据本身就是错的啊。
xufj133 发表于 2011-10-31 09:54


那么,可以认为是AT24C256的问题 (假定示波器工作正常,且LZ没有看错)

使用特权

评论回复
7
xufj133|  楼主 | 2011-11-1 13:05 | 只看该作者
8# IJK


没看错,为什么在另一个开发板上测试这个程序就正确呢?另一开发板用的是M24C64,我后来改为模拟方式,也是在另一个开发板上好使,在这个板子上发送数据都没有应答,愁啊!我检查过从地址。时序、和供电电压都对,大侠们指教一下吧!

使用特权

评论回复
8
IJK| | 2011-11-1 14:05 | 只看该作者
5L、7L是矛盾的:“写时的时钟和应答,数据都对”,  “在另一个开发板上好使,在这个板子上发送数据都没有应答”

如果 AT24C256 回NAK,而不是ACK,那么多半是I2C MASTER的问题

使用特权

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

本版积分规则

0

主题

12

帖子

0

粉丝