微软公司宣布不再支持你正在使用的 IE浏览器,这会严重影响浏览网页,请使用微软最新的Edge浏览器
厂商专区
产品/技术
应用分类

单片机中EEPROM的异常情况与应对

2016-07-25 09:56 来源:电源网综合 编辑:铃铛

单片机设计当中,串行EEPROM的可靠性有目共睹。但是虽然有着高可靠性,但是串行EEPROM在使用过程中会出现数据出错的情况,并且数据出错的情况大多数发生在插拔电源的情况下。下面将罗列出几种EEPROM的出错情况,而后提供一些应对方法。

出错情况

1.EEPROM读写的时序可能有小小的不对。

2.在掉电时,在电压降低到一定程度后到完全没电之间的一段时间内,在MCU与EEPROM的读写信号线上出现非控制的快速随机电平,这些电平可能会组合出一些被EEPROM认为合法的写命令,结果将EEPROM中的值修改掉;

3.在上电的复位期间,I/O脚上电平未定,也可能随机组合出一些写命令;

4.在读EEPROM操作过程中,出现了复位(如充电复位)等,形成类似于(二)的情况;

5.在电压降低后,可能会出现MCU跑飞了,结果运行到了写EEPROM的底层驱动程序中,强将数据写入了进去。

解决方法

1.按Datasheet上的时序,发现多数时候读写正确,但有时偶尔不对,这时可以降低读写的速度,多几个NOP。

2.为防止读EEPROM的过程中出现复位,可以在MCU复位后200ms内禁止读写EEPROM,因充电引起的复位抖动,一般在数十毫秒内,过了这段时间,再出现复位的可能性不大,

3.在写EEPROM的底层驱动程序中,在执行写动作时,判断一下某些标志,有良名证的才能通过,否则,只好打回原籍(跳到复位地址)。

4.对于重要的数据(如通信密码、参数设置等,这些部分信息量不大,要采用三次备份的手段。这些信息存放在三个不同的PAGE内,最好PAGE内的地址也不一样。在写这些数据时,要针对不同的地址写三次,而读时,对于三处读来的数据,如果全相同,没什么可说的了,如果有两个相同,一个不同,则使用大数判决,使用相同的那个值,并将这个数值写到不同的那个地址去。

也会有一种三种取值完全不同的情况,这种情况下只好随便取一个(如第一个),再将其写入另两个地址中去。这种方法非常有效,因为一般误擦除不会是全部数据,而只是某一处而已,可以允许EEPROM某单元被误擦除,只要读了一次就恢复了。

标签: 单片机 EEPROM

声明:本内容为作者独立观点,不代表电源网。本网站原创内容,如需转载,请注明出处;本网站转载的内容(文章、图片、视频)等资料版权归原作者所有。如我们采用了您不宜公开的文章或图片,未能及时和您确认,避免给双方造成不必要的经济损失,请电邮联系我们,以便迅速采取适当处理措施;欢迎投稿,邮箱∶editor@netbroad.com。

相关阅读

微信关注
技术专题 更多>>
研发工程师的工具箱
智慧生活 创新未来

头条推荐

电子行业原创技术内容推荐
客服热线
服务时间:周一至周五9:00-18:00
微信关注
获取一手干货分享
免费技术研讨会
editor@netbroad.com
400-003-2006