请问一个I2C总线读写EEPROM的问题

justsee   2010-1-8 20:42 楼主
    请问读写EEPROM要注意什么细节问题?
    我的EEPROM都是按时序图写的,把数据写进去然后读出来,位操作之类的没问题,可是我无论怎么写,读,都不能正确,因为我在读的时候,SCL的变化与循环不论怎么搞,SDA始终等于1,所以我怎么读都是255这个数,但是我看不出来是读还是写出问题了,应答信号也不知道是否出问题,请问有人遇到过这种问题吗?

回复评论 (30)

你用是什么单片机啊?
I2C读写 EEPROM时,注意EEPROM的地址。 EEPROM有首地址、
点赞  2010-1-8 20:51
楼主看看我上传的代码:
AVR(ATMEGA16)的E2PROM的240X 源代码 :
http://download.eeworld.net/source/1970599

先看看AVR单片机采用I2C读写E2PROM。
点赞  2010-1-8 20:52
用的C51,不是地址的问题,试过了
点赞  2010-1-8 20:54
引用: 引用 3 楼 g1ordon123 的回复:
用的C51,不是地址的问题,试过了


你加我QQ:604914729,我把C51读写24C02的代码给你吧。
点赞  2010-1-8 20:57
   呵呵谢谢了,那些代码我都有,可是实际我对I2C的操作需要有点变化,就是想知道读写不出来数据一般是哪类问题。比如应答信号会不会处理不当之类的
点赞  2010-1-8 21:07
引用: 引用 5 楼 g1ordon123 的回复:
? 呵呵谢谢了,那些代码我都有,可是实际我对I2C的操作需要有点变化,就是想知道读写不出来数据一般是哪类问题。比如应答信号会不会处理不当之类的


首先I2C 总线必须有上拉电阻,因为他们是OD门,驱动不足,导致高电平不稳。

读写不出来数据,一般是I2C指令发送有问题、或者时序出现错。 再就是I2C电平不稳。
点赞  2010-1-8 21:18

8楼 zdk 

   嗯。。硬件方面我很垃圾的,是别人设计好的,有上拉电阻,我觉得可能是指令发送有问题,SCL和SDA的操作有些混乱。比如SCL=0,为什么能让总线处于等待状态,是不是说SCL=0可以避免SDA发生电平跳变导致I2C重新启动或停止。这我都不知道他是否涉及硬件电路的设计问题了
点赞  2010-1-8 21:25
这个你看你下I2C总线介绍即可明白; 另外看你的E2PROM时序。
点赞  2010-1-8 21:30
已经上传了。
51单片机采用I2C读写EEPROM的源代码,采用C实现51单片机通过I2C 总线EEPROM(具体型号为24C02)的读写,并采用LED和LCD分别显示读写的内容,值得参考:

http://download.eeworld.net/source/1977557

你也可下载好好分析下、
点赞  2010-1-8 21:32
嗯,谢谢大哥了,我下载积分只有1分,以后有分定当下之
点赞  2010-1-8 22:09
引用: 引用 10 楼 g1ordon123 的回复:
嗯,谢谢大哥了,我下载积分只有1分,以后有分定当下之


已经修改成0 分了,你下载吧
点赞  2010-1-8 22:16
我遇到DATA比CLOCK晚半个周期,不正常工作的问题。
点赞  2010-1-8 22:48
楼主要好好分析IIC的时序,这个时序是定好的,我们是必须按照这个走,才可以的,呵呵
点赞  2010-1-9 14:01
你可以把你的代码发上来!让楼上11、13的帮你看看!
点赞  2010-1-9 17:17
LZ,我也遇到这个问题啊~不知楼主问题解决没?请指教指教~
点赞  2010-3-8 16:17
11楼的高人~现在要积分2才能下载。。。。。
点赞  2010-3-8 16:18
要严格按照时序来 ,另外发送之后要等应答信号ACR ,ACR是谁在接收数据谁发送ACR信号。
点赞  2010-3-8 20:28
读数据为FF的问题,我觉得你首先要确定 是读出的数据是错的 ?还是根本没有读到EEPROM里的数据。
还有个可能,象24c02 这种芯片 在没有写入前,读出来都是FF
点赞  2010-3-9 16:35
问题解决了~谢谢
为什么“在没有写入前,读出来都是FF”?
点赞  2010-3-11 14:19
12下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复