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

[复制链接]
3534|25
 楼主| gongche 发表于 2021-9-7 23:47 | 显示全部楼层 |阅读模式

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


就是把数据保存到EEROM区,可是STM32好像没有EEROM啊。
我就只有一两个数据难道也要外接EEROM吗?
stly 发表于 2021-9-7 23:49 | 显示全部楼层
写到FLASH里
llljh 发表于 2021-9-7 23:52 | 显示全部楼层
写FLASH,外部电压低时给STM一个中断,中断里面写FLASH
dingy 发表于 2021-9-7 23:59 | 显示全部楼层
我建议尽量不要这样处理,这样会容易写坏FLASH.
呐咯密密 发表于 2021-9-8 09:37 | 显示全部楼层
那就写FLASH喽,没楼上说的那么严重的,操作好没问题的
dingy 发表于 2021-9-8 22:04 | 显示全部楼层

我觉得在平时有数据变化的时候更新一次,会好过低电压或者断电瞬间来保存数据.
liuzaiy 发表于 2021-9-8 22:17 | 显示全部楼层
1.数据可以写到内部flash,也可以外接eeprom芯片,少量数据可以用内部flash,数据较多建议用外部eeprom,可靠。另外,如果数据要经常单个修改的话,最好还是外部eeprom,因为内部flash不能单独修改一个位置的数据,要先擦除扇区,然后再写入,不能直接覆盖
2.掉地存储,可以加掉电存储电路,比如大容量电容加在供电端,掉电时关闭所有外设,用电容剩余电量维持单片机写完数据
3.另一个方法就是用铁电存储器,寿命上百亿次,随时写数据。
pengf 发表于 2021-9-8 22:21 | 显示全部楼层
可以外接一个EEPROM和一个掉电检测电路,当系统掉电时,产生一个中断信号,STM32检测到该中断信号后在中断服务程序中将要保存的数据写入EEPROM。在这里重点是掉电检测电路的设计,可以在电源输入端接一个大电容,当系统掉电时可以维持系统继续运行一段时间,以保证掉电中断服务程序的执行。
chenjunt 发表于 2021-9-8 22:23 | 显示全部楼层
有些数据时时更新比如记录停电的时间 来电后再从这个时间继续执行,再比如水表电表时时刻刻都要保存数据,假如1秒存一次,那么一天就要存86400次,flash的擦写次数是10万次 这样一个产品能用几天?
wuhany 发表于 2021-9-8 22:25 | 显示全部楼层

你的这种情况最好用动态均衡的算法来做保存,还有如何控制写数据的时刻机制,那就是你自己来考虑的。
没有绝对的时候合适,看你的项目,你们有自己的需求。
然后在低电压的时候最好也不要进行写数据
zyf部长 发表于 2021-9-8 22:27 | 显示全部楼层

不是能够模拟EEPROM吗?
liuzaiy 发表于 2021-9-8 22:29 | 显示全部楼层
外接EEPROM也可以。
liuzaiy 发表于 2021-9-8 22:31 | 显示全部楼层
我这也有个产品需要断电的时候保存,因为我做的是系统的一个计数器,每天计数就是3万次左右,一年就1000万次左右了,考虑到芯片的存储寿命问题,我采用的方法是,将芯片的VBAT接一个二极管和电容,正常状态下,电容通过VCC经过二极管对电容进行充电,当外部断电后,电容通过VBAT对芯片的RTC进行供电,这时候程序检测到外部断电了,就将当前计数的数据写入芯片的存储,以达到最少次数读写的目的。
 楼主| gongche 发表于 2021-9-8 22:33 | 显示全部楼层
我这现场有和个这样的设备用的就是这种方案,不过两年不到有些板子就断电不能保存数据 了,
liuzaiy 发表于 2021-9-8 22:36 | 显示全部楼层
可以写到flash,也可以外加EEROM
xxrs 发表于 2021-9-8 22:39 | 显示全部楼层
你不知道stm32有后备寄存器和bkp ram么,有电池的话掉电不丢失
zhanghqi 发表于 2021-9-8 22:41 | 显示全部楼层
掉电存储,可以加掉电存储电路
wyjie 发表于 2021-9-8 22:53 | 显示全部楼层
外接普通的EEPROM寿命也是擦写10万次,与单片机内部Flash差不了多少,还是用FRAM靠谱。
 楼主| gongche 发表于 2021-9-8 22:57 | 显示全部楼层

嗯,我再好好缕一缕吧,有了好消息及时通知大家
weifeng90 发表于 2021-9-9 20:38 来自手机 | 显示全部楼层
写到flash去啊,我晕。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

768

主题

9410

帖子

2

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