最近搞一个低功耗的项目,用到STM8L的芯片。低功耗这玩意儿,MCU是一部分,硬件也是需要仔细考虑的。 所谓低功耗产品,一般来讲就是在大多数时间让MCU进入睡眠模式,在有数据更新时唤醒,将数据显示或者发送上报。对于中断类型的,可以采用中断直接唤醒MCU的方式,而对于温湿度之类的传感器,只能采用定时唤醒,然后采样并比较判断当前的值是否发送变化,然后显示或者上报。 如果使用了显示屏,WiFi、蓝牙等模块,则需要在睡眠时将其断电。硬件上需要升压电路,否则有些外设在低电压时驱不起来。 STM8L本身在halt模式下消耗电流为350nA,在active-halt with RTC模式下为1.3uA。 最先的版本测试电流达到了1mA以上,草,赶紧折腾了一下,发现在进低功耗之前需要将相关的ADC、TIMER等关闭,此时达到了70uA左右,折腾,发现部分使用到的IO口需要根据硬件进行相关的配置,这样可以达到20uA左右,再折腾,发现没有连到电路的IO设置为输出低电平,又可以降低,这次是2.4uA,,,再折腾,发现PWR_UltraLowPowerCmd(ENABLE);需要开启,这次到了0.4uA。好了好了,不搞了。这玩意儿也是无底洞啊我去,花了我几天时间。
|