简介
PWR(Power)模块是STM32F103系列微控制器中的一个重要组成部分,负责管理芯片的供电和电源控制
。在嵌入式系统中,电源管理是至关重要的,它直接影响着系统的稳定性、功耗和性能。PWR模块提供了一系列功能和特性,帮助我们有效地管理系统的电源,实现低功耗和高性能的平衡。简单来说,PWR的目的是实现低功耗运行,从而延长电池寿命,提高系统稳定性和可靠性。
电源管理的功能和特点
PWR模块具有多种电源管理功能和特点,包括:
供电源选择:可以选择不同的供电源,例如主电源或备份电源。
电源电压监测:可以监测供电电压的稳定性和合理性。
低功耗模式管理:可以进入低功耗模式以降低系统功耗。
待机模式管理:可以进入待机模式以实现系统的快速唤醒和低功耗运行。
stm32电源框图如下图所示
电源系统分类
备份域电路、内核电路、ADC电路。
备份域电路
下图为备份域的供电来源,1接VBAT电源(比如纽扣电池),2接VDD,3连接备份域。
备份域的作用:保留关键数据。
内核电路
在内核电路中有一个调压器,调压器为备份域(上面所说的VDD)及待机电路以外的所以数字电路进行供电,调压器的输出电压约为1.2V,所以使用调压器进行供电的区域被称为1.2V域。
调压器有三种运行状态:“运行模式”、“停止模式”以及“待机模式”。
运行模式下:1.2V域全功率运行
停止模式下:1.2V区域的所有时钟都被关闭,也就是说所有外设关闭,但部分寄存器和RAM数据保留,像时间静止
待机模式下:1.2V域断电,所有寄存器和RAM数据丢失
ADC电路
为了保证ADC的转换精度,方便进行滤波,所有为ADC设有单独的ADC电源(VDDA引脚提供),使用 VSSA 作为独立的地连接,VREF 引脚则为ADC 提供测量使用的参考电压。
总结
STM32 电源系统结构(F1)
STM32 F1系列的电源系统结构如下:
主要电源电压(VDD): STM32 F1系列的工作电压范围为2.0V至3.6V。这是器件的主要工作电压,提供给大多数数字和模拟电路。
1.模拟外设独立供电: 为了提高模拟外设的转换精度,通常会给模拟外设提供独立的电源供应。这样可以减少数字电路对模拟电路的干扰,提高模拟信号的精确度和稳定性。
2.电压调节器: 电压调节器用于提供1.8V的供电电压。1.8V供电区域是电源系统中最主要的部分,因为许多核心电路和外设需要这个特定的工作电压来保证正常运行。
3.两种供电方式:
VBAT: VBAT是备用电池供电模式,用于提供备份电源。在主要电源被切断的情况下,VBAT可以保持某些功能模块的工作,例如实时时钟(RTC)和备份存储器。
VDD: VDD是主要的电源供电模式,提供主要的工作电压给器件的大部分功能模块。当主要电源可用时,器件会以VDD为主要供电方式。
综上所述,STM32 F1系列的电源系统结构通过提供主要电源电压和模拟外设独立供电来保证系统的稳定性和精确度,同时还提供备用电源模式以保障关键功能在主要电源失效时的正常工作。
STM32 电源系统结构(F4 / F7)
1.备份域电路:
包含LSE振荡器(Low-Speed External oscillator)、RTC(Real-Time Clock)、备份寄存器和备份SRAM(Static Random Access Memory)等组件。
电源开关能够自动切换供电来源,可以从VDD(主要电源)或者VBAT(备份电池)中选择供电。
2.调压器电路(1.2V域):
该电路为备份域以外的所有数字电路提供供电,包括内核、数字外设和RAM等。
这个调压器电路负责将主要的工作电源 VDD 转换为所需的稳定电压,通常为1.2V。
3.ADC电路和参考电压:
ADC(Analog-to-Digital Converter)的工作电源使用 VDDA 引脚输入。
为了提供稳定的参考电压给ADC,通常会使用 VREF 引脚来连接外部参考电压源。这个参考电压源可以是外部提供的电压信号,也可以是芯片内部的某些参考电路提供的电压。
综上所述,STM32 F4和F7系列的电源系统结构通过备份域电路和调压器电路来为不同部分提供不同的电源供应,确保各个功能模块能够正常、稳定地工作。ADC电路和参考电压的设计则能够保证模数转换的准确性和稳定性。
低功耗相关寄存器(F1)
在STM32F1系列中,以下是与低功耗相关的寄存器及其作用:
1.SCB_SCR(系统控制寄存器):
作用:用于选择休眠和深度休眠模式,以及控制其他低功耗特性。这个寄存器允许配置处理器在进入休眠模式时的行为,如使能休眠模式、使能唤醒中断等。
2.PWR_CR(电源控制寄存器):
作用:用于设置低功耗相关的控制参数,如清除标志位、选择系统进入的低功耗模式等。通过配置这个寄存器,可以使系统进入不同的低功耗模式,比如待机模式或者停止模式。
3.PWR_CSR(电源控制/状态寄存器):
作用:用于查看系统的当前状态,例如检查系统是否处于待机模式、是否发生了唤醒事件等。这个寄存器还可以用于使能唤醒引脚,以便外部事件能够唤醒系统。
这些寄存器提供了对STM32F1系列微控制器低功耗特性的控制和监测功能,能够帮助开发者有效管理系统的功耗,从而实现节能的目的。
WFI命令任意中断和WFE命令唤醒事件
WFI(Wait for Interrupt)指令和 WFE(Wait for Event)指令是用于处理器进入低功耗状态的指令。
WFI指令使处理器进入睡眠状态,等待任意中断事件的发生,此时处理器的时钟停止,直到有中断请求到来才会唤醒并继续执行。
WFE指令也使处理器进入睡眠状态,但是它是等待特定事件的发生,而不是等待任意中断。只有当有与WFE关联的事件发生时,处理器才会被唤醒。
在ARM Cortex-M系列处理器中,这两个指令通常由编译器提供的内联函数 __WFI() 和 __WFE() 来调用,这些函数会将相应的汇编指令插入到代码中。通过调用这些函数,处理器可以方便地进入低功耗状态,并等待中断或事件的发生来唤醒。详细的使用方法和功能特性可以参考相关的技术手册,如《Cortex-M3权威指南》。