如果板子上挂了一块sd卡,系统如果掉电了,如何保证sd卡不损坏
如果板子上面有sd 卡,系统如果掉电了,怎么保证sd卡不被损坏?
也就是保证想要写入sd卡的数据的正确性。
写入过程中断电?
把这一部分的供电分割出来,加大电容,再不行上超级电容,再不行上电池
然后MCU加上掉电检测,如果掉电,优先完成现有写入操作
SD卡自身的损坏,应该是电源部分设计不合理,或者静电保护不够。
这种情况应该很少的。
数据的损坏,按楼上说的加大电容然后 MCU加上掉电检测,在完全没电前
完成该完成的工作。
硬件不可能导致损坏,除非电路设计的特别的烂。
软件基本就是你说的这种了,另外如果不怕丢数据的话用EXT4然后开机fsck一下应该也
就够了,电容也用不到。
整个电路只有 “mcu” + “IIC接口加速度传感器” + ”spi flash” + “12-5V芯片” + “3个led灯”。
这样的电路怎么用大电容来保证掉电之后优先将数据写到spi flash中,用多大的电容?如何将mcu和flash从整个电路中分割出来?
系统输入为12V。
整个电路只有 “mcu” + “IIC接口加速度传感器” + ”spi flash” + “12-5V芯片” + “3个led灯”。
问题:
1:用多大的电容?
2:如何将mcu和flash从整个电路中分割出来?
串联一个低压差的肖特基二极管
算一下mcu+sd卡总共耗电多少
LED什么的可以除外
然后算一下掉电之后需要维持多久,mcu供电电压降到多少就停止工作,根据这个算电容的容量
够详细了么?
有一种金质电容,容量大,缓释
之前做过一个板子
arm7+sd卡+fat+128*64led
需要掉电瞬间保存数据
方法是,电源硬狗,电压低于某值中断
mcu收到中断,关led,保存数据退出。
用的法拉电容,效果不错。
是不是电源用错了,确定存储器是兼容5V?不应该坏掉啊
如果只是数据错误,在保存数据的结构上多花点功夫。
即使做了掉电检测也得验证数据正确性。
是保存什么数据呢?
本身在实时保存接收串行过来的数据
需要在掉电时将之前收到的数据保存
同时记录掉电时间
这东西做细真是考虑不少东西,如果正在保存数据来中断,还得加判断。
如果在中断中保存数据,再来掉电中断还得考虑优先级和目前写flash的状态
是不是有这些极端情况?我很少增加这些软件成本和测试bug成本
基本上就是判断保存的数据是否有效。懒啊
反正就是大概估一下最坏情况下总共需要多少毫秒的延迟供电时间,然后按这个数的八倍、十倍余量选个大电容,差不多了~
非常感谢提供思路!
你说的电源硬狗,是用什么芯片实现的?还是用自己搭的硬件电路?
如果是硬件电路的话,我的想法是用:比较器+电阻分压。
比较器端输入一端为法拉电容之前经过分压的电源输入电压,另一段为法拉电容之后经过电阻分压的电压。
大神,有何高见?
这个二极管的作用是?