2.1 LPC实际功耗与数据手册值差异较大原因
在数据手册中,例如在深度掉电模式下单独测量RTC模块时,RTC电流平均标称值为590nA,最大值750nA。
图2
但在仅有VBAT_PMU持续供电的条件下,测量板子电流值比RTC电流标称大数倍。用户想用VBAT_PMU仅给RTC供电,但事实上VBAT_PMU通过内部LDO给RTC,FRO,电源管理和内部模拟部件等提供电源。故测量VBAT_PMU所得的电流值为ALWAYS-ON电源域中多个模块功耗总和,RTC仅为其中之一。下图中标红的模块均由ALWAYS-ON电源域供电。数据手册上的标称值仅为RTC模块消耗的电流,故无法通过测量VBAT_PMU得到RTC的实际电流消耗。
图3
此外,VBAT_PMU 采用 LDO 降压电路,LDO 本身就比 DCDC 更耗电。所以即使关掉VBAT_BAT仅保留VBAT_PMU,我们也很难获得极低的电流。
2.2 LPC重新上电后导致RTC复位的原因
VBAT_DCDC上电产生的POR复位导致RTC上电复位。
根据用户手册,Always On域复位或唤醒时,各模块复位状态如下表。
“Rst”表示对应模块被相应的复位源复位,“Act”表示该模块持续运行不受复位源的影响。
LPC在重新上电时进行POR复位,由表可知POR触发RTC复位。对于RTC,表现在原有计数器数值清空,又恢复到初始化状态。
图4
因此,若希望RTC保持连续的计数状态我提供两种解决方法:
- 改用外挂RTC时钟,给外挂RTC单独供电
- 改用其他低功耗模式(如Power Down)取代关机模式,低功耗模式唤醒不复位RTC
小结: 通过测量VBAT_PMU管脚得到的功耗值由整个Always On电源域产生,并非只是RTC的功耗值,而是Always On电源域所有组件产生的总体功耗,因此实际值总是高于数据手册上关于RTC功耗的标称值。
若想在待机状态下减小功耗,不建议将主电源完全断掉,而是将芯片设置为低功耗模式(如Power Down模式),此方法可以解决RTC的POR复位问题。这不仅适用于LPC55xx系列,对于 LPC43xx、LPC54xx等同样适用,具体请参考对应芯片的使用手册。