STM8L 低功耗模式说明
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 的步骤如下:
- 关闭所有未使用的外围设、振荡器(LSI或LSE除外)和 ADC
- 屏蔽所有中断
- 进入RAM中执行程序
- 系统时钟切换为 LSI 或者 LSE
- 置位 FLASH_CR1 寄存器中的 EEPM 位,将 FLASH 配置为 IDDQ 模式
- 添加一个软件延迟循环,以确保 Flash / Data EEPROM已关闭
- 通过在CLK_REGCSR寄存器中设置 REGOFF 位来配置调节器的超低功率模式 (不要与配置内部参考电压的 PWR_CSR2 中的 ULP 位相混淆)
退出 Low power run mode 的步骤如下
- 清除 CLK_REGCSR寄存器中的 REGOFF 位来打开 调节器 ,等待 REGREADY 置位
- 清除 FLASH_CR1 寄存器中的 EEPM 位来打开 Flash / Data EEPROM
- 可切换时钟
- 可打开中断
- 可跳转到 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 低功耗模式说明相关推荐
- 【STM8L】STM8L之低功耗模式
本篇博文最后修改时间:2016年12月14日,14:48. 一.简介 本文介绍STM8L系列如何实现:默认低功耗模式,用按键实现唤醒并发射红外信号,随即又进入低功耗模式 . 二.实验平台 编译软件:I ...
- STM8L低功耗HALT模式一些总结
STM8L低功耗HALT模式一些总结 进入HALT注意事项 将未使用到的IO口设置为输出低: 关闭所有用到的外设时钟(如 ADC.USART等): 失能所使用到的外设: 实测进入HALT模式待机约为0 ...
- STM8L的低功耗模式的配置
低功耗可以说是stm8l系列单片机的核心特色了.假设假设我们有一个温度传感器设备,他处于某种很特殊的地方,只能使用电池,而且我们很难去更换,那么低功耗就显得尤为重要.那么继续假设我们这个温度传感器不需 ...
- STM8L低功耗调试总结
STM8L低功耗调试 资料准备 功耗数据目标 实现低功耗 资料准备 在调试STM单片机相关功能时,习惯性的进入到STM官方论坛进行资料下载.调试STM8功耗也不例外,找到STM8L的应用笔记,选择最热 ...
- STM32低功耗模式下GPIO如何配置最节能?
目录 1.将未使用的GPIO 配置为模拟输入模式 2.调节GPIO 速度 3.GPIO不使用时禁用寄存器时钟 4.避免悬空未使用的引脚 STM32低功耗模式下GPIO如何配置最节能,这里总结了一下四点 ...
- MSP430低功耗模式-while循环失效
如下代码实现MSP430G2553单片机两个led交替闪烁 #include <msp430.h> /*** main.c*/ int main(void) {WDTCTL = WDTPW ...
- STM32开发 -- 低功耗模式详解(2)
如需转载请注明出处:https://juyou.blog.csdn.net/article/details/98631012 上一篇文章 STM32开发 – 低功耗模式详解(1) 简单的总结了一下低功 ...
- STM32开发 -- 低功耗模式详解(1)
如需转载请注明出处:https://juyou.blog.csdn.net/article/details/95364296 很多单片机都有低功耗模式,STM32 也不例外.当 CPU 不需继续运行时 ...
- MSP430F5529 DriverLib 库函数学习笔记(十三)认识低功耗模式
目录 硬知识 低功耗模式 MSP430单片机各工作模式下的电流消耗 API 进入低功耗模式 退出低功耗模式 平台:Code Composer Studio 10.3.1 MSP430F5529 Lau ...
- 【STM32】【STM32CubeMX】STM32CubeMX的使用之八:低功耗模式及MCU唤醒
文章目录 0.前言 1.低功耗模式简介 2.CubeMX设置 3.软件设计 下载工程文件: https://gitee.com/Joseph_Cooper/stm32-cube-mx-stm3 ...
最新文章
- AI战略投资全景图:11个行业200多家巨头最爱什么样的AI创业公司?
- 睡觉觉睡觉睡觉计算机手机,孩子爱睡觉怎么回事
- 你不知道的Node.js性能优化,读了之后水平直线上升
- mjExtention
- nyoj 55 懒省事的小明 优先队列 multiset 还有暴力
- 【转】C#开发PACS医学影像处理系统(三):界面布局之工具栏
- 线性映射和线性变换的区别
- 贷后风控中逾期案件差异化的分配逻辑
- 第 3 章 运行时数据区概述及线程
- 程序带来这些新的机会,创业新浪潮才刚开始!
- 数据可视化专属配色方案
- 宏基笔记本linux系统安装图解,宏基Aspire 4738ZG在linpus linux下安装XP系统教程
- 服务器系统排行榜,服务器操作系统排行榜
- 是对计算机系统或其他网络设备进行,计算机信息系统是由计算机及其相关的和配套的设备、设施(含网络)构成的,按照一定的应用目标和规则对信息进行()等处理的人机系统。...
- Broekett定理):
- 计算机病毒中错误的是什么意思,语法错误是什么意思?
- win10 游戏全屏闪退桌面解决方法
- 合泰lcd的c语言程序,合泰单片机HT66F70A LCD12864液晶屏驱动 汇编和c语言都有
- 【Visual C++】游戏开发笔记四十四 浅墨DirectX教程十二 网格模型和X文件使用面面观...
- [原创]智能可编程机器人—— Cozmo 入门及开发指南
热门文章
- 【Arduino 项目篇】智能窗户控制系统(附录:简单红绿灯制作)
- 模糊控制在matlab的实现,模糊控制系统的MATLAB实现
- 计算机自己创作游戏,说说自己做的数据库:我不爱玩电脑游戏,自己做数据库自己欣赏...
- Python数据挖掘实战——贝叶斯分类算法
- python selenium 下载附件通过oss上传
- 如何快速提升数据分析能力
- 数据分析可视化图表mysql_50个最有价值的数据可视化图表
- 串口调试更方便-安卓串口调试工具(附底层USB源码)
- Vue开发问题—— mescroll滚动懒加载,以及保留滚动条位置。
- 时间序列分析-AR模型