OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7876|回复: 12

EEPROM 24LC256問題請教

[复制链接]

20

主题

75

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
308
金钱
308
注册时间
2013-11-6
在线时间
23 小时
发表于 2014-1-22 09:24:29 | 显示全部楼层 |阅读模式

目前拿到一顆EEPROM 256K
使用原子的碼修改#define EE_TYPE AT24C256
AT24CXX_WriteOneByte(511,0x55);

但讀到的temp=AT24CXX_ReadOneByte(511); temp=0xFF;
下列是原子的代碼,找了論坛很多版本看起來都沒問題,之前在用24LC02時也沒問題。
請問還需要修改那裡才OK。


void AT24CXX_WriteOneByte(u16 WriteAddr,u8 DataToWrite)
{                               
    IIC_Start(); 
 if(EE_TYPE>AT24C16)
 {
  IIC_Send_Byte(0XA0);     //發送寫命令
  IIC_Wait_Ack();
  IIC_Send_Byte(WriteAddr>>8);//發送高地址
  }else
 {
  IIC_Send_Byte(0XA0+((WriteAddr/256)<<1));   //發送器地址0XA0,寫數據
 } 
 IIC_Wait_Ack();   
    IIC_Send_Byte(WriteAddr%256);   //發送低地址
 IIC_Wait_Ack();                   
 IIC_Send_Byte(DataToWrite);     //發送Data         
 IIC_Wait_Ack();           
    IIC_Stop();                   //產生一個停止指令
 delay_ms(10); 
}

u8 AT24CXX_ReadOneByte(u16 ReadAddr)
{     
 u8 temp=0;                         
  IIC_Start(); 
 if(EE_TYPE>AT24C16) 
 {
  IIC_Send_Byte(0XA0);    //開送寫的命令
  IIC_Wait_Ack(); 
  IIC_Send_Byte(ReadAddr>>8);//發送高位址
  //IIC_Wait_Ack();     
 }else IIC_Send_Byte(0XA0+((ReadAddr/256)<<1));   //發送器件位址0XA0,寫資料  

 IIC_Wait_Ack();
  IIC_Send_Byte(ReadAddr%256);   //發送低位址
 IIC_Wait_Ack();    
 IIC_Start();       
 //IIC_Send_Byte(0XA1+((ReadAddr/256)<<1));  //進入接收模式   
  IIC_Send_Byte(0xA1);  
 IIC_Wait_Ack(); 
  temp=IIC_Read_Byte(0);    
  IIC_Stop();             //產生一個停止條件 
 return temp; 
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2015-4-26
在线时间
2 小时
发表于 2015-4-26 21:05:51 | 显示全部楼层

注释掉这里的代码试一下

我这里24c128是可以的

回复 支持 1 反对 0

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-1-22 09:58:06 | 显示全部楼层
回复【楼主位】ChrisLiu1017:
---------------------------------
注意芯片A0、A1、A2这几个管脚的定义,A0、A1是硬件设备地址选择,A2是选择存储区域用的
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

20

主题

75

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
308
金钱
308
注册时间
2013-11-6
在线时间
23 小时
 楼主| 发表于 2014-1-22 11:45:47 | 显示全部楼层
這我有看Datasheet A0~A2是chip select. 在硬件上都接地.
程式碼用原子哥的,無法正常讀寫。

cn011849.pdf

1.2 MB, 下载次数: 1010

回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-1-22 15:55:59 | 显示全部楼层
回复【3楼】ChrisLiu1017:
---------------------------------
原子哥这个代码应该有个小bug,就是对于大容量的EEPROM的读写可能存在,你问原子哥要它最新的驱动看下,估计原子哥现在手头上没有这么大容量的芯片来测试
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-1-22 15:58:31 | 显示全部楼层
或者你用我这个试下,还在测试阶段的,完全按照思路来的,估计还存在很多bug,呵呵

24cxx.zip

6.02 KB, 下载次数: 417

现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

26

主题

193

帖子

8

精华

金牌会员

Rank: 6Rank: 6

积分
1800
金钱
1800
注册时间
2012-8-23
在线时间
57 小时
发表于 2014-1-22 16:54:31 | 显示全部楼层
USB-I2C适配器:
http://item.taobao.com/item.htm?spm=a230r.1.14.3.BNa6Zp&id=15219447009
回复 支持 反对

使用道具 举报

20

主题

75

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
308
金钱
308
注册时间
2013-11-6
在线时间
23 小时
 楼主| 发表于 2014-1-23 10:24:23 | 显示全部楼层
感謝各位回覆~問題已解決~~
回复 支持 反对

使用道具 举报

头像被屏蔽

38

主题

382

帖子

0

精华

高级会员

Rank: 4

积分
596
金钱
596
注册时间
2012-12-5
在线时间
19 小时
发表于 2014-1-23 13:29:42 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2014-3-26
在线时间
0 小时
发表于 2014-5-22 17:37:59 | 显示全部楼层
回复【7楼】ChrisLiu1017:
---------------------------------
哥们儿,如何解决的,我也遇到相同问题了,求解哈
回复 支持 反对

使用道具 举报

3

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
133
金钱
133
注册时间
2014-8-6
在线时间
18 小时
发表于 2016-8-25 14:24:08 | 显示全部楼层
zhangqing1001 发表于 2015-4-26 21:05
注释掉这里的代码试一下

就是这个问题,我用的就是24LC256,注释掉之前读回来FF,注释掉后就正常!不要忘了修改修改#define EE_TYPE AT24C256
就OK了!
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2012-10-17
在线时间
4 小时
发表于 2017-6-27 14:11:35 | 显示全部楼层
怎么解决的?   给个例子看看?
回复 支持 反对

使用道具 举报

1

主题

192

帖子

0

精华

高级会员

Rank: 4

积分
604
金钱
604
注册时间
2014-4-14
在线时间
105 小时
发表于 2017-6-27 16:02:21 | 显示全部楼层
toddchen 发表于 2014-1-23 13:29
EEPROM太小,现在还要用吗?&nbsp;FLASH中划一块也比24C02大。
如果嫌小,W25QXX的不是也好用吗?&nbsp;那 ...

E2还是有很多特性不可替代,比如说字节擦除,少量数据要频繁改写的时候很有用。速度也快很多,擦一个字节和擦4K的扇区速度不问可知……
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-8-17 13:35

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表