博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
STM8L151G6U6 之实现低功耗RTC唤醒
阅读量:4135 次
发布时间:2019-05-25

本文共 1672 字,大约阅读时间需要 5 分钟。

STM8L151G6U6 之实现低功耗

所谓低功耗产品,一般来讲就是在大多数时间让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。好了

M8L151G6U6,该MCU是STM8L超低功耗系列,与152系列相比只是少了LCD的功能,官方手册介绍的各个低功耗模式的功耗如下:

其低功耗性能还是很不错的,在本文中是基于活跃停机低功耗模式来测试的。

要实现STM8L151G6的低功耗,主要可以注意以下几点:

  1. 不需要用到的外设一律不使能外设时钟,对于临时使用的外设,只需在使用时临时打开即可,使用完毕关闭时钟

2.合理配置GPIO口的状态,对于没有使用到的GPIO,可将其设为上拉输出低,GPIO_Init(GPIOF, GPIO_Pin_0, GPIO_Mode_Out_PP_Low_Slow);对于使用到的GPIO口,则要看你外电路的接法,如用一个GPIO低电平来控制LED亮灯,则要实现低功耗时,需把GPIO口置高;另一种情况是对于使用到的中断管脚,将该管脚上拉时,当发生中断电路接地时,该电阻则形成回路,有一定的消耗电流,可选用较大的电阻做外部上拉电阻,则大大减低电流。

  1. 最重要的一点,由于STM8L151G6有电源管理部分,故必须在进入睡眠之前使能低功耗模式,具体库函数为:

PWR_UltraLowPowerCmd(ENABLE);

  1. STM8L系列的MCU数据手册表明工作电压可低到1.65V,当要实现这个功能是有要求的,必须勾选选项字节中的BOR_ON Brownout reset OFF,不启用BOR,这个可以在烧录软件中选择,这个在参考手册中有下面的描述

In low density devices, medium density devices and in the medium+ and high density

devices operating from 1.8V to 3.6V (device part numbers without “D” suffix), the BOR starts
to work above the POR threshold (see Section 6.3: Brownout reset (BOR) on page 66). To
ensure the minimum operating voltage (1.65 V), the BOR should be configured to BOR
Level 0.

我根据上述几点,对自己的项目进行测试,使用活跃停机模式,RTC 30s自动唤醒,最后测试的休眠电流能做到4.7uA。

RTC唤醒休眠后 要清除唤醒标志。

————————————————
版权声明:本文为CSDN博主「jnu_fangzebin」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jnu_fangzebin/article/details/47261099

你可能感兴趣的文章
【视频教程】Javascript ES6 教程27—ES6 构建一个Promise
查看>>
【5分钟代码练习】01—导航栏鼠标悬停效果的实现
查看>>
127个超级实用的JavaScript 代码片段,你千万要收藏好(中)
查看>>
8种ES6中扩展运算符的用法
查看>>
【视频教程】Javascript ES6 教程28—ES6 Promise 实例应用
查看>>
127个超级实用的JavaScript 代码片段,你千万要收藏好(下)
查看>>
【web素材】03-24款后台管理系统网站模板
查看>>
Flex 布局教程:语法篇
查看>>
年薪50万+的90后程序员都经历了什么?
查看>>
2019年哪些外快收入可达到2万以上?
查看>>
【JavaScript 教程】标准库—Date 对象
查看>>
前阿里手淘前端负责人@winter:前端人如何保持竞争力?
查看>>
【JavaScript 教程】面向对象编程——实例对象与 new 命令
查看>>
我在网易做了6年前端,想给求职者4条建议
查看>>
SQL1015N The database is in an inconsistent state. SQLSTATE=55025
查看>>
RQP-DEF-0177
查看>>
Linux查看mac地址
查看>>
Linux修改ip
查看>>
MySQL字段类型的选择与MySQL的查询效率
查看>>
Java的Properties配置文件用法【续】
查看>>