STM32F103XX 02-电源与备份寄存器

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常常用于嵌入式设备,特别时消费级电子行业,对于低功耗有更高的要求,这部分是重点,对于备份寄存器简单了解即可。

相关推荐
于小猿Sup5 小时前
VMware在Ubuntu22.04驱动Livox Mid360s
linux·c++·嵌入式硬件·自动驾驶
chao1898446 小时前
STM32 HAL库驱动AT24C02 EEPROM例程
stm32·单片机·嵌入式硬件
不会武功的火柴8 小时前
SystemVerilog语法(8)-有限状态机(FSM)
嵌入式硬件·fpga开发·自动化·ic验证·rtl·uvm方法学
猫猫的小茶馆9 小时前
【Python】函数与模块化编程
linux·开发语言·arm开发·驱动开发·python·stm32
feifeigo1239 小时前
STM32矩阵键盘驱动(库函数版)实现
stm32·矩阵·计算机外设
嵌入式小站10 小时前
STM32 零基础可移植教程 05:按键消抖,为什么按一次会触发好几次
chrome·stm32·嵌入式硬件
czhaii10 小时前
跟我动手学FX系列PLC GX2环境
嵌入式硬件
拾知_H11 小时前
STM32/Delay延时函数编程思路
stm32·单片机·时钟·延时
2zcode12 小时前
基于STM32的智能扫地机器人设计与实现
stm32·嵌入式硬件·机器人
jllllyuz13 小时前
单相并网逆变器控制代码实现(STM32版)
stm32·单片机·嵌入式硬件