1. 功耗说明

1.1 电源管理


MVR 可以提供一个 1.8V 驱动能力 25mA 的电源
LPVR 可以提供一个 1.55V 驱动能力 200uA 的电源

1.2 时钟管理


stm8 的默认时钟是 HSI/8
HSI 如果不关闭会消耗 100uA 的电流

理论情况下低功耗的消耗电流如下表:



2. Low Power 模式

STM8L05xxx, STM8L15xxx, STM8L162xx, STM8AL31xx 和 STM8AL3Lxx 的低功耗模式如下:

  • Wait mode: CPU 时钟停止,外设继续运行
  • Low power run mode:使用低速振荡器(LSI或LSE)从RAM中执行代码;选定的外围设备保持活动状态
  • Low power wait mode:CPU时钟已停止,选定的外设仍保持活动状态
  • Active-halt mode:CPU时钟停止, AWU/RTC(自动唤醒/实时时钟)和IWDG(独立看门狗)可 以继续运行
  • Halt mode:CPU、所有外设都停止

2.1 Wait mode

wait模式分为

  • WFI (wait for interrupt) 模式
  • WFE (wait for event) 模式
    可通过 WFE 寄存器配置等待的事件

1. 当进入 wait 模式时,全局中断将自动启用
2. 在进入 WFI 模式之前,必须至少启用一个中断
3. 在进入 WFE 模式之前,必须至少启用一个事件源
4. 如果在 WFE 模式期间发生中断,则执行相关的中断服务程序。在此程序之后,MCU返回到等待事件模式。


2.2 Low power run mode

  • 这种模式是基于来自RAM的代码执行,使用一个低速时钟源。在使用此模式时,必须从高速时钟源切换到低速时钟源。
  • 主电压调压器(MVR)被关闭,并且低功率电压调压器(LPVR)用于向内部结构提供电压。 闪存由软件以IDDQ模式配置。
  • 这种模式不支持ADC,因为它的时钟源的最小频率必须为1MHz。
  • 在此模式下不允许中断,因为中断向量位于Flash中(它已关闭)。因此,所有的中断都必须被屏蔽。

进入 Low power run mode 的步骤如下

  1. 关闭所有未使用的外围设、振荡器(LSI或LSE除外)和 ADC
  2. 屏蔽所有中断
  3. 进入RAM中执行程序
  4. 系统时钟切换为 LSI 或者 LSE
  5. 置位 FLASH_CR1 寄存器中的 EEPM 位,将 FLASH 配置为 IDDQ 模式
  6. 添加一个软件延迟循环,以确保 Flash / Data EEPROM已关闭
  7. 通过在CLK_REGCSR寄存器中设置 REGOFF 位来配置调节器的超低功率模式 (不要与配置内部参考电压的 PWR_CSR2 中的 ULP 位相混淆)

退出 Low power run mode 的步骤如下

  1. 清除 CLK_REGCSR寄存器中的 REGOFF 位来打开 调节器 ,等待 REGREADY 置位
  2. 清除 FLASH_CR1 寄存器中的 EEPM 位来打开 Flash / Data EEPROM
  3. 可切换时钟
  4. 可打开中断
  5. 可跳转到 FLASH 中执行程序

2.3 Low power wait mode

此模式为执行Low power run mode + wait mode。
即 在 RAM 中执行程序 同时 有WFE 模式
它只能通过 外部或内部 事件 退出,在这种情况下,MCU返回到Low power run mode。
不能使用WFI指令,因为必须在低功率运行模式下禁用中断。


2.4 Halt mode

进入Halt模式

  • Halt 模式通过执行 HALT 指令来进入
  • 在进入 Halt 模式之前,必须处理完挂起的中断,防止刚进入 halt 模式就被立马唤醒
  • 如果置位 CLK_ICKCR 寄存器的 SAHALT 位,MCU 一进入 Active-halt 模式,主稳压器MVR就断电,因此唤醒时间更长。

退出Halt模式

  • 退出 Halt 模式是通过 外部中断 或者设置的 外设中断 来退出的
  • 如果置位 CLK_ICKCR 寄存器的 FHW 标志位,则唤醒后默认时钟为 HSI/8 ,否则默认时钟为进入 Halt 模式之前的时钟(启动比较慢)

2.5 Active-halt mode

  • 基于 halt 模式,但是可以使用一些外设。
  • 在主动停止模式下,主振荡器、CPU和几乎所有的外设都停止。
  • 如果启用,只有LSIRC振荡器或LSE晶体运行才能驱动SWIM、BEEP、IWDG、RTC和LCD。一旦上面的一些外设被启用,用户就可以通过HALT指令进入此模式。

3. 低功耗tips

  • 低功耗模式下没用的外设时钟就关闭
  • 未连接的 IO 口要有稳定的电平输入或输出,禁止浮空输入或输出
  • 适当减小 VDD 来降低功耗
  • 可以通过降频降低功耗
  • 对于等待操作,能睡就睡
  • 按键上的上拉电阻可以大点

GPIO 默认都是 浮空输入 模式,没有用到的IO可以配置为:

  • 上拉输入
  • 输出低或者高的电平

浮空输入会导致施密特触发器频繁触发,增加功耗

