本帖最后由 Ansersion 于 2019-10-8 11:31 编辑
前两天家里的挂钟没电了,一想到2节5号电池就能让挂钟跑三四年,不禁感慨低功耗真是省心。话说HC32L136的定位是超低功耗MCU,运用开发板上现有的硬件,正好可以实现一个电子钟,如果用2节电池也能跑个一两年岂不美滋滋?
系统描述: 整体描述如下图
系统共有2种状态: 低功耗状态和非低功耗状态(IsLpmFlagSet()判断状态)。
低功耗状态下长按USER键可以进入非低功耗状态(LeaveLpm())离开低功耗模式);非低功耗状态下5秒内无任何按键操作可以进入低功耗状态(StartLpm())。
系统的逻辑流程有2条: RTC中断运行流程(RtcCycCb())和main程序运行流程(main()) RTC中断每秒发生一次,主要功能是更新LCD显示时间和检测长按事件; main程序只有在非低功耗状态下才会运行,主要功能是检测按键事件更新RTC时分。
功耗测试: 测试使用了两节7号碳性电池供电,环境温度25℃(参考空调遥控器),万用表调制uA档。 如果开启设置时分功能(非低功耗状态),电流在5000uA左右; 如果在低功耗状态下,测试五分钟,电流从800uA上升至1400uA,重启后电流也不回降,这里猜测可能是温度上升导致电流升高。
当今市场上一般的5号碱性电池的容量大概在2000mAH左右,如果按照1400uA的功耗来计算,我们的电子钟大概可以运行2个月。如果硬件上做一些调整应该能有更好的功耗表现,比如去掉那个红色的电源指示灯,调整LCD的GPIO端口,从而把空闲的GPIO关闭等等,硬件相关此处就不做深入研究了。
系统运行效果图如下(设置时间) 注意事项: 由于该电子钟程序使用了低功耗模式,根据《HC32L13_HC32F03系列的MCU开发工具用户手册Rev1.0》8.2节低功耗模式无法进行程序烧写,烧写时会出现如下错误。
如果要烧写程序请长按USER按键使LCD数字闪烁,从而退出低功耗模式再进行烧写。
最后,本程序中关于LCD显示部分多数来源于 在此感谢WoodData分享的例程。
絮叨至此,但求明细。
|