搜索
bottom↓
回复: 30

24C02保存数据,每5分钟写1 次,有没有办法均衡方法。

[复制链接]

出0入0汤圆

发表于 2021-9-12 10:38:09 | 显示全部楼层 |阅读模式
目标使用5 年,害怕经常在同一地址写,有没有简单的均衡,在多个地址写。

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出10入10汤圆

发表于 2021-9-12 10:55:45 来自手机 | 显示全部楼层
比如,地址0x00用来记录正确数据的地址,假设0x00地址记录的是0x01,那么每次写数据都写在0x01地址,写完后读出来验证一下是否正确,如果不正确,说明0x01地址已经写坏,就把数据写在0x02地址,同时0x00地址改为0x02,下次就对0x02地址进行读写操作,直至该地址写坏,再换下一个地址

出125入16汤圆

发表于 2021-9-12 11:03:57 | 显示全部楼层
为何5分钟写?设计一个电路,在检测到断电时写入也可以的。提高到30分钟一次?

出0入0汤圆

发表于 2021-9-12 11:07:39 | 显示全部楼层
换FM24铁电存储器,以楼主的写入要求,可以用几十年。

出0入147汤圆

发表于 2021-9-12 11:11:50 | 显示全部楼层
简单粗暴型: 分散写入, 比如要存储累计运行时间, 可分成16个存储单元,轮流写入, 取值的时候, 把16个单元的值累加即可, 相当于把每个单元的写入间隔延长到(5*16)分钟

复杂可靠型: 采用日志式存储,循环使用整个EEPROM的所有空间, 比如目前我们产品使用的是SPI Flash,扇区大小是4KB, 则将每8个扇区划分为一个32KB簇, 共分配8个簇256KB空间用于存储历史数据, 8个簇里面又划分了5个活动簇和3个备份簇,即实际可用的存储空间是160KB, 支持坏扇区、坏簇标记,理论上支持以亿次为单位的循环擦写。

出0入476汤圆

发表于 2021-9-12 11:27:09 | 显示全部楼层
我也觉的用铁电的更靠谱。

出0入442汤圆

发表于 2021-9-12 11:58:49 来自手机 | 显示全部楼层
szxszx 发表于 2021-9-12 10:55
比如,地址0x00用来记录正确数据的地址,假设0x00地址记录的是0x01,那么每次写数据都写在0x01地址,写完后 ...

你想多了。flash器件主要风险在掉电存储。上电时你当成ram都行,这也是ssd评测动不动就是几千上万次pe的原因。但是几百次pe的ssd掉电高温(40度)存放几个星期可能就变砖了。有数据表明,上电时温度稍高(50度左右)对flash更好,断电时温度越低越好。

出0入475汤圆

发表于 2021-9-12 11:59:07 来自手机 | 显示全部楼层
对其,扣这种技巧上的,还不如直接源头解决。万一扣的有bug,岂不是完蛋了,源头上解决可以本质保证,虽然可能稍微多花点钱

出0入4汤圆

发表于 2021-9-12 12:01:39 | 显示全部楼层
最简单的方法,将EEPROM分成10个地址,第一次写入第1个地址,第二次写入第2个。。。。第十一次写入第1个地址。写入后擦除旧数据。

出0入0汤圆

发表于 2021-9-12 13:13:26 | 显示全部楼层
要么增加掉电检测,要么地址循环写入就可以。

出50入0汤圆

发表于 2021-9-12 13:19:46 | 显示全部楼层
AT24C02的标称擦写次数是1000K,按照每隔5分钟写一次计算,5年总共525.6K,差不多50%的使用量,应该没问题。

出100入85汤圆

发表于 2021-9-12 15:30:25 | 显示全部楼层
lgg88 发表于 2021-9-12 13:13
要么增加掉电检测,要么地址循环写入就可以。

我也是这么想的

出1310入193汤圆

发表于 2021-9-12 15:32:26 | 显示全部楼层
cddyy 发表于 2021-9-12 13:19
AT24C02的标称擦写次数是1000K,按照每隔5分钟写一次计算,5年总共525.6K,差不多50%的使用量,应该没问题 ...

普通AT24C02    实际产品中 不到一年就有故障出现

出0入0汤圆

发表于 2021-9-12 15:48:06 来自手机 | 显示全部楼层
很久以前,论坛有人做过实验,反复写写很久,最终得到五千万次的结果??

出0入84汤圆

发表于 2021-9-12 16:06:09 | 显示全部楼层
24随便写,别担心寿命,数据丢失不是因为寿命,而是写的过程被打断了,所以多处备份是需要的,还要能修补错误数据

出15入178汤圆

发表于 2021-9-12 16:17:36 | 显示全部楼层
5分钟不太频繁,一般Flash我们才会特意考虑写平衡。以下供你参考:
我这有1分钟存1次的数据,数据本身寿命没问题,分配了多块区域轮流写,但索引如果次次写EEPROM,100万次估计2年就会写完。
我们是把次次更新的部分分配到Vbat供电的RAM区(Vbat域不掉电),再配合掉电更新EEPROM内的备份,可以保证可靠性。

