第二篇文章——STM32电源管理、复位、时钟
电源管理
电源
电源框图,如下:
STM32的工作电压Vdd为2.0~3.6V,通过内置的电压调节器提供所需的1.8V电源。Vdd与1.8V的供电区域如上图所示。Vss表示工作电压Vdd的地。
Vdda 和Vssa从Vdd和Vss中独立开来,是为了获得更少干扰的电源供这部分模拟电路使用。它们在芯片外部还是与Vdd和Vss相连接的。
外部参考电压Vref+和Vref-是为了使ADC获得更好的精度,由用户提供的独立的外部参考电压。如果封装中没有这两个引脚,他们在芯片内部与ADC的电源Vdda和地Vssa相联。
Vbat的供电区域除上图所示外,PC13至PC15也由Vbat供电。
如果Vdd电压正常,后备供电区域将由Vdd供电,此时内部模拟开关连接到Vdd。当低电压检测器将检测到Vdd掉电时,掉电复位模块中的掉电复位功能将内部模拟开关切换到Vbat,如果Vbat连接了电池或其他电源,则可以保存住备份寄存器的内容、维持RTC运行等功能。
具体是由Vbat还是Vdd供电,PC13~PC15的功能使不一样的。具体见《STM32中文参考手册 4.12》。
电压调节器
电压调节器有三种不同的工作模式:
- 运转模式:供1.8V给CPU核心、SRAM、核内数字外设。复位后默认模式。正常功耗。
- 停止模式:只给寄存器和SRAM供电,保存其内容。低功耗。
- 待机模式:停止供电。寄存器、SRAM内容丢失。
可编程电压监测器(PVD: Programmable voltage detector )
PVD监控Vdd的电压,与可编程的电压比较值(PVD 阀值)比较,根据设置可产生外部中断。这一特性可用于执行紧急关闭任务。
低功耗模式
在系统或电源复位后,微控制器处于运行状态。当CPU不需继续运行时,可以利用多种低功耗模式来节省功耗。STM32F10xxx有三种低功耗模式,如下表:
如果想在运行模式下,想降低功耗,可通过下列方式:
- 降低系统时钟;
- 关闭APB和AHB总线上未被使用的外设时钟。
复位
Cortex-M3的复位信号
CM3提供三种复位信号:
- 上电复位(nPORESET):复位处理器核心和调试系统;
- 系统复位(nSYSRESET):只复位处理器核心、NVIC(与调试系统相关的除外)、MPU,不复位调试系统;
- 测试复位(nTRST):只复位调试系统。