文件系统损坏--硬件层分析

从硬件角度,我们主要看DDR、flash以及主控A5D3在不同环境下的工作电压

上电过程测试

reboot过程

        应用程序喂狗情况下,如系统复位或者升级复位时,停止喂狗到重新喂狗,中间间隔时间为35.4s,非常临近超时时间。

        因只靠应用程序喂狗的情况下,每次复位或升级都会触发看门狗复位,所以在开机启动脚本里面加了“喂狗”,电平逻辑为“拉高再拉低”,但因设置gpio模式为输出时,默认电平为低,所以实际整个逻辑是“拉低;拉高;拉低”,中间存在上升沿,符合喂狗标准

        复位时,从停止喂狗到脚本喂狗,时间为25s左右,在脚本喂狗生效的情况下不会触发看门狗复位机制,脚本喂狗不生效的情况下,90%以上几率会触发看门狗复位机制

断电过程测试

  • 断电前

对应X1之前,超级电容电压约4.8V,flash工作电压约3.3V,DDR工作电压约1.7V。满足正常工作电压范围

  • 断电后

对应X1~X2过程,超级电容电压缓慢下降到约为4.2V,此时电压还满足A5/Flash/DDR正常工作。

  • 稳定后

超级电容电压稳定在4.2V,DDR电压直线掉为0,A5/Flash电压直线掉落到1V,以后成坡度下降,直至0V。这里的掉落是应用程序在检测掉电2S后,会主动断开超级电容的供电。X1~X2的时间差2.3S,考虑线程执行掉电检测的间隔,基本匹配。

  • 超级电容电压

电压成坡度下降,直至约为2.3V停止。

  • A5/Flash电压

电压成坡度下降,直至1.8V,低于正常工作电压后,直线下降到0V。

  • DDR电压

电压成坡度下降,直至A5停止工作后,直线下降到0V。

  • 看门狗喂狗信号

在喂狗信号未输出时,说明应用程序已经停止运行,(A5D3停止工作),此时电压如

  • 超级电容的工作电压:2.8V
  • DDR的工作电压:1.6V 低于正常工作范围
  • NandFlash的工作电压:2.5V 低于正常工作电压范围
  • A5的工作电压:2.5V

结论

        超级电容充满电压为5v,在断开24v供电后,由超级电容为设备供电;

        超级电容供电过程中,电压低于3.3v时,flash和A5工作电压低于正常工作电压,超级电容电压低于3.7v时,DDR工作电压低于正常工作电压,在这个过程中仍然可能会操作Flash,可能会出现数据存储错乱。

        所以,在断开24V电源时,需要检测超级电容电量,在决定是否需要超级电容供电,在供电过程停止对flash操作,然后再断开超级电容。如果电量不足,则直接断开超级电容供电,防止DDR/Flash在不正常工作电压下工作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值