基础知识之EEPROM 掉电保存

文章讨论了EEPROM的使用寿命和掉电保存问题,提出了循环写和地址存储的策略来防止同一地址过度写入导致损坏。通过分配特定地址存储当前写入地址,并使用地址递增系数确保地址空间的有效利用。在掉电后,可以通过读取最大地址值或比较数据大小来找回信息,并建议添加校验字节以增强数据可靠性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

EEPROM掉电保护

EEPROM(带电可擦可编程只读存储器)是用户可更改的只读存储器(ROM),其可通过高于普通电压的作用来擦除和重编程(重写)。不像EPROM芯片,EEPROM不需从计算机中取出即可修改。在一个EEPROM中,当计算机在使用的时候可频繁地反复编程,因此EEPROM的寿命是一个很重要的设计考虑参数。EEPROM是一种特殊形式的闪存,其应用通常是个人电脑中的电压来擦写和重编程 。

本章主要科普EEPROM掉电保存。
首先说一下EEPROM的使用寿命,还是比较长的,本次讲解的型号是M24C02-WMN6TP,官方手册上面介绍的是400万次的写周期
在这里插入图片描述
日常我们写数据,大部分人都是在同一个地址写,同一个地址读,有没有发现这个空间没有利用完!这个型号有128和256bytes的大小,但是我们总在一个地址写和读,长时间这样,该地址空间有没有可能写坏了!

既然这样,我们为了避免在同一个地址长时间的写,我们可以采用循环写,将地址空间写满,那么问题来了,如果某一时刻单片机掉电了,掉电后写入地址和读出的地址丢失,怎么找回呢?

我们可以在EEPROM上面,划分一个地址出来,用来固定存放当前写的地址空间,先写数据再写地址,这样掉电了我们可以在该地址空间读出数据,找到上次存档的地址空间。

但是这样操作,这个存储的地址长时间的写入操作,也可能被写坏了,那该怎么办呢?

现在在同一个地址写,我们改一下,不在同一个地址写,将内存空间分为两部分,一部分写数据,一部分写地址,另外将地址数据做一下改进,用一个系数n,n是表示地址空间被写了几次,那么这个地址空间将会不断递增,考虑到实际情况,我们将用四个空间来存储地址数据,即n占三个字节,最大为FFFFFF,换成十进制就是16777215,对比与EEPROM的写入次数来讲,很大,毕竟写入次数采400万,这个最大是1677万。

当掉电后,我们直接读地址数据空间,四个四个的读,找到最大的那个数据,然后根据这个地址数据来读取数据空间的值。

再有一种笨方法-比大小,就是不使用地址空间,掉电后,将每次存入的数据依次读出,比较大小,大的即为掉电前的数据,前提是你存入的数据是递增的。

另外建议加一个字节的检验数据,读出的时候校验一下,保证数据的可靠性。

如果有哪位大佬有别的解决方案,欢迎留言!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值