云途MCU低功耗系统介绍
GaoSheng Lv4

YTM32 MCU的电源管理体系中,按照功耗从高向低排列,包括:正常模式(Normal/Active)、休眠模式(Sleep)、深度休眠模式(DeepSleep)、待机模式(StandBy)及掉电模式(PowerDown)。

通过阅POWER_SYS_SwitchToLowPowerMode函数可以知道,切换功耗模式都是首先对SCB_SCR寄存器进行配置,然后对PCU->CTRL里面的PCU_CTRL_RPMEN_MASK和PCU_CTRL_STANDBYEN_MASK进行相应的配置来进入对应的功耗模式
图片1

图片2

其中SleepOnExit——从中断服务例程返回后立即睡眠。

  • 当 SLEEPONEXIT 被设置为 1 时,处理器在退出异常处理程序后会自动进入睡眠模式。
  • 当 SLEEPONEXIT 被清除为 0 时,处理器退出异常处理程序后不会进入睡眠模式。
    这样一来,处理器的所有工作就只是响应中断了,其它时间都在睡眠。在真实的应用程序里,通常只有在程序很简单的电池供电设备中,才会用此功能。如欲使用此特性,需要把系统控制寄存器中的 SLEEPONEXIT 置位。
    图片3

五种功耗模式的特征

  1. 正常模式(Normal)
    供电状态:高压调压器全功率工作,所有外设模块(除WKU等专用于低功耗模式的模块外)均可正常供电。
    时钟状态:系统总线时钟、外设时钟均正常开启。
    唤醒能力:无休眠,上电复位后默认状态。
    数据保留:所有内存和寄存器保持完整。

  2. 休眠模式(Sleep)
    供电状态:仅关闭CPU时钟,内核部分模块(如NVIC)保持工作,外设供电与Normal模式相同。
    时钟状态:系统总线时钟暂停,外设时钟可保持运行(若配置独立时钟源)。
    唤醒能力:通过NVIC响应中断/事件唤醒(无需复位)。
    数据保留:全内存和寄存器保持。

  3. 深度休眠模式(DeepSleep)
    供电状态:关闭系统总线时钟和NVIC,但高压调压器仍工作。
    时钟状态:仅异步时钟(如RTC、LPUART时钟)可驱动特定外设。
    唤醒能力:异步外设中断唤醒至Normal模式。
    数据保留:全内存和寄存器保持。

  4. 待机模式(StandBy)
    供电状态:改用低压调压器供电,关闭高压调压器,需禁用LVD(否则触发复位)。
    时钟状态:与DeepSleep相同,依赖异步时钟。
    唤醒能力:唤醒方式同DeepSleep。
    数据保留:内存和寄存器保持状态(需低压调压器支持)。

  5. 掉电模式(PowerDown)
    供电状态:仅WKU/PCU/低速时钟供电,内存和寄存器数据丢失。
    时钟状态:仅保留极低速时钟(如32kHz RTC)。
    唤醒能力:只能通过WKU唤醒,唤醒后系统复位。
    数据保留:仅WKU/PCU相关寄存器保留。

关键差异对比表

模式 供电调压器 数据保留能力 唤醒后状态
Normal 高压调压器 完全保留 持续运行
Sleep 高压调压器 完全保留 中断恢复现场
DeepSleep 高压调压器 完全保留 中断恢复现场
StandBy 低压调压器 完全保留 中断恢复现场
PowerDown 仅最低供电 数据丢失 系统复位

云途MD ARM Cortex-M33参考手册中关于功耗模式的介绍
图片4

下面表格是外设在各个功耗模式下的工作状态,外设模块是否能在某个低功耗下继续工作依赖于两个条件

  • 相关电路的调压器保持供电
  • 依赖的时钟源仍在继续工作

通常这类模块也会作为唤醒源,由硬件电路监测到特定事件后唤醒CPU。
图片5

低功耗模式中的唤醒源
• 在Powerdown以上的模式都可以用NVIC的中断唤醒,可以原地唤醒(恢复工作)
• 在Powerdown模式中必须使用 WKU 模块作为唤醒源, 以异步唤醒源触发唤醒,并且唤醒后直接复位,而不是原地唤醒。WKU在非Powerdown模式下不工作。
• WKU唤醒电源模块
• WKU可以使用最多16个指定的引脚作为唤醒源。 这些引脚事件可以被配置为上升沿、 下降沿或者通知检测二者, 并可配置滤波器可以提高抗干扰性。配置见 WKU PCR 寄存器
各个模式的唤醒方式可以通过查表得知
图片6

如果要判断HA的ADC能不能唤醒deepsleep模式,需要哪些信息呢
通过查表Power Mode ADC在deepsleep模式下具有全部功能(FF:Full Function )
图片7
再通过Wake-up Sources表,得知ADC能作为deepsleep模式下面的唤醒源
图片8
此外还需要将ADC的时钟源设置为能在deepsleep模式下工作的,比如外部高速晶振,同样的,在YCT工具中使能FXOSC在deepsleep工作。
图片9

然后将ADC->CFG0里面的LPEN位置位,使ADC在低功耗下保持工作
图片10

本站由 提供部署服务