打印
[ZLG-MCU]

掉电时,在flash中保存数据问题

[复制链接]
2005|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 | 只看该作者
谢谢了

使用特权

评论回复
5
leeyr| | 2009-9-20 14:33 | 只看该作者
关于这种方式的调电保存我当时也研究了很久.对于flash保存数据来说,
首先,它是一个扇区一个扇区来操作的,不管你保存的是一个扇区还是1个字节,其实你是等效的.
其次,在flash保存的时候,最耗电以及最耗时的不是写数据,而是擦数据(每次保存我们都要把扇区擦数据)
因此解决办法有以下两种:
1.如果你的数据在程序运行的时候还要使用,那么你要在电源端加超级电容(比如说0.47F,),以确保在调电的时候能用足够的电源来保存数据,这样子你会有另一个麻烦,你必须给芯片加外部看门狗,否则系统因为电容太大而无法启动,同时还要解决重复保存的问题.
2.如果你的数据只要是上电存一次,在程序运行过程当中用不到这些数据的话,你就可以在取完数据后就把它相应的扇区给擦掉,在调电的时候只写数据,这样,所需要电容的续电会小很多,其本上一个1000uF的电解电容就可以完成保存一个扇区的数据.
如还有问题,可以发我邮箱lyr338@163.com与我交流.呵呵,祝你好运

使用特权

评论回复
6
linhai1986| | 2009-9-20 22:10 | 只看该作者
学习了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

176

主题

1487

帖子

0

粉丝