OpenEdv-开源电子网

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

IIC实验,使用24C02的EEPROM,怎么实现页写呢?

[复制链接]

15

主题

106

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
286
金钱
286
注册时间
2014-2-17
在线时间
39 小时
发表于 2014-7-9 17:36:39 | 显示全部楼层 |阅读模式
5金钱
好像战舰里面的IIC实验,是使用的24C02的EEPROM吧,然后里面的写是字节写的模式是么?我这里有个24C02的数据手册,怎么实现页写呢?我对于页写时序的具体操作没弄清楚。字写一次最多写多少字节?页写呢?然后有哪些利弊?

FM24C02A_PDF_C9997数据手册.rar

540 KB, 下载次数: 1010

最佳答案

查看完整内容[请看2#楼]

我们用的是字节写,特点是方便,缺点是速度慢. 页写比字节写快一些,不过EEPROM就那速度了...实际上页写的作用并不大.
花自飘零水自流,生命不息,奋斗不止
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-7-9 17:36:40 | 显示全部楼层
我们用的是字节写,特点是方便,缺点是速度慢.
页写比字节写快一些,不过EEPROM就那速度了...实际上页写的作用并不大.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-7-9 17:36:40 | 显示全部楼层
http://www.openedv.com/posts/list/35740.htm这里工程有24c02的页写代码,可以参考以下
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

15

主题

106

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
286
金钱
286
注册时间
2014-2-17
在线时间
39 小时
 楼主| 发表于 2014-7-9 21:36:36 | 显示全部楼层
原子哥, 现在例程中的字节读写,做多能一次存储多少字节啊?跟页写会一样么?
花自飘零水自流,生命不息,奋斗不止
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-7-9 23:24:52 | 显示全部楼层
回复【3楼】开荤的唐僧:
---------------------------------
一个个写,你存多少个,调用多少次这个写字节函数就是了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

15

主题

106

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
286
金钱
286
注册时间
2014-2-17
在线时间
39 小时
 楼主| 发表于 2014-7-10 08:23:03 | 显示全部楼层
谢谢原子哥,了解了
花自飘零水自流,生命不息,奋斗不止
回复

使用道具 举报

69

主题

475

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1334
金钱
1334
注册时间
2013-12-28
在线时间
197 小时
发表于 2014-7-10 10:37:40 | 显示全部楼层
页写的程序你可以百度找找  网上有的  字节写肯定是方便很多了  每次写一个字节前需要先写一个地址 自然速度要慢些     能够写多少个就看你的EEPROM的打消了     页写肯定要快些   就是页写的这个函数要复杂些
回复

使用道具 举报

15

主题

106

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
286
金钱
286
注册时间
2014-2-17
在线时间
39 小时
 楼主| 发表于 2014-7-18 08:18:42 | 显示全部楼层
回复【7楼】Badu_Space:
---------------------------------
回复【7楼】Badu_Space:
---------------------------------
十分感谢,工程量还真不小,赞一个
花自飘零水自流,生命不息,奋斗不止
回复

使用道具 举报

15

主题

106

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
286
金钱
286
注册时间
2014-2-17
在线时间
39 小时
 楼主| 发表于 2014-7-18 08:20:05 | 显示全部楼层
回复【6楼】jiaozhu:
---------------------------------
自写其实也是不错的,因为针对于其他的IIC器件用的上,如果是页写,或许像ADXL345这些器件就不一定能够页写了
花自飘零水自流,生命不息,奋斗不止
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-7-18 08:24:14 | 显示全部楼层
回复【9楼】开荤的唐僧:
---------------------------------
这个想法可以,呵呵

部分芯片还真是不能页写的
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

15

主题

106

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
286
金钱
286
注册时间
2014-2-17
在线时间
39 小时
 楼主| 发表于 2014-7-18 15:18:46 | 显示全部楼层
回复【10楼】Badu_Space:
---------------------------------
是的,因为有些芯片的DATASHEET里面就没有说过页写,如果在线的话,能不能告诉我下面这两个语句在KEIL中是有差别的:
ADXL345_WriteByte(0x2F,0x40);跟ADXL345_WriteByte(0x2F,0B01000000);
不能用后面那一句代替前面那一句么?因为我有时候用后面这种方式能更好的知道每个位的情况。
花自飘零水自流,生命不息,奋斗不止
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-7-18 16:39:36 | 显示全部楼层
回复【11楼】开荤的唐僧:
---------------------------------
二进制好像是这样表示的吧:01000000B

其实你也可以这样写的:1<<6
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

15

主题

106

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
286
金钱
286
注册时间
2014-2-17
在线时间
39 小时
 楼主| 发表于 2014-7-19 08:27:05 | 显示全部楼层
回复【12楼】Badu_Space:
---------------------------------
您说的使用01000000B这种格式是不行的,刚才测试了下
花自飘零水自流,生命不息,奋斗不止
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-7-19 20:47:36 | 显示全部楼层
看在什么平台上
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

86

主题

984

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1850
金钱
1850
注册时间
2013-4-15
在线时间
163 小时
发表于 2015-1-28 15:55:26 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥,24CXX系列芯片有没有清0指令呀,就是整个存储器都清0,比如对于24C256就是从地址0~地址32767全清0,如果用单字节循环写(while循环),好慢啊,因为每次写一个字节就延时10ms,总共写完要接近6分钟,太慢了,有没有一条指令,直接写这条指令就全清0了
合肥-文盲
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-1-29 00:06:16 | 显示全部楼层
回复【15楼】合肥-文盲:
---------------------------------
没有哦
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-26 07:12

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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