[ZLG-MCU] 掉电时,在flash中保存数据问题

[复制链接]
3362|5
 楼主| xiaoxin1986 发表于 2009-9-19 21:42 | 显示全部楼层 |阅读模式
我用的是LPC952来做的系统,掉电时把数据保存在flash中,我也参考了,周工给的掉电例子,可是好象不太管用,上电时读取的值非我掉电时存入的值。是不是flash的读写要有足够的电压才行,还是我保存的数据大了,可只有4个字节呀?! 区别只是例程中给的是在EEPROM中保存数据,我是在flash中保存(LPC952没有EEPROM嘛)。
说明:1117-3.3V后面也加了二极管,电容也加了。
linhai1986 发表于 2009-9-20 12:46 | 显示全部楼层
主要是看系统掉电时从2.7伏到2.4伏所用的时间,要求在5ms以上!
linhai1986 发表于 2009-9-20 12:46 | 显示全部楼层
解决方法如下
1是使能掉电检测功能,当系统电压下降到2.7V时发生中断,建立相关标志后,再及时做出保护数据、关闭外围器件减少系统功耗等的处理。
2使用备用电源;
3在电源端加 大电容;
4用铁电FM等芯片。
 楼主| xiaoxin1986 发表于 2009-9-20 13:10 | 显示全部楼层
谢谢了
leeyr 发表于 2009-9-20 14:33 | 显示全部楼层
关于这种方式的调电保存我当时也研究了很久.对于flash保存数据来说,
首先,它是一个扇区一个扇区来操作的,不管你保存的是一个扇区还是1个字节,其实你是等效的.
其次,在flash保存的时候,最耗电以及最耗时的不是写数据,而是擦数据(每次保存我们都要把扇区擦数据)
因此解决办法有以下两种:
1.如果你的数据在程序运行的时候还要使用,那么你要在电源端加超级电容(比如说0.47F,),以确保在调电的时候能用足够的电源来保存数据,这样子你会有另一个麻烦,你必须给芯片加外部看门狗,否则系统因为电容太大而无法启动,同时还要解决重复保存的问题.
2.如果你的数据只要是上电存一次,在程序运行过程当中用不到这些数据的话,你就可以在取完数据后就把它相应的扇区给擦掉,在调电的时候只写数据,这样,所需要电容的续电会小很多,其本上一个1000uF的电解电容就可以完成保存一个扇区的数据.
如还有问题,可以发我邮箱lyr338@163.com与我交流.呵呵,祝你好运
linhai1986 发表于 2009-9-20 22:10 | 显示全部楼层
学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

176

主题

1487

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部