I 问题现象
测试中发现,再产品不加电池/电池欠电时,可能存在掉电后,再上电存储读取失败的现象。
II问题分析
掉电部分硬件设计如下:
电源采用1W变压器,分2个绕组,1个绕组给CPU,一个绕组给RS485通讯,这是主流设计。CPU有电池供电,具备停电唤醒功能。
一、故障复现:
复现条件:电池断开 掉电I2C波特率 100K ,加电流出脉冲走字。 掉2次,错误6次,一次掉电产生3次EEPROM读取错误。
如下:
经检查代码,掉电存储的内容一次如下:
系统状态 44BYTE
剩余金额 20BYTE
总尖峰平谷电能 124BYTE
以及其他可能需要存的。
掉电事件记录。(最后保存内容)
故障复现原理:存储内容未发生变化时,即使存储失败,也不会产生上电EEPROM读取错误。因此需要发生数据改变才能复现。
二、故障分析:
1、通过调整电容,使得仅靠电容供电也能满足掉电存储要求。掉电设计计算:
C(F)*U(V)=I(A)*T(S)
上述公式中,已知C,可测出U跟I,可计算出T。
测量I
经过测试,掉电存储时间需要262ms。(有没有脉冲,时间一样)
2.68V 尚可正常工作(右图)。产生压降是因为回路串100欧姆,用来测掉电电流。
短接串联电阻,再测试掉电及电源切换电压。掉电电池供电电压3.16V。
手册关于切换电压的描述,跟实测2.9V相符。
由上可计算出掉电功耗:0.5V/100欧姆=5mA。
延长电容时间需要降低功耗:
掉电后关闭EMU模块:再测功耗,(0.4-0.16)/100=2mA左右。
降低约一半功耗。
计算U
掉电阈值配置为0.9V。
CPU正常最低工作电压:LVD设置为2.7V
根据电路设计分压值,计算得到B=0.9V时,A为5V。
0.91220/220=4.99V。
掉电电压只需要保证80%Un 正常工作即可,显然5V偏低。
实测80%电压下 A点电压>8V,如下图:
按8V掉电计算BR22取值 0.9/7.11000K = 128K
按7V掉电计算BR22取值 0.9/6.1*1000K = 147K 取值150K 按7V测算。
ji
综合电阻种类,BR24改为100K,BR22改为15K。A点按7V计算。A点电压抬高2V ,导致电容上电荷支持的时间增加理论值计算如下:
470*10-6 2V=210-3 *t t=470ms。足够掉电存储用时。
实测掉电存储波形:
所有数据存储完毕后,还有100ms左右余量 3.3V才开始下跌。符合设计要求。
经测试,不加电池,掉电记录每次均能存储成功。如下图
III、解决办法
1、检测到掉电后,立即进入低功耗模式,延长电容使用时间。
2、掉电检测电压阈值应该低于80%额定电压,取最大值。尽可能延长电容使用时间。
IV、总结建议
按新设计,重新进行掉电相关测试,确保工作稳定可靠。