1. 功耗说明
1.1 电源管理
[size=0.83em]4a191266299d47f58cf45330dbca18e4.png (35.3 KB, 下载次数: 0) 下载附件 [color=rgb(153, 153, 153) !important]昨天 21:27 上传
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可以配置为:
上拉输入
输出低或者高的电平
浮空输入会导致施密特触发器频繁触发,增加功耗
|