出50入0汤圆

发表于 2021-9-12 16:32:47 | 显示全部楼层
lb0857 发表于 2021-9-12 15:32
普通AT24C02    实际产品中 不到一年就有故障出现

这个时候还是要买大厂的产品,至少标称参数是靠谱的。

出0入0汤圆

发表于 2021-9-12 16:52:45 | 显示全部楼层
本帖最后由 chinaboy25 于 2021-9-12 16:55 编辑

以前我做过,所以数据打包成一个结构,再把结构定义一个数组,尽量用满空间,结构里面有一个计数,每存一次计数加1,每次读计数值最大的结构就好了;把所有数据读出来,还是可以看历史数据;

出0入34汤圆

发表于 2021-9-12 18:57:25 | 显示全部楼层
改用 24F02 即可当 SRAM 使,估计不存在寿命问题,但指得是原厂的 24F02,非杂牌滴!

出0入0汤圆

发表于 2021-9-12 21:10:01 | 显示全部楼层
本帖最后由 ahong2hao 于 2021-9-12 21:11 编辑

一般存储的数据量是固定的,可以顺着写,反着读。
比如划出4096字节的固定大空间,初始化全是0XFF,每次写128字节,那就有32个小块,写的时候按0-127,128-255这样写。
读的时候,如果读回来的128字节全是0XFF,就是可写的小块,这个小块的前一个块,就是上次存的数据。
等到4096全写满了,就找不到128字节全是0XFF的了,就全部清空成0XFF,又从0开始循环
不知这样描述能否看懂。这样就相当于把寿命增加了32倍

出0入0汤圆

发表于 2021-9-13 09:01:23 | 显示全部楼层
看看BL24C02,标300万次

出0入17汤圆

发表于 2021-9-13 09:03:24 | 显示全部楼层
用铁电,速度又快,省心

出0入8汤圆

发表于 2021-9-13 09:31:38 来自手机 | 显示全部楼层
chinaboy25 发表于 2021-9-12 16:52
以前我做过,所以数据打包成一个结构,再把结构定义一个数组,尽量用满空间,结构里面有一个计数,每存一次 ...

对!我也是按照这个,做个数据结构,我顺便把校验也写进去,读出来后CRC16校验一下。

出0入0汤圆

 楼主| 发表于 2021-9-13 21:48:48 | 显示全部楼层
Trylin 发表于 2021-9-13 09:03
用铁电,速度又快,省心

有没有公司推荐?假铁电怎么区分?

出0入0汤圆

 楼主| 发表于 2021-9-13 21:50:30 | 显示全部楼层
lgg88 发表于 2021-9-12 13:13
要么增加掉电检测,要么地址循环写入就可以。

掉电检测没有做过,有方案 没有?

出0入0汤圆

发表于 2021-9-13 23:20:45 | 显示全部楼层
你可以将电源端接一个7044,当电源低于4.4V的时候输出一个信号,后面就进入EEPROM写程序。或者电源端用电阻分压接入一个比较器

出0入17汤圆

发表于 2021-9-14 12:14:09 | 显示全部楼层
lfgc 发表于 2021-9-13 21:48
有没有公司推荐?假铁电怎么区分?

之前用过富士通的某一个型号,还可以。

出0入309汤圆

发表于 2021-9-14 14:45:08 | 显示全部楼层
本帖最后由 iamseer 于 2021-9-14 14:50 编辑

可以参考 AVR101 High Endurance EEPROM Storage。
空间利用率不是最高,但算法简单还有例程。


另外Microchip家还有一种Serial EERAM。直接当RAM用,掉电自动保存数据。只有掉电的时候才真正从RAM往EEPROM里存数据。我个人没用过不过LZ可以看看。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2021-9-14 15:24:09 | 显示全部楼层
ahong2hao 发表于 2021-9-12 21:10
一般存储的数据量是固定的,可以顺着写,反着读。
比如划出4096字节的固定大空间,初始化全是0XFF,每次写1 ...

谢谢老哥,学到了

出0入4汤圆

发表于 2021-10-15 11:38:40 | 显示全部楼层
本帖最后由 SCREA 于 2021-10-15 11:40 编辑
lfgc 发表于 2021-9-13 21:50
掉电检测没有做过,有方案 没有?


Spiffs是一个用于嵌入式目标上的SPI NOR flash设备的文件系统。

Spiffs有以下几个特点:

1、小(嵌入式)目标,没有堆的少量RAM

2、只有大范围的数据(块)才能被删除

3、擦除将把所有块中的位重置为1

4、写操作把1变成0

5、0只能被擦除成1

6、磨损均衡

出0入0汤圆

发表于 2021-10-16 13:52:05 | 显示全部楼层
lfgc 发表于 2021-9-13 21:50
掉电检测没有做过,有方案 没有?

掉点保存的方案很多的。可以试试
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 12:16

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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