[ZZ]PIC写内部|[ZZ]PIC写内部 EEPROM 问题探讨
上周在做一个项目时,需要对测试数据实时的保存,以被重新上电后读取.采用了PIC的内部EEPROM,正常读取时没有什么问题.反复上电掉电就出现了EEPROM被清0(改写).
查阅相关资料:EEROM写过程包括两个阶段:先擦除(电压为20V) 再写入(电压18V);
EEPROM在写入过程中如果电压不稳定,很容易导致错误.先使用了软件冗余法,同一个data写在连续3个地址,使用时比较,只有2个相同时才使用.这样做,反复上电掉电出错几率小了很多,但是还是会出错.在反复上电100多次时还是出错.另一个解决办法就是使能BOD,写EEPROM时,先检测BOD.网上一位兄弟使用此方法反复上电2000多次才错误一次.
【[ZZ]PIC写内部|[ZZ]PIC写内部 EEPROM 问题探讨】上述方法有两个致命缺陷:1.EEPROM寿命短,EEPROM按最低10万次算,我的项目每2s写一次EEPROM,连续使用2周后EEPROM就可能寿命以尽.2还是有错误,没有100%正确.
解决方案:使用掉电检测,如果成本许可还可以使用法拉电容.电路图如下:
电源电压掉电时,产生一个INT信号,PIC进入外部中断程序:首先将IO清零以降低电流损耗,此时利用电容C1的放电时间将要保存的数据写入EEPROM.470uF D型钽电容可供PIC工作20ms左右,足够写8bety EEPROM.
来自: http://hi.baidu.com/wxg923/blog/item/a12be6c79bbce1d5d000600b.html
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 今天写一些什么
- 小影写在2018九月开学季
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。
- 写给陈羡
- angular2内置管道
- 尖子生的启示(3)
- 写给我20岁时爱过的那个男孩
- 操作系统|[译]从内部了解现代浏览器(1)
- 绘本与写作