使用 华大的单片机
HC32L110
开发,记录低功耗开发过程
注意:调用库函数 __WFI()
之后,只是让使得单片机的内核进入了睡眠,并不是完全进入了低功耗,想完全利用低功耗还需要配置以下几点。
1. 关闭外设时钟
进入睡眠前把不需要的外设时钟手动关掉,唤醒之后再手动打开。
注意
- 看门狗WDT开了就关不了,睡眠下也是开着,无法喂狗会导致复位。睡眠使用看门狗建议用PCA模块4的模拟看门狗,睡眠下可以关闭
- 配置时钟为内部高速时钟时,若使用了PLL倍频,则进睡眠前需要把PLL关掉,不然功耗也会偏高
2. 配置GPIO电平
- 外围电路也会耗电:
- IO外部有硬件电路的:如 IO 硬件电路外部上拉电阻,软件配置 IO 输出低电平时,就会有电流流过单片机,带来了功耗的升高
- 硬件外部上拉的:配置为输入上拉
- 硬件接LED灯的:关闭LED灯
- 硬件外部下拉:配置为输入下拉、输出低电平均可
- IO 悬空:悬空的IO口需要根据外围硬件电路决定进入睡眠如何设置电平,原则是电平平衡,
- 悬空引脚:建议配置为输入下拉/上拉 (根据不同的MCU定)
- IO外部有硬件电路的:如 IO 硬件电路外部上拉电阻,软件配置 IO 输出低电平时,就会有电流流过单片机,带来了功耗的升高
3.内核进入睡眠
处理完前面的东西后,最后一步就是执行Lpm_GotoDeepSleep()进入睡眠。
4. 配置总结
1.把一些未引出的IO配置成开漏模式或者输入模式。具体配置根据外围电路决定。
2.串口的TX
在休眠状态下是输出状态,会产生损耗。 在休眠下把串口配置成输入,唤醒后再转换成串口模式。
3.外围设备再休眠下不需要工作的通过硬件方式控制其关闭电源。