STM8L 低功耗模式说明

1 篇文章 0 订阅

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可以配置为:

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

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

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值