STM32F103XX 电源与备份寄存器
电源控制

f103的电源分为三部分,一部分是为AD/DA提供参考电压VDDA,另外一部分是主电源VDD,为IO接口等设备供电,最后一部分是VBAT,为备份区域供电。
独立的A/D和D/A转换器供电和参考电压
- 转换器供电VDDA VSSA
- 参考电压 VREF+ VREF-
电池供电域
- 包括 RTC LSE PC13 PC14 PC15
- 当VDD有效时,电池供电区域由VDD提供电源,当VDD无效是,由VBAT提供电源,切换由复位模块中的掉电复位控制;
- VDD供电时PC14 PC15既可以用于GPIO也可以用于LSE,PC13可以作为GPIO TAMPER RTC校准 RTC闹钟等;
- VBAT供电时PC14 PC15只能作为LSE引脚,PC13可作为TAMPER RTC校准 RTC闹钟;
电压调节器
- 负责主电源域中将输入的3.3V转换为1.8V供内核、内存和数字外设使用;
- 复位之后处于使能状态,有三种不同的工作模式
- 运行模式:正常保障内核、内存和数字外设使用
- 停止模式:以低功耗的方式保障内存和数字外设使用
- 备份模式:断电不工作,内核和数字外设不能使用
电源管理
-
上下电复位电路Power on reset (POR)/power down reset (PDR)
- 当VDD/VDDA低于指定的限位电压VPOR/VPDR时,系统保持为复位状态;
- f103中VPOR/VPDR对应的数值分别为1.88和1.92;

-
可编程的电压探测器
-
芯片中有一个电压比较电路,当VDD低于VPAD时会以flag或者中断的形式表现出来;
-
VPAD可以通过寄存器设置
- 中断连接着外部中断线16;

-
芯片低功耗方案

-
睡眠模式
-
除CortexM3内核外,其他模块均在工作状态;
-
两种进入方式,区别是等待最低优先级中断执行完进入,还是现在立马进入,判断的条件是系统控制寄存器SCR的SLEEPONEXIT位是否为1;


-
退出方式:如果是WFI指令进入,则等待中断退出,如果是WFE指令进入,则等待唤醒事件退出,唤醒事件可以将外部或内部EXIT中断线设置为时间模式;
-
-
停止模式
-
1.8V供电区域所有时钟关闭,内存和寄存器内容保留,电压调节器可运行在正常模式下;
-
进入停止模式,WFI/WFE指令,且SLEEPDEEP位为1,PDDS位为0,选择电压调节器的工作模式;


-
退出停止模式:中断或中断事件会导致退出;
-
在停止模式下可以单独设置IWDG RTC LSI RC LSE处于工作状态;
-
-
待机模式
-
在Cortex内核处于深度睡眠模式时,关闭电压调节器。整个芯片1.8V供电切断,内存和寄存器内容消失,只有备份域在工作;
-
进入待机模式:WFI/WFE指令,且SLEEPDEEP位为1,PDDS位为1,WUF位为0

-
退出待机模式:外部复位、IWDG复位、WKUP引脚(PA0)的上升沿或者RTC时钟的一个上升沿; 退出后除PWR_CSR寄存器外,所有寄存器复位;
-
在待机模式下也可以单独设置IWDG RTC LSI RC LSE处于工作状态;
-
待机模式下'所有IO处于高阻态,除复位、TAMPER pin、WKUP;
-
-
对于CortexM3内核睡眠模式和深度睡眠模式的区别

-
低功耗下的自动唤醒
-
利用RTC实现自动唤醒,可将芯片从停止或备份模式下唤醒;
-
需要选择RTC的时钟(LSE OSC或者LSI RC),配置RTC产生闹钟,对于待机模式还需设置EXIT17;
相关寄存器
-
电源控制寄存器
-
电源控制和状态寄存器

备份寄存器
备份寄存器一共有42个16位的寄存器。可用于存储84个字节的数据; 复位之后,备份寄存器处于写保护状态,需要设置RCC_APB1ENR和PWR_CR来关闭写保护。
-
侵入检测
- 检测TAMPER引脚上的电平变化,从而控制数据备份寄存器的清除;
- BKP_CSR寄存器中的TPAL位控制信号0变1还是1变0,TPIE决定是否产生中断,TPE决定是否启动入侵检测;
-
RTC校准
- 通过将RTC的时钟在TAMPER引脚上输出,来校准RTC;
- 具体方法参考《AN2604 "STM32F101xx and STM32F103xx RTC calibration"》
-
备份数据寄存器BKP_DR,一共有42个

-
RTC校准寄存器

-
备份控制寄存器

-
备份控制和状态寄存器

总结
首先整的来讲f103的电源方案并不复杂,需要关注的点在于低功耗模式,因为f103常常用于嵌入式设备,特别时消费级电子行业,对于低功耗有更高的要求,这部分是重点,对于备份寄存器简单了解即可。