打印
[技术讨论]

突然断电了,数据来不及保存到flash,你有什么绝招?

[复制链接]
楼主: dffzh
手机看帖
扫描二维码
随时随地手机跟帖
21
dffzh|  楼主 | 2025-5-27 08:53 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
coody 发表于 2025-5-26 19:30
掉电检测,保存FLASH,常规操作。
用MCU内置的电压检测还是外置电路电压检测比较好?

使用特权

评论回复
22
dffzh|  楼主 | 2025-5-27 08:54 | 只看该作者
丙丁先生 发表于 2025-5-26 19:04
虽然断电可能导致数据丢失,但通过硬件保护、软件自动保存、日志记录以及备份等措施...    https://bbs.21i ...
还写了帖子,可以的,谢谢!

使用特权

评论回复
23
xch| | 2025-5-27 09:50 | 只看该作者
dffzh 发表于 2025-5-27 08:49
24VDC供电,存到外置EEPROM芯片和MCU内部flash,在设计上会有什么区别吗?

问存储类型是需要算一下保存需要耗电多少,需要多长时间存储。不同存储器需求不一样。
问供电,要算外部电源切断到MCU供电电压跌落之间过渡时间。


使用特权

评论回复
24
xch| | 2025-5-27 09:54 | 只看该作者
另外要做好电源抗干扰措施。否则会经常“狼来了“,或者掉电时MCU被干扰跑飞,没完成存储进程而不是来不及存。

使用特权

评论回复
25
xionghaoyun| | 2025-5-27 10:05 | 只看该作者
电容给大 电阻分压ADC采集输入电压

使用特权

评论回复
26
xionghaoyun| | 2025-5-27 10:06 | 只看该作者
接外置供电=纽扣电阻

使用特权

评论回复
27
dffzh|  楼主 | 2025-5-27 10:39 | 只看该作者
xch 发表于 2025-5-27 09:54
另外要做好电源抗干扰措施。否则会经常“狼来了“,或者掉电时MCU被干扰跑飞,没完成存储进程而不是来不及 ...
确实,防止误写

使用特权

评论回复
28
dffzh|  楼主 | 2025-5-27 10:40 | 只看该作者
本帖最后由 dffzh 于 2025-5-27 10:42 编辑
xch 发表于 2025-5-27 09:50
问存储类型是需要算一下保存需要耗电多少,需要多长时间存储。不同存储器需求不一样。
问供电,要算外部 ...
细节把控,EEPROM和flash读写速度确实也不一样;感谢!

使用特权

评论回复
29
zjk103| | 2025-5-27 10:42 | 只看该作者
增大电源端的电容,设定较高的掉电电压门限,掉电中断优先级设定最高,增加电池或者法拉电容

使用特权

评论回复
30
dffzh|  楼主 | 2025-5-27 10:43 | 只看该作者
xionghaoyun 发表于 2025-5-27 10:05
电容给大 电阻分压ADC采集输入电压
外部电压检测是不是比MCU内部更加可靠?内部的触发阈值不太好界定?

使用特权

评论回复
评论
dffzh 2025-5-27 14:37 回复TA
@xionghaoyun :好的,所以还是用数字量电平+消抖的方式来处理会比较好。 
xionghaoyun 2025-5-27 14:25 回复TA
是的 内部参加电压掉了读的ADC也是不准(就是单片机电源不稳 ADC电压不稳的) 
31
coody| | 2025-5-27 13:47 | 只看该作者
本帖最后由 coody 于 2025-5-27 13:48 编辑
dffzh 发表于 2025-5-27 08:53
用MCU内置的电压检测还是外置电路电压检测比较好?

响应最迅速的是检测220V AC,使用双向输入的光耦来检测,一般1ms内就知道断电了。
其次是DC24V、DC12V这种输入的电压端,使用比较器(可以是MCU自带的模拟比较器、运放)检测,输入24V则降到15V视为断电,输入12V则降到9V视为断电。再次是MCU内部检测VCC低压保存,这个风险最大,最不从容。

使用特权

评论回复
32
dffzh|  楼主 | 2025-5-27 14:07 | 只看该作者
coody 发表于 2025-5-27 13:47
响应最迅速的是检测220V AC,使用双向输入的光耦来检测,一般1ms内就知道断电了。
其次是DC24V、DC12V这种 ...
学习了,所以用220V源端电压来检测是否掉电是比较好的方式了,又快又准;
确实,使用MCU内部电压检测,阈值选择比较难,设得太低,触发时留给你的时间可能已经不够了;设得太高,可能在正常工作电压波动下就误触发。

使用特权

评论回复
33
飞思啦| | 2025-5-27 16:24 | 只看该作者
大电容给mcu,低电压报警时,写flash

使用特权

评论回复
34
丙丁先生| | 2025-5-28 07:01 | 只看该作者
dffzh 发表于 2025-5-27 08:53
用MCU内置的电压检测还是外置电路电压检测比较好?

用MCU内置电压比较器。

使用特权

评论回复
35
丙丁先生| | 2025-5-28 07:04 | 只看该作者
dffzh 发表于 2025-5-27 08:54
还写了帖子,可以的,谢谢!

字少了不全面,多了又影响楼层美观。

使用特权

评论回复
36
dami| | 2025-5-28 09:16 | 只看该作者
小设备加个电容就行了。但掉电电路要能及时检测到掉电了并产生中断,然后电容供电去保存数据。

使用特权

评论回复
37
dffzh|  楼主 | 2025-5-28 10:56 | 只看该作者
丙丁先生 发表于 2025-5-28 07:04
字少了不全面,多了又影响楼层美观。

任何时候,最难把握的就是“度”

使用特权

评论回复
38
dffzh|  楼主 | 2025-5-28 10:58 | 只看该作者
dami 发表于 2025-5-28 09:16
小设备加个电容就行了。但掉电电路要能及时检测到掉电了并产生中断,然后电容供电去保存数据。 ...
能够稳定、快速且无误地判断出掉电信号,确实是这种功能实现的最重要环节。

使用特权

评论回复
39
dffzh|  楼主 | 2025-5-28 11:01 | 只看该作者
看到一位热心网友回复了使用FRAM的单片机,查了FRAM资料:FRAM(Ferroelectric Random Access Memory,铁电随机存取存储器)是一种结合了传统RAM(如DRAM、SRAM)和非易失性存储器(如Flash、EEPROM)特性的独特存储器。下面是不同存储器之间的对比信息:



使用特权

评论回复
评论
dffzh 2025-5-28 13:41 回复TA
@William1994 :是的哦,EEPROM的耐久性通常在100,000到1,000,000次写入操作之间。 
William1994 2025-5-28 13:27 回复TA
EEPROM的耐久性是10的六次方,铁电只有TI一家做。等三十年后清华的RRAM出来吧。 Flash不擦只写可以做到us级别。 
40
rgjinxuan| | 2025-5-28 13:15 | 只看该作者
LVD  检测

使用特权

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

本版积分规则