ykr1 发表于 2011-3-30 16:40:50

怎样延长EEPROM寿命的方法?

我用M8的EEPROM存储2计数值,请问一下如何延长EEPROM寿命?

colorwolf 发表于 2011-3-30 16:47:58

少用!这是唯一的办法。如果有人跟你说循环改变存储地址神马的都是浮云。

yuanye1127 发表于 2011-3-30 16:52:17

回复【1楼】colorwolf
少用!这是唯一的办法。如果有人跟你说循环改变存储地址神马的都是浮云。
-----------------------------------------------------------------------

还真是这样,EEPROM的寿命就是写入次数,写入次数少寿命就长。
如果写入字节少,软件上你可以经常换地方写,寿命会更长,我做过一个汽车仪表就是这么做的,有效果。

colorwolf 发表于 2011-3-30 17:08:08

你换地址写容易,但你为了能找到它是不是要做个地址指针写在EEPROM一个固定的位置?还不是数据改一下地址指针也要改一下?若干万次后地址指针不就是先OVER了,地址指针OVER了不就等于你整个EEPROM都OVER了?

eworker 发表于 2011-3-30 17:31:47

值得讨论

mojinpan 发表于 2011-3-30 17:32:00

回复【3楼】colorwolf
你换地址写容易,但你为了能找到它是不是要做个地址指针写在eeprom一个固定的位置?还不是数据改一下地址指针也要改一下?若干万次后地址指针不就是先over了,地址指针over了不就等于你整个eeprom都over了?
-----------------------------------------------------------------------
1.如果数据量不大的话,可以把EEPROM的值都读出来然后再找数据的位置.这样可以不需要地址指针
2.实现将EEPROM分成若干个区,第一次上电是读区的首地址即可,类似增加地址指针的数量可以有效增加地址指针的寿命.

huayuliang 发表于 2011-3-30 17:41:23

需要多久的寿命呢?

longren_gd 发表于 2011-3-30 17:42:03

EEPROM?正如楼上几位所说,神马都是浮云啊。跟使用次数有关。

121212 发表于 2011-3-30 18:19:26

eeprom 100万次的寿命 已经很长了,一般做 configuresave可以用 一辈子。

如果经常要写入,是 应该考虑 换 方案 ,用ram 不好吗?

eeprom 尽量少用就对了

ykr1 发表于 2011-3-30 19:02:22

因为计产品使用次数,eeprom 100万次的寿命,一天1W次,这样算100天就不能用了,看看5楼朋友方法可能能用吧。

ufbycd 发表于 2011-3-30 19:25:07

我有个项目用spi Flash保存数据,一秒保存一次。Flash一般是10万次,比EEProm还小,但我做到了,并且可以用100年。
做法是:
    当然是打一枪换一个地方,当然不能保存指针,每个数据都包含一个标志,这个标志可以用来区分已写区、未写区和坏区。
    上电时根据标志来找到地址最高的已写区就是最近写入的数据,将此地址作为指针保存于RAM中,以后每写入一次数据都从
此指针指向的地址开始写,写完后增加此指针使其指向空区(这样就不用每次写入都要找最新数据的地址)。

hailing 发表于 2011-3-30 19:28:08

用铁电好了。以后生产铁电的厂家会多起来,现在富士通也在生产铁电了。厂家多了价格自然会下来。上次无聊,测试了下CAT24C64和rohm的24G64,对同一个地址写00和AA,分别为2000万次和1500万次左右。这个是在3.3V系统和室温下测试。

huayuliang 发表于 2011-3-30 19:28:39

回复【9楼】ykr1
因为计产品使用次数,eeprom 100万次的寿命,一天1w次,这样算100天就不能用了,看看5楼朋友方法可能能用吧。
-----------------------------------------------------------------------

设备经常断电么?1天1W次。。。。为啥不存在RAM里?

eggcar 发表于 2011-3-30 19:44:07

换铁电,楼上测试几千万次的是不是电压用高了?按理说铁电的寿命远不止这个数。或者电池+ram。eeprom是连想都不用想,绝对满足不了你要求。不过话说你要干嘛啊,一天1w次。。。。。。

ykr1 发表于 2011-3-30 20:24:05

回复【12楼】 huayuliang 花生

复【9楼】ykr1   
因为计产品使用次数,eeprom 100万次的寿命,一天1w次,这样算100天就不能用了,看看5楼朋友方法可能能用吧。
-----------------------------------------------------------------------

设备经常断电么?1天1W次。。。。为啥不存在RAM里?

设备不经常断电,但要做个断电检测电路写入ROM中,才能保证下次上电计数值正确.

gycsy 发表于 2011-3-30 22:21:10

不常断电 RAM+断电检测+EEPROM.
几秒钟断一次电(不知道这是啥应用了....): RAM+大电容(或后备电池)+断电检测+EEPROM.

ykr1 发表于 2011-3-31 23:46:13

我做了个50W次后更改下一存储地址来延长EEPROM寿命,理论上是可以,不知实际中如何,正在测试中,谢谢回复。

brightsm 发表于 2011-4-1 00:30:47

掉电检测+小电池这样可以了吧!

hailing 发表于 2011-4-2 12:15:03

回复【13楼】eggcar 八号机
换铁电,楼上测试几千万次的是不是电压用高了?按理说铁电的寿命远不止这个数。或者电池+ram。eeprom是连想都不用想,绝对满足不了你要求。不过话说你要干嘛啊,一天1w次。。。。。。
-----------------------------------------------------------------------

不好意思,没说清楚,我后面的说的是测试普通EEPROM的寿命。

kerrwang1982 发表于 2011-4-2 12:50:29

追求极致是我们的追求,但不要山寨了。

jing43 发表于 2011-6-19 13:04:02

回复【2楼】yuanye1127 初学嵌入式
-----------------------------------------------------------------------

2楼说的打一枪就换一个地方,这个方法应该很有用,我做了一个小板能正确的读出写入的数据,就用了这个方式。

下面我贴出原理图与测试源代码,请大家鉴定。
http://cache.amobbs.com/bbs_upload782111/files_41/ourdev_650410YPMJFB.jpg
(原文件名:sch.jpg)

http://cache.amobbs.com/bbs_upload782111/files_41/ourdev_650411BO10RK.jpg
(原文件名:原理.jpg)



点击此处下载 ourdev_650248L8SQ2W.rar(文件大小:3K) (原文件名:源代码.rar)

eeprom原理说明:   
      1、读取的时候,读0x01到0x7f(127)位置的EEPROM数据,一次读两个出来,找出相差值为4的位置,锁定k+2的值,

         再用(k+2)+256取第二个数,用(k+2)+128取第一个数。

         2、存储的时候,读0x01到0x7f(127)位置的EEPROM数据,一次读两个出来,找出相差值为4的位置,锁定k+1的值,

         把k+1位置里的数加2,用(k+1)+256存第二个数,用(k+1)+128存第一个数。

      当k+1,k+2不在1~127的中间的时候,要特别处理一下,源程序里面已经这样做了。

jing43 发表于 2011-6-19 13:13:12

这个多个位置存储的应用,可以修改存储单元为255、63、31、15等。

这个存储方式有很大的浪费,程序中为了存2byte的数据,用掉了381byte的eeprom。

novelcrab 发表于 2015-5-5 00:18:58

这个要顶一下

desertsailor 发表于 2015-5-5 10:24:49

首先擦除整片,然后就整片分成若干个等大的区域,第一次写入第1个区域,开始是引导头数据后面跟有效数据,以后每次再写的时候先查询引导头数据在哪个区域,然后擦除这个区域,再将数据写向下一个区域,如果到了片末,再返回到片头,如此即可无需地址指针。缺点是每次重新上电查询引导头数据可能需要耗费一些时间,但在程序运行时由于有变量已经存储了上一次写数据的地址,因此很容易找到下一个要写的区域。

sjx000000 发表于 2015-5-9 14:44:03

本帖最后由 sjx000000 于 2015-5-9 14:46 编辑

colorwolf 发表于 2011-3-30 17:08
你换地址写容易,但你为了能找到它是不是要做个地址指针写在EEPROM一个固定的位置?还不是数据改一下地址指 ...

可以打500(N,N一般取EpRoM容量/存数据个数)枪换心,换个地方,打枪次数用RAM存,每换地方存个地址。读写都是那个地址(RoM存)。相当于寿命提了5oo(N)倍

xjbh001 发表于 2015-5-9 14:58:10

铁电的flash可以写100亿次

bccuje_love 发表于 2015-5-9 15:15:30

打一枪换个地方
页: [1]
查看完整版本: 怎样延长EEPROM寿命的方法?