STM8L 低功耗模式说明相关推荐

  1. 【STM8L】STM8L之低功耗模式

    本篇博文最后修改时间:2016年12月14日,14:48. 一.简介 本文介绍STM8L系列如何实现:默认低功耗模式,用按键实现唤醒并发射红外信号,随即又进入低功耗模式 . 二.实验平台 编译软件:I ...

  2. STM8L低功耗HALT模式一些总结

    STM8L低功耗HALT模式一些总结 进入HALT注意事项 将未使用到的IO口设置为输出低: 关闭所有用到的外设时钟(如 ADC.USART等): 失能所使用到的外设: 实测进入HALT模式待机约为0 ...

  3. STM8L的低功耗模式的配置

    低功耗可以说是stm8l系列单片机的核心特色了.假设假设我们有一个温度传感器设备,他处于某种很特殊的地方,只能使用电池,而且我们很难去更换,那么低功耗就显得尤为重要.那么继续假设我们这个温度传感器不需 ...

  4. STM8L低功耗调试总结

    STM8L低功耗调试 资料准备 功耗数据目标 实现低功耗 资料准备 在调试STM单片机相关功能时,习惯性的进入到STM官方论坛进行资料下载.调试STM8功耗也不例外,找到STM8L的应用笔记,选择最热 ...

  5. STM32低功耗模式下GPIO如何配置最节能?

    目录 1.将未使用的GPIO 配置为模拟输入模式 2.调节GPIO 速度 3.GPIO不使用时禁用寄存器时钟 4.避免悬空未使用的引脚 STM32低功耗模式下GPIO如何配置最节能,这里总结了一下四点 ...

  6. MSP430低功耗模式-while循环失效

    如下代码实现MSP430G2553单片机两个led交替闪烁 #include <msp430.h> /*** main.c*/ int main(void) {WDTCTL = WDTPW ...

  7. STM32开发 -- 低功耗模式详解(2)

    如需转载请注明出处:https://juyou.blog.csdn.net/article/details/98631012 上一篇文章 STM32开发 – 低功耗模式详解(1) 简单的总结了一下低功 ...

  8. STM32开发 -- 低功耗模式详解(1)

    如需转载请注明出处:https://juyou.blog.csdn.net/article/details/95364296 很多单片机都有低功耗模式,STM32 也不例外.当 CPU 不需继续运行时 ...

  9. MSP430F5529 DriverLib 库函数学习笔记(十三)认识低功耗模式

    目录 硬知识 低功耗模式 MSP430单片机各工作模式下的电流消耗 API 进入低功耗模式 退出低功耗模式 平台:Code Composer Studio 10.3.1 MSP430F5529 Lau ...

  10. 【STM32】【STM32CubeMX】STM32CubeMX的使用之八:低功耗模式及MCU唤醒

    文章目录 0.前言 1.低功耗模式简介 2.CubeMX设置 3.软件设计   下载工程文件:   https://gitee.com/Joseph_Cooper/stm32-cube-mx-stm3 ...

最新文章

  1. AI战略投资全景图:11个行业200多家巨头最爱什么样的AI创业公司?
  2. 睡觉觉睡觉睡觉计算机手机,孩子爱睡觉怎么回事
  3. 你不知道的Node.js性能优化,读了之后水平直线上升
  4. mjExtention
  5. nyoj 55 懒省事的小明 优先队列 multiset 还有暴力
  6. 【转】C#开发PACS医学影像处理系统(三):界面布局之工具栏
  7. 线性映射和线性变换的区别
  8. 贷后风控中逾期案件差异化的分配逻辑
  9. 第 3 章 运行时数据区概述及线程
  10. 程序带来这些新的机会,创业新浪潮才刚开始!
  11. 数据可视化专属配色方案
  12. 宏基笔记本linux系统安装图解,宏基Aspire 4738ZG在linpus linux下安装XP系统教程
  13. 服务器系统排行榜,服务器操作系统排行榜
  14. 是对计算机系统或其他网络设备进行,计算机信息系统是由计算机及其相关的和配套的设备、设施(含网络)构成的,按照一定的应用目标和规则对信息进行()等处理的人机系统。...
  15. Broekett定理):
  16. 计算机病毒中错误的是什么意思,语法错误是什么意思?
  17. win10 游戏全屏闪退桌面解决方法
  18. 合泰lcd的c语言程序,合泰单片机HT66F70A LCD12864液晶屏驱动 汇编和c语言都有
  19. 【Visual C++】游戏开发笔记四十四 浅墨DirectX教程十二 网格模型和X文件使用面面观...
  20. [原创]智能可编程机器人—— Cozmo 入门及开发指南

热门文章

  1. 【Arduino 项目篇】智能窗户控制系统(附录:简单红绿灯制作)
  2. 模糊控制在matlab的实现,模糊控制系统的MATLAB实现
  3. 计算机自己创作游戏,说说自己做的数据库:我不爱玩电脑游戏,自己做数据库自己欣赏...
  4. Python数据挖掘实战——贝叶斯分类算法
  5. python selenium 下载附件通过oss上传
  6. 如何快速提升数据分析能力
  7. 数据分析可视化图表mysql_50个最有价值的数据可视化图表
  8. 串口调试更方便-安卓串口调试工具(附底层USB源码)
  9. Vue开发问题—— mescroll滚动懒加载,以及保留滚动条位置。
  10. 时间序列分析-AR模型