找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2860|回复: 14
打印 上一主题 下一主题
收起左侧

关于EEPROM擦写频率

  [复制链接]
跳转到指定楼层
楼主
ID:668004 发表于 2022-11-9 18:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
EEPROM擦写频率怎么理解?怎么根据擦写频率选择EEPROM还是flash?比如如下这个案列

每100ms采集一次数据,每秒存20个字节(实际使用清空EEPROM存储的数据是每周清除三次,这个是否也是擦写频率的一种?)这种应用场景,用外接的EEPROM还是用MCU的flash?用flash可以节省成本!毕竟128Kbit&SOT23-5封装的EEPROM价格有些贵!而且找不到国产的!交期也是问题,目前只有微芯microchip才有!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:213173 发表于 2022-11-9 22:00 | 只看该作者
flash擦写寿命大约10万次。每秒擦写一次要不了两天就废了。通常是在断电时把关键数据保存在EEPROM,下次得电时取用。
回复

使用道具 举报

板凳
ID:883242 发表于 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万次了。

楼主的要求恐怕只有铁电能完成,写的太频繁了。
回复

使用道具 举报

地板
ID:155507 发表于 2022-11-9 22:26 | 只看该作者
你可以用NVRAM。

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

回复

使用道具 举报

5#
ID:879348 发表于 2022-11-10 08:28 | 只看该作者
代价有点大,你的单片机需要开辟非常大的写空间才行,最少要开辟1024Kbytes的空间,这样大概10几小时擦除一次
回复

使用道具 举报

6#
ID:123289 发表于 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个单元开始存数据。
回复

使用道具 举报

7#
ID:491577 发表于 2022-11-10 10:07 | 只看该作者
flash擦写寿命大约10万次,具体看数据手册,10万次是指擦除的次数,不是指写的次数,读是无限的。
回复

使用道具 举报

8#
ID:1034262 发表于 2022-11-10 10:31 | 只看该作者
从头写到尾算一次,可以长寿很多倍。
回复

使用道具 举报

9#
ID:668004 发表于 2022-11-14 16:11 | 只看该作者
比如寿命是10万次  那么这里能使用多少年?
回复

使用道具 举报

10#
ID:668004 发表于 2022-11-14 16:11 | 只看该作者
Hephaestus 发表于 2022-11-9 22:24
你太低估现代偷工减料的水平了,flash的10万次擦写寿命是很多年前的,现代flash寿命普遍在1万次,这还是S ...

这里怎么判断频次
回复

使用道具 举报

11#
ID:668004 发表于 2022-11-14 16:12 | 只看该作者
yzwzfyz 发表于 2022-11-10 09:21
CPU中的非易失性存储器通常是按片区分的,即要擦擦一片,教你一个方案,供你参考:
1、开辟一个区域存储数 ...

比如寿命是10万次  那么这里能使用多少年?
回复

使用道具 举报

12#
ID:668004 发表于 2022-11-14 16:13 | 只看该作者
每100ms采集一次数据,每秒存20个字节和清空EEPROM存储的数据是每周清除三次,,哪个才是擦写次数
回复

使用道具 举报

13#
ID:668004 发表于 2022-11-14 16:15 | 只看该作者
每100ms采集一次数据,每秒存20个字节和清空EEPROM存储的数据是每周清除三次,,哪个才是擦写次数??10万次的寿命这里能用多少年
回复

使用道具 举报

14#
ID:161164 发表于 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
回复

使用道具 举报

15#
ID:624769 发表于 2022-11-14 17:59 | 只看该作者
QWE4562012 发表于 2022-11-14 16:12
比如寿命是10万次  那么这里能使用多少年?

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

使用道具 举报

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

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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