eeprom被误改写的问题

本文整理了网友们遇到的AVR单片机EEPROM数据丢失问题,并提供了防止EEPROM数据被破坏的方法,包括选用比MCU电源范围宽的EEPROM芯片、做好电源滤波、增加复位电路、做好软件跑飞处理、数据冗余加校验等措施。

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



遇到了eeprom被改写的问题,我的eeprom平常没有写操作,但是还是被改写了。

整理了网上的资料,总结一下。

下面是网友们遇到的问题:

治标治本,彻底解决AVR单片机EEPROM 数据丢失问题
http://www.amobbs.com/thread-1440595-1-1.html

请教马老师一个mega64的EEPROM中某个数据偶尔被改写的问题,谢谢
http://www.amobbs.com/thread-3249397-1-1.html

STM8的eeprom在什么情况下会被改写?
http://bbS.21ic.com/icview-450062-1-1.html

STC单片机自带的eeprom数据丢失
http://bbS.youkuaiyun.com/topics/350108862

EEPROM被改写问题
http://Blog.chinaunix.net/uid-20589269-id-1622153.html


详解AVR单片机EEPROM被改写问题
http://(www.chinadmd.com/file/sutvp3ocr6iwsoxro3a6czpz_1.html


EEPROM稳定问题

http://(www.dzsc.com/dzbbs/20050513/200765193848843231.html

(去掉网址中的括号)

EEPROM被误改写的现象一般都是发生在上掉电过程中,如果没有内部上掉电复位或外部上掉电复位芯片,在不足芯片工作电压时,单片机并不是不工作,但它工作是否正常?在跑什么代码就只有天知道,所以设计一定要避开这个危险区域。方法:烧写芯片时选启动内部BOD,或者象张工说的加外部Reset芯片。如果这还不行,再在软件上做考虑,比如:对大循环里的每一步设定顺序号,如开始是00,第一个子程序是01,只有当调用EEPROM写时顺序号是0X才真正启动EEPROM,否则报错退出。如果怀疑RAM内容错,考虑将重要数据多地址备份。



解决办法:

大家的方法整体来说就是做好复位电路,增加BOD;数据冗余加校验。

见以下我收集的普通独立EEPROM应用笔记,希望有帮助(转自http://(www.dzsc.com/dzbbs/20050513/200765193848843231.html)
*应用笔记:

EEPROM数据被破坏的主要原因有:
1、电源异常使EEPROM的数据彻底丢失;
2、复位不好和软件跑飞可能会使EEPROM的数据被改写。

要防止EEPROM数据被破坏,主要在以下几方面做工作:
1、选用比MCU的电源范围宽并有WP引脚的EEPROM芯片;
2、做好电源滤波,而且要等电源开机稳定后才去读写EEPROM;
3、做好复位电路;
4、做好软件跑飞的处理;
5、SDA和SCK的上拉最好用I/O口控制,既可省电,也可在一定情况下保护EEPROM;
6、WP接MCU的RESET;如WP做软件保护,将写不进数据;接I/O,上电时WP的状态可能不稳定。
7、EEPROM空间富余时考虑双备份或多备份数据,每份数据都有校验和。


选用比MCU的电源范围宽并有WP引脚的EEPROM芯片的原因:
1、EEPROM的芯片本身有一定的保护时序;
2、电源低于MCU工作电源高于EEPROM芯片的最低工作电源时,EEPROM芯片会处于稳定状态,不会丢失数据。
3、当电源较长时间低于EEPROM芯片的最低工作电压时非常容易丢失全部数据。否则MCU还能工作,但EEPROM芯片已不能工作时,EEPROM中的数据会全部丢失。
4、用I/O口线给EEPROM供电,只在读写EEPROM时才给器件供电,不仅能提高可靠性,而且能省电。
   但有两点要注意:一是一些单片机复位时所有I/O都是高电平,会使EEPROM芯片进入工作;
                   二是EEPROM芯片给电后需要有大于写周期的延时才能读写。

--以上是在“侃单片机”论坛里,很久前收集的对独立EEPROM的注意点,好像是“修哥”写的,我整理了一下。

另外就是数据保存多份并且进行校验。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值