一笔长空
发表于 2024-8-3 13:57:10
将一个扇区写满然后在擦除比写一位然后就擦除寿命能大大延长
vb2002
发表于 2024-8-3 14:10:01
一笔长空 发表于 2024-8-3 13:57
将一个扇区写满然后在擦除比写一位然后就擦除寿命能大大延长
现在代码卡我脖子了
思路清晰,代码乱乱的.不会下手
izmvrowl
发表于 2025-8-2 14:53:35
vb2002 发表于 2024-8-3 14:10
现在代码卡我脖子了
思路清晰,代码乱乱的.不会下手
我有一计,每次记录就去for一下read eeprom,如果非0xFF的下一个是0xFF,就往0xFF记录值,读的时候也是这样
vb2002
发表于 2025-8-2 15:11:04
izmvrowl 发表于 2025-8-2 14:53
我有一计,每次记录就去for一下read eeprom,如果非0xFF的下一个是0xFF,就往0xFF记录值,读的时候也是这 ...
已经弄好了.现在就是用的均衡写入,挺好的. 写完整个页再擦除,大大的提高了eeprom的寿命
zcllom
发表于 6 天前
vb2002 发表于 2025-8-2 15:11
已经弄好了.现在就是用的均衡写入,挺好的. 写完整个页再擦除,大大的提高了eeprom的寿命
...
方式方法完美吗?我理解的完美方法是至少2个扇区乒乓存储,
第1个扇区存满了,往第2个扇区保存,然后再擦除第一个扇区。
之后,第2个扇区存满了,再往第1个扇区保存,同时擦除第2个扇区,之后依次类推!!
上电还要判断哪个是最新的扇区!!
只是代码怎么细致周到地处理,我还没实践。。。
希望楼主再接再厉,搞的完美一些。
vb2002
发表于 6 天前
zcllom 发表于 2025-8-28 15:36
方式方法完美吗?我理解的完美方法是至少2个扇区乒乓存储,
第1个扇区存满了,往第2个扇区保存,然后再擦 ...
这样交换存储也没备份啊,
我是直接从0开始写,每次写多少个,比如我用一个扇区就是512写满,直接擦除,再重头开始写
两个扇区就1024
目前没出过啥问题
zcllom
发表于 5 天前
vb2002 发表于 2025-8-28 18:37
这样交换存储也没备份啊,
我是直接从0开始写,每次写多少个,比如我用一个扇区就是512写满,直接擦除, ...
有啊,你想一下,当第2扇区存满时,去擦除第1扇区,并保存新数据,即使第1扇区在擦除时意外掉电,导致新数据没有保存,你想一下是不是第2扇区的最后尾部还有上一条最近的记录??
zcllom
发表于 5 天前
vb2002 发表于 2025-8-28 18:37
这样交换存储也没备份啊,
我是直接从0开始写,每次写多少个,比如我用一个扇区就是512写满,直接擦除, ...
怕就怕正在直接擦除时,突然掉电,你的新数据也没保存,老数据也全丢,连追溯的机会都没有
vb2002
发表于 5 天前
zcllom 发表于 2025-8-29 13:32
有啊,你想一下,当第2扇区存满时,去擦除第1扇区,并保存新数据,即使第1扇区在擦除时意外掉电,导致新 ...
eeprom的尾部和头部我是这样衔接的
判断到了eeprom尾部了,先擦除全部,然后写eeprom头部,,等于说头部那几个字节都不用
比如512这个扇区,写到512了,先检测是不是从头开始了,如果是,那就擦除,然后些
vb2002
发表于 5 天前
zcllom 发表于 2025-8-29 13:34
怕就怕正在直接擦除时,突然掉电,你的新数据也没保存,老数据也全丢,连追溯的机会都没有 ...
我另一个操作24c02也做了均衡处理
那个是根据一个计数器判断写入位置,也挺好用,
模拟的eeprom好像也可以这样弄