你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32电源管理笔记

[复制链接]
STMCU小助手 发布时间:2022-9-28 19:39
一、电源管理* w8 i0 F; \5 B) o4 c& c* m
STM32 默认VDD供电引脚高于1.72V上电复位,低于1.68V掉电复位。
3 Q! h/ @8 _3 z, G. v: I, m% W2 @1 V9 }1 Y8 Q
20210302133131613.png 2 p3 Y! `2 g/ g7 T# i* B

6 F( x6 a; U0 s上电电压和掉电电压值是可以配置的,通过修改选项字节,在程序运行前对flash的某些地址做了修改。. S% t$ r: \0 Q  P* a8 d
20210302133335993.png
" a0 F. S2 ~5 S' O! p0 z# {0 @7 t
. r  p( S' c# x/ z' C可编程电压检测器 PVD,会向内核产生一个 PVD 中断(EXTI16 线中断)以使内核在复位前进行紧急处理,使在掉电前在中断中做一些紧急的数据处理。
+ c' J) [' o5 S4 P8 ySTM32 的电源系统:+ B. W) M- U2 B6 Z
0 z2 P+ q. y; c1 X  J! O3 E) \
20210302145921307.png 1 Q" P7 ^3 I! W" z/ F1 j2 _( ?) g

, Z; {1 l6 n  `3 e1 v% q二、低功耗" J# @; f8 ~3 H1 K
STM32 具有运行、睡眠、停止和待机四种工作模式。低功耗平常能用到睡眠模式和停止模式。更多用到的是停止模式,WFI(wait for interrupt),因为中断基本上都是使能后触发,事件的话任意一个外设都有很多事件(比如串口的非空、空闲),睡眠模式就很容易就唤醒了。9 t7 n5 l# k3 q1 a& v
注意唤醒后默认使用的是内部HSI时钟,需要配置为外部HSE时钟。
5 H( a# H, C$ E4 k! n; `6 ~5 o3 P% O3 I1 d0 H2 |2 r; @
20210302141619142.png
6 c: C2 M) B5 r8 }+ {+ ?
' z+ P- }) L/ s$ G$ Y2 S1、睡眠模式
" P  X$ L8 W) q在睡眠模式中,仅关闭了内核时钟,内核停止运行,但其片上外设(GPIO、ADC…),CM4 核心的外设(NVIC、SysTick)全都还照常运行。
( `2 B/ e; K2 {  S3 w有两种方式进入睡眠模式,它的进入方式决定了从睡眠唤醒的方式,分别是 WFI(wait for interrupt)和 WFE(wait for event),即由等待“中断”唤醒和由“事件”唤醒。5 n* j. N: ]3 M5 ~
-比如,DMA_GetFlagStatus()是获取事件,DMA_GetITStatus是获取中断
9 \5 d$ x0 f$ l3 X; l9 f0 j# X$ ~4 ^& M. t2 i" L
20210302143535827.png
" n9 [! l# c+ s/ e
4 ?+ a- u& g8 J& ?+ Q
  1.                 //进入睡眠模式
    1 L1 [* Y: ^7 M+ ~% x5 l
  2.                 HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON,PWR_SLEEPENTRY_WFI);
复制代码
6 F8 U6 f3 c+ z; `4 K0 `  J
2、停止模式$ z" ?2 f, B; [6 ]6 `
在停止模式中,进一步关闭了其它所有的时钟,于是所有的外设都停止了工作,但由于其 1.2V 区域的部分电源没有关闭,还保留了内核的寄存器、内存的信息,所以从停止模式唤醒,并重新开启时钟后,还可以从上次停止处继续执行代码。
7 O9 [0 M& Y0 @0 s- i( K停止模式可以由任意一个外部中断(EXTI)唤醒。在停止模式中可以选择电压调节器为开模式或低功耗模式,可选择内部 FLASH 工作在正常模式或掉电模式。
% u) t+ M( c! m/ P( }# x/ Q- s停止模式关闭了晶振,因此唤醒时需要配置外部晶振,不然会使用内部晶振。( R+ Q0 Q" n6 t. b/ R9 O
调压器可根据情况选择开启还是处于低功耗模式,如果想尽快唤醒,立刻相应外设,可以选择开启的状态。
1 s1 H1 [7 M4 ~5 }& M9 L" a' ]
( k) V- a' t' h* j" J3 Z 20210302150323668.png
3 F8 T/ k5 n) y
$ b" ^/ W, k+ I2 T0 p: c' c; J
  1.                 /* 进入停止模式,设置电压调节器为低功耗模式,等待中断唤醒 */8 H- l/ M/ v* B2 j
  2.                 HAL_PWR_EnterSTOPMode(PWR_MAINREGULATOR_ON,PWR_STOPENTRY_WFI);' W2 q1 G0 ]+ R. V/ _- e1 @
  3.                 /* 从停止模式唤醒后需要重新配置系统时钟:启用HSE、PLL*/
复制代码

( h( i+ u" m# y- Q# v5 @3、待机模式
, S9 k1 W) }# H4 q, S6 v待机模式,它除了关闭所有的时钟,还把 1.2V 区域的电源也完全关闭了,也就是说,从待机模式唤醒后,由于没有之前代码的运行记录,只能对芯片复位,重新检测 boot 条件,从头开始执行程序。相当于重启了,因此不常用。, ?9 r5 K, S& h7 [% X2 F
它有四种唤醒方式,分别是 WKUP(PA0)引脚的上升沿,RTC 闹钟事件,NRST 引脚的复位和 IWDG(独立看门狗)复位。+ c+ S7 O( b2 r, L# p9 p
0 M/ L2 \, X7 A" C$ E0 Q

7 F. ?& a4 D0 Q5 P3 W  ASTM32电源简图0 P1 Y' Z: `# R* h3 e# V9 \

. U/ M6 S0 @+ o6 Q7 i 20210305100424853.png . [) L. h# [  o
& i+ U5 B+ s- {3 ~' K
VDDA:ADC工作电源;$ t! C$ i* `+ f1 C
VSSA:ADC独立的地连接;8 F% Q, b( @+ o" f+ l# M, B
VREF:引脚则为 ADC 提供测量使用的参考电压;/ g8 x. S# |6 f

) c, ]8 N& u% U7 _VDD:1.8V 供电区域电源;
  {& {2 G0 s1 B$ w9 {9 k3 fVSS:1.8V 供电区域地;7 A. \  U8 c% x

2 y- F3 h/ g( K7 B6 dVBAT:后备供电区域供电,一般此引脚还接着纽扣电池。  p" c7 g( m4 u& ~; C3 g; S
————————————————  W: c+ ~* W7 B; c5 ~9 j; }
版权声明:Davidysw& n9 Z9 ^& p5 s" u+ D0 b+ s
& l8 Q8 z; h3 Q6 o! N1 C. V

1 c0 s8 |' ~' G
收藏 评论0 发布时间:2022-9-28 19:39

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版