[STM32F1] STM32怎么断电保存数据

[复制链接]
 楼主| xiashengcheng 发表于 2015-12-11 20:24 | 显示全部楼层 |阅读模式
小弟初学STM32,C也是初学的,中专生一个,。。。
C语言也不精,书都还没完全看懂



STM32数据断电后怎么才能保存。


就是把数据保存到EEROM区,可是STM32好像没有EEROM啊。
我就只有一两个数据难道也要外接EEROM吗?
Thor9 发表于 2015-12-11 21:41 | 显示全部楼层
写到FLASH里
zxzxzx123211f 发表于 2015-12-11 23:40 | 显示全部楼层
写FLASH,外部电压低时给STM一个中断,中断里面写FLASH
lanjackg2003 发表于 2015-12-12 14:08 | 显示全部楼层
zxzxzx123211f 发表于 2015-12-11 23:40
写FLASH,外部电压低时给STM一个中断,中断里面写FLASH

我建议尽量不要这样处理,这样会容易写坏FLASH.
我觉得在平时有数据变化的时候更新一次,会好过低电压或者断电瞬间来保存数据.

评论

对的  发表于 2018-2-3 11:35
921665973 发表于 2015-12-12 14:16 | 显示全部楼层
1.数据可以写到内部flash,也可以外接eeprom芯片,少量数据可以用内部flash,数据较多建议用外部eeprom,可靠。另外,如果数据要经常单个修改的话,最好还是外部eeprom,因为内部flash不能单独修改一个位置的数据,要先擦除扇区,然后再写入,不能直接覆盖
2.掉地存储,可以加掉电存储电路,比如大容量电容加在供电端,掉电时关闭所有外设,用电容剩余电量维持单片机写完数据
3.另一个方法就是用铁电存储器,寿命上百亿次,随时写数据。
zhangbin_abc 发表于 2015-12-13 13:55 | 显示全部楼层
可以外接一个EEPROM和一个掉电检测电路,当系统掉电时,产生一个中断信号,STM32检测到该中断信号后在中断服务程序中将要保存的数据写入EEPROM。在这里重点是掉电检测电路的设计,可以在电源输入端接一个大电容,当系统掉电时可以维持系统继续运行一段时间,以保证掉电中断服务程序的执行。

评论

赞,,,一般在电源都会加个电容  发表于 2018-2-3 11:36
干得漂亮 发表于 2017-6-10 15:17 | 显示全部楼层
lanjackg2003 发表于 2015-12-12 14:08
我建议尽量不要这样处理,这样会容易写坏FLASH.
我觉得在平时有数据变化的时候更新一次,会好过低电压或者 ...

有些数据时时更新比如记录停电的时间 来电后再从这个时间继续执行,再比如水表电表时时刻刻都要保存数据,假如1秒存一次,那么一天就要存86400次,flash的擦写次数是10万次 这样一个产品能用几天?
lanjackg2003 发表于 2017-9-8 16:31 | 显示全部楼层
干得漂亮 发表于 2017-6-10 15:17
有些数据时时更新比如记录停电的时间 来电后再从这个时间继续执行,再比如水表电表时时刻刻都要保存数据, ...

你的这种情况最好用动态均衡的算法来做保存,还有如何控制写数据的时刻机制,那就是你自己来考虑的。
没有绝对的时候合适,看你的项目,你们有自己的需求。
然后在低电压的时候最好也不要进行写数据
sdCAD 发表于 2017-9-8 16:46 | 显示全部楼层
不是能够模拟EEPROM吗?
sdCAD 发表于 2017-9-8 16:48 | 显示全部楼层
外接EEPROM也可以。
一路向北lm 发表于 2017-9-8 19:41 | 显示全部楼层
不行的话就AT24c02
zhouyucheng 发表于 2018-2-3 11:02 | 显示全部楼层
我这也有个产品需要断电的时候保存,因为我做的是系统的一个计数器,每天计数就是3万次左右,一年就1000万次左右了,考虑到芯片的存储寿命问题,我采用的方法是,将芯片的VBAT接一个二极管和电容,正常状态下,电容通过VCC经过二极管对电容进行充电,当外部断电后,电容通过VBAT对芯片的RTC进行供电,这时候程序检测到外部断电了,就将当前计数的数据写入芯片的存储,以达到最少次数读写的目的。

评论

方法是可以,但是要考虑电容的漏电流和容量,存储时间没那么长。 其实最简单的办法就是外扩一片小容量的铁电存储器。  发表于 2018-3-26 08:20
 楼主| xiashengcheng 发表于 2018-3-25 22:12 | 显示全部楼层
zhouyucheng 发表于 2018-2-3 11:02
我这也有个产品需要断电的时候保存,因为我做的是系统的一个计数器,每天计数就是3万次左右,一年就1000万 ...

我这现场有和个这样的设备用的就是这种方案,不过两年不到有些板子就断电不能保存数据 了,
CaLipton 发表于 2018-3-28 18:53 | 显示全部楼层
就是把数据保存到EEROM区,可是STM32好像没有EEROM啊

可以写到flash,也可以外加EEROM
song19881218 发表于 2018-3-28 19:25 | 显示全部楼层
你不知道stm32有后备寄存器和bkp ram么,有电池的话掉电不丢失
拉克丝 发表于 2018-3-30 21:12 | 显示全部楼层
掉电存储,可以加掉电存储电路
sxcem 发表于 2022-3-30 07:21 | 显示全部楼层
真实产品 最靠谱的是 增加一个锂电池 或者超级电容  检测到掉电 转换为电池供电   锂电池顺路设计上充电电路 现在充电芯片和18650类似电池 价格已经极低 ...
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

107

帖子

1

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