电源控制

电源控制

1. PWR介绍

电源控制(PWR: Power Control)。电源对电子设备来说非常重要,它是保证系统稳定运行的基础。在保证系统能稳定运行的同时,对嵌入式设备一般又有低功耗的需求。

在一些应用场合中,对电子设备的功耗要求非常苛刻,如某些传感器信息采集设备,仅靠小型的电池提供电源,要求工作长达数年之久,且期间不需要任何维护;由于智慧穿戴设备的小型化要求,电池体积不能太大导致容量也比较小,所以也很有必要从控制功耗入手,提高设备的续行时间。

鉴于低功耗的需求,STM32 有专门的电源管理外设监控电源并管理设备的运行式,确保系统正常运行,并尽量降低器件的功耗。

2. 电源框图

image-20250429143035968

image-20250429143144616

2.1 VDDA供电区域

主要负责模拟部分的供电。为了提高转换的精确度,ADC使用一个独立的电源供电,过滤和屏蔽来自印刷电路板上的毛刺干扰。

主要给A/D转换器,温度传感器,复位模块,PLL等供电。

VDDA是正极,VSSA是负极。VREF+和VREF-是A/D转换器的参考电压,VREF-必须接到VSSA上。

对引脚比较少的芯片,没有VREF+和VREF-引脚,他们在芯片内部与ADC的电源(VDDA)和地(VSSA)相联。

2.2 VDD供电区域

VDD是数字电的正极,VSS是数字电的负极,电压3.3V。

给I/O电路,待机电路和电压调节器供电。

2.3 1.8V低电压区域

CPU核心,内部存储器,内置的数字外设都是工作在1.8V的电压。

1.8V的低电压是由从电压调节器得到的。

2.4 后备供电区域

VBAT引脚会接电池和其他电源,当VDD断电时,可以保存备份寄存器的内容和给RTC供电。

VBAT脚也为RTC、LSE振荡器和PC13至PC15供电,这保证当主要电源被切断时RTC能继续工作。切换到VBAT供电由复位模块中的掉电复位功能控制。

如果应用中没有使用外部电池,VBAT必须连接到VDD引脚上。

2.5 电压调节器

复位后,电压调节器总是工作使能的。有3种不同的工作模式:

  • 运转模式:调节器以正常功耗模式提供1.8V电源(内核,内存和外设)。

  • 停止模式:调节器以低功耗模式提供1.8V电源,用于保存寄存器和SRAM的内容

  • 待机模式:调节器停止供电。除了备用电路和备份域外,寄存器和SRAM的内容全部丢失

3. 上电复位和掉电复位

image-20250429143802374

当VDD/VDDA低于指定的限位电压VPOR/VPDR时,系统保持为复位状态,而无需外部复位电路。

复位和解除复位有一个40mv的迟滞电压。当电压大于VPOR时解除复位,当电压小于VPDR时进入复位。设置2个阈值的作用是当电压在附近抖动的时候防止频繁的复位和解除复位。

image-20250429145546734

4. 可编程电压检测器(PVD)

PVD(Programmable voltage detector)。PVD也是监测VDD/VDDA的供电电压,它的阈值电压可以编程。

image-20250429145648681

电压到达高线阈值时PVD输出低电平,低于PVD底线阈值时输出高电平。

用户可以利用PVD对VDD电压与电源控制寄存器(PWR_CR)中的PLS[2:0]位进行比较来监控电源。当电压达到阈值的时候,不是产生复位,而是产生中断。可以在中断响应函数内做一些紧急处理。

image-20250429145740631

5. 低功耗

在系统或电源复位以后,微控制器处于运行状态。当CPU不需继续运行时,可以利用多种低功耗模式来节省功耗,例如等待某个外部事件时。

用户需要根据最低电源消耗、最快速启动时间和可用的唤醒源等条件,选定一个最佳的低功耗模式。

STM32F10xxx有三种低功耗模式:

  • 睡眠模式(CPU 时钟关闭,所有外围设备包括 Cortex-M3® 内核外围设备,如NVIC、SysTick 等保持运行)
  • Stop mode (所有 Clocks 均已停止)
  • 待机模式(1.8V 域断电)

此外,Run 模式下的功耗可以降低以下其中一项:

  • 减慢系统时钟
  • 当 APB 和 AHB 外设未使用时,控制它们的时钟。

image-20250429150528932

5.1 睡眠模式

image-20250429152142130

  1. 进入睡眠模式

通过执行WFI(Wait for Interrupt)或WFE(Wait for Event)指令进入睡眠状态。根据Cortex™-M3系统控制寄存器中的SLEEPONEXIT位的值,有两种选项可用于选择睡眠模式进入机制:

  • SLEEP-NOW:如果SLEEPONEXIT位被清除,当WFI或WFE被执行时,微控制器立即进入睡眠模式。

  • SLEEP-ON-EXIT:如果SLEEPONEXIT位被置位,系统从最低优先级的中断处理程序中退出时,微控制器就立即进入睡眠模式。

在睡眠模式下,所有的I/O引脚都保持它们在运行时的状态。

  1. 退出睡眠模式
  • 如果执行WFI指令进入睡眠模式,任意一个被嵌套向量中断控制器响应的外设中断都能将系统从睡眠模式唤醒。

  • 如果执行WFE指令进入睡眠模式,则一旦发生唤醒事件时,微处理器都将从睡眠模式退出。

5.2 停机(止)模式

停止模式是在Cortex™-M3的深睡眠模式基础上结合了外设的时钟控制机制,在停止模式下电压调节器可运行在正常或低功耗模式。此时在1.8V供电区域的的所有时钟都被停止,PLL、HSI和HSE RC振荡器的功能被禁止,SRAM和寄存器内容被保留下来。

在停止模式下,所有的I/O引脚都保持它们在运行模式时的状态。

image-20250429152805016

  1. 进入停机模式

在停止模式下,通过设置电源控制寄存器(PWR_CR)的LPDS位使内部调节器进入低功耗模式,能够降低更多的功耗。

  • 如果正在进行闪存编程,直到对内存访问完成,系统才进入停止模式。

  • 如果正在进行对APB的访问,直到对APB访问完成,系统才进入停止模式。

  1. 退出停机模式

同睡眠模式。

5.3 待机模式

待机模式可实现系统的最低功耗

该模式是在Cortex-M3深睡眠模式时关闭电压调节器。整个1.8V供电区域被断电。PLL、HSI和HSE振荡器也被断电。SRAM和寄存器内容丢失。只有备份寄存器和待机电路维持供电。能停的全停。

image-20250429161237031

在待机模式下,所有的I/O引脚处于高阻态,除了以下的引脚:

  • 复位引脚(始终有效)

  • 当被设置为防侵入或校准输出时的TAMPER引脚

  • 被使能的唤醒引脚

6. 寄存器

6.1 SCB_SCR

image-20250429173555988

image-20250429173712348

6.2 PWR_CR

image-20250429173815436

image-20250501093434776

6.3 PWR_CSR

image-20250429173853126

image-20250501093551445