在做的一个项目需要用到外部Flash保存采集的数据,Flash的写次数是有限的,所以先在RAM中存储256个字节(一页)的数据再一次写入Flash中。但是这么做得考虑突然外部掉电的情况发生,有用法拉电容来提供掉电保存数据的方案,可是法拉电容一个不便宜,而且还要一个恒流充电电流(一个三极管可以实现)。看到Flash手册中说明写一页不到1mS,这么短的时间应该没必要用法拉电容,用普通电解电容应该就可以达到目的。外部是12V供电,理论计算一个2200uF电容从12V降到3V,假设输出电流为30mA,则可持续0.66S的时间。器件方面需要使用低压差的3.3V稳压管,且输入电压至少能承受15V以上,我选用的是SPX5205。为了保险起见还是动手做了下实验证明方案是可行的。
实验方案:使用的是STM8L单片机,外设加在一起测量电流30mA左右。编写一个程序,当检测到掉电发生时则立刻保存数据到EEPROM中,写出开机从EEROM中读取数据,对比保存的数据是否是正确的(保存的数据是1,2,3....)。
这是已经准备使用的电路图方案
保存255个字节到EEPROM未能成功,使用了2个470uF电容,单片机板上面已有1117-3.3V,由于有外设用到5V,所以敷铜板上焊的是1117-5V,这两个稳压芯片都不是低压差的,压差至少在1V左右,两个则有2V。STM8L的EEPROM写时间还是比较长的,写一个字节估计要1mS左右。
再增加两个470uF的电容还是未能成功
把数据改成50字节则可以保存成功,用万用表电流档测量电流为33.3mA
即使用2个470uF也可以成功
两个470uF电容的电压下降情况
4个470uF电容的电压下降情况
从以上实验来看使用电解电容也是可以到达保存数据的目的的。
|