打印

[其他] 三、HC32L136开发板:低功耗电子钟

[复制链接]
76|3
跳转到指定楼层
楼主
本帖最后由 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分享的例程。



絮叨至此,但求明细。



clock.zip

3.01 MB, 下载次数: 4

低功耗电子钟Keil工程

沙发
| 2019-10-8 11:29 | 只看该作者
电子钟,使用LCD显示,MCU平均功耗低于1.0uA (包括WDT,BOR,RTC,X32K,LCD都打开的情况下),加上不同LCD pannel,整体在3uA ~ 5uA 左右。
板凳
?楼主 | 2019-10-8 11:43 | 只看该作者
liaotian001 发表于 2019-10-8 11:29
电子钟,使用LCD显示,MCU平均功耗低于1.0uA (包括WDT,BOR,RTC,X32K,LCD都打开的情况下),加上不同LCD pann ...

低功耗代码直接使用的样例程序(HC32L136_SDK\驱动库及样例\HC32L136_DDL_Rev1.1.0\HC32L136_DDL\example\rtc\rtc_int_lpm),除了没有拉低GPIO口之外,其余配置都是一样的。更多优化方案,还望指点一二。
地板
| 2019-10-8 16:16 | 只看该作者
楼主如果是电池接的Vcc和GND,万用表串在其中测的功耗的话,至少要把板子上的PWR LED灯拿掉,另外,底下的CMSIS-DAP板子也要掰断,不然这些都会额外消耗功耗
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表