标题: 关于EEPROM擦写频率 [打印本页]

作者: QWE4562012    时间: 2022-11-9 18:55
标题: 关于EEPROM擦写频率
EEPROM擦写频率怎么理解?怎么根据擦写频率选择EEPROM还是flash?比如如下这个案列

每100ms采集一次数据,每秒存20个字节(实际使用清空EEPROM存储的数据是每周清除三次,这个是否也是擦写频率的一种?)这种应用场景,用外接的EEPROM还是用MCU的flash?用flash可以节省成本!毕竟128Kbit&SOT23-5封装的EEPROM价格有些贵!而且找不到国产的!交期也是问题,目前只有微芯microchip才有!

作者: wulin    时间: 2022-11-9 22:00
flash擦写寿命大约10万次。每秒擦写一次要不了两天就废了。通常是在断电时把关键数据保存在EEPROM,下次得电时取用。
作者: Hephaestus    时间: 2022-11-9 22:24
wulin 发表于 2022-11-9 22:00
flash擦写寿命大约10万次。每秒擦写一次要不了两天就废了。通常是在断电时把关键数据保存在EEPROM,下次得 ...

你太低估现代偷工减料的水平了,flash的10万次擦写寿命是很多年前的,现代flash寿命普遍在1万次,这还是SLC,还有DLC、TLC、QLC寿命更短的,不过没有用在单片机上。

同样的eeprom以前普遍在1000万次写寿命,现在已经下降到100万次了。

楼主的要求恐怕只有铁电能完成,写的太频繁了。
作者: angmall    时间: 2022-11-9 22:26
你可以用NVRAM。

FLASH必须以扇区为单位访问,而NVRAM以字节为单位访问。


作者: wufa1986    时间: 2022-11-10 08:28
代价有点大,你的单片机需要开辟非常大的写空间才行,最少要开辟1024Kbytes的空间,这样大概10几小时擦除一次
作者: yzwzfyz    时间: 2022-11-10 09:21
CPU中的非易失性存储器通常是按片区分的,即要擦擦一片,教你一个方案,供你参考:
1、开辟一个区域存储数据,如2000-7FFFH,设其中有N个区擦除区(通常每区512字节)。
2、循环覆盖方式存储,这样不至于盯着一个地方擦写。
3、每个区的前12个字节备用,第1个字节作为标记,=FF,表示空区(该区擦过了),反之未用。
剩下的500个字节分成25个组,每组刚好存20个字节。
操作:
1、顺序存入数据,写满后循环重头开始。
2、开始:每次上电,从头开始找20个全是FF的组,就是开始的地方。(各区前12个不用,格式就固定了)
3、擦除:先确认本区是否为空(首字节是非为FF),不是FF就擦除本区。
4、跨区的技巧及要点:要做两件事。
第一件:擦除下个区!设区号是1,2,3,4,5……,当前操作在2区,当2区结束,进入3区时,却要擦除4区!!。即在任何时刻保证下一个区一定是空的(全FF),目的:防止循环重复时,开机后找不到空位置(20个全FF)的情况出现。
第二件:清除新区的标记,即将3区的首字节FF,改为xx(你定义一个非FF值,表示本区开始起用),再从第12个单元开始存数据。
作者: hhh402    时间: 2022-11-10 10:07
flash擦写寿命大约10万次,具体看数据手册,10万次是指擦除的次数,不是指写的次数,读是无限的。
作者: coody_sz    时间: 2022-11-10 10:31
从头写到尾算一次,可以长寿很多倍。
作者: QWE4562012    时间: 2022-11-14 16:11
比如寿命是10万次  那么这里能使用多少年?
作者: QWE4562012    时间: 2022-11-14 16:11
Hephaestus 发表于 2022-11-9 22:24
你太低估现代偷工减料的水平了,flash的10万次擦写寿命是很多年前的,现代flash寿命普遍在1万次,这还是S ...

这里怎么判断频次
作者: QWE4562012    时间: 2022-11-14 16:12
yzwzfyz 发表于 2022-11-10 09:21
CPU中的非易失性存储器通常是按片区分的,即要擦擦一片,教你一个方案,供你参考:
1、开辟一个区域存储数 ...

比如寿命是10万次  那么这里能使用多少年?
作者: QWE4562012    时间: 2022-11-14 16:13
每100ms采集一次数据,每秒存20个字节和清空EEPROM存储的数据是每周清除三次,,哪个才是擦写次数
作者: QWE4562012    时间: 2022-11-14 16:15
每100ms采集一次数据,每秒存20个字节和清空EEPROM存储的数据是每周清除三次,,哪个才是擦写次数??10万次的寿命这里能用多少年
作者: lkc8210    时间: 2022-11-14 17:29
每秒存20个字节:
假设有5k EEProm = 5 * 1024 = 5120
写满一次要 5120/20 = 256秒
写100000次要 256 * 100000 = 25600000秒 = 296日

清空EEPROM存储的数据是每周清除三次:
写满一次要 7 * 24 * 3600 /3 = 201600秒
每秒存20个字节,即EEProm容量为201600 * 20 = 4032000 字节 = 3.8MB
作者: 188610329    时间: 2022-11-14 17:59
QWE4562012 发表于 2022-11-14 16:12
比如寿命是10万次  那么这里能使用多少年?

STC  号称 10万次擦写, 也许我运气比较好 有一片 STC15W204S 擦写 约 0.5万次,卒。那时候也是学单片机的初级阶段,是狂做实验,才擦写那么多次,一般也不可能真的去测,对吧? 之后,换了另一片STC15W204S 至今擦写 约2万次,还没挂,以及一片89C52 也是2万来次 未挂,其他型号的基本都只写了几百次,不好判断。所以,具体平均擦写次数不好说,但是,我这边已经把 最坏的情况 5000次,作为设计的参考量了。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1