STM32个人笔记-电源管理
创始人
2024-01-22 08:19:19
0

笔记来源于STM32F103VET6,野火指南者,中文参考手册,HAL库开发手册和b站的野火指南者视频。观看过好多次了,但往往理解得不够全面,现记下小笔记,用来回顾。属于个人笔记。

电源监控器

STM32芯片主要通过VDD引脚从外部获取电源,在它的内部具有电源监控器用于检测VDD的电压,以实现复位功能及掉电紧急处理功能,保证系统可靠地运行。

上电复位与掉电复位(POR与PDR)

当检测到VDD的电压低于阈值VPOR及VPDR时,无需外部电路辅助,STM32芯片会自动保持在复位状态,防止因电压不足强行工作而带来严重的后果。

在刚开始电压低于VPOR时(约1.92V),STM32保持在上电复位状态(POR,Power On Reset)。当VDD电压持续上升至大于VPOR时,芯片开始正常运行。

而在芯片开始正常运行的时候,当检测到VDD电压下降至低于VPDR阈值(约1.88V),会进入掉电复位状态(PDR,Power Down Reset)。

可编程电压检测器PVD(实时监测VDD的电压)

当检测到VDD电压低于编程的VPVD阈值时,会向内核产生一个PVD中断(EXTI16线中断)以使内核在复位前进行紧急处理。该电压阈值可通过电源控制寄存器PWR_CSR设置。 

阈值等级条件最小值典型值最大值单位
级别0上升沿2.12.182.26V
级别0下降沿22.082.16V
级别1上升沿2.192.282.37V
级别1下降沿2.092.182.27V
级别2上升沿2.282.382.48V
级别2下降沿2.182.282.38V
级别3上升沿2.382.482.58V
级别3下降沿2.282.382.48V
级别4上升沿2.472.582.69V
级别4下降沿2.372.482.59V
级别5上升沿2.572.682.79V
级别5下降沿2.472.582.69V
级别6上升沿2.662.782.9V
级别6下降沿2.562.682.8V
级别7上升沿2.762.883V
级别7下降沿2.662.732.9V

STM32电源系统

ADC电源及参考电压(VDDA供电区域) 

为了提高转换精度,STM32的ADC配有独立的电源接口,方便进行单独的滤波。ADC的工作电源使用VDDA引脚输入,使用VSSA作为独立的地连接,VREF引脚作为ADC提供测量使用的参考电压。

VDD供电区域

所有数字逻辑都在内。VDD的供电电压为1.8V。 

后备供电区域

接晶振。RTC用到的纽扣电池推荐CR1220。

低功耗模式

工作模式(高功耗->低功耗):运行、睡眠、停止、待机。

若备份域电源正常供电,备份域内的RTC都可以正常运行,备份域内的寄存器的数据会被保存,不受功耗模式影响。

睡眠模式 

特性说明
立即睡眠在执行WFI或WFE指令时立即进入睡眠模式
退出时睡眠在退出优先级最低的中断服务程序后才进入睡眠模式
进入方式

内核寄存器的SLEEPDEEP=0,然后调用WFI或WFE指令即可进入睡眠模式;

另外若内核寄存器的SLEEPONEXXIT=0时,进入“立即睡眠”模式。SLEEPONEXXIT=1时,进入“退出时睡眠”模式

唤醒方式

如果是使用WFI指令睡眠的,则可使用任意中断唤醒;

如果是使用WFE指令睡眠的,则由事件唤醒;

睡眠时关闭内核时钟,内核停止,而外设正常运行,在软件上表现为不再执行新的代码。这个状态会保留睡眠前的内核寄存器、内存的数据
唤醒延迟无延迟
唤醒后

若由中断唤醒,先进入中断,退出中断服务程序后,接着执行WFI指令后的程序;

若由事件唤醒,直接接着执行WFE后的程序

停止模式

在停止模式中,进一步关闭了其它所有的时钟,于是所有的外设停止了工作,但由于其1.8V区域的部分电源没有关闭,还保留了内核的寄存器、内存的信息,所有从停止模式唤醒,并重新开启时钟后,还可以从上次停止处继续执行代码。停止模式可以由任意一个外部中断(EXTI)唤醒,在停止模式中可以选择电压调节器开启或低功耗模式。

特性说明
调压器低功耗模式在停止模式下调压器可工作在正常模式或低功耗模式,可进一步降低功耗
进入方式

内核寄存器的SLEEPDEEP=1,PWR_CR:PDDS=0,然后调用WFI或WFE指令即可进入停止模式;

PWR_CR:LPDS=0,调压器工作在正常模式;PWR_CR:LPDS=1,调压器工作在低功耗模式;

唤醒方式

如果是使用WFI指令睡眠的,可使用任意EXTI线的中断唤醒;

如果是使用WFE指令睡眠的,可使用任意配置为事件模式的EXTI线事件唤醒;

停止时内核停止,片上外设也停止。这个状态会保留停止前的内核寄存器、内存的数据
唤醒延迟基础延迟为HSI振荡器的启动时间,若调压器工作在低功耗模式,还需要加上调压器从低功耗切换至正常模式下的时间
唤醒后

若由中断唤醒,先进入中断,退出中断服务程序后,接着执行WFI指令后的程序;

若由事件唤醒,直接接着执行WFE后的程序。唤醒后,STM32会使用HSI作为系统时钟

待机模式

待机模式,它除了关闭所有的时钟,还把1.8V区域的电源也完全关闭了。即从待机模式唤醒后,由于没有之前代码的运行记录,只能对芯片进行复位,重新检测boot条件,从头开始执行程序。

它由四种唤醒方式,分别是WKUP(PA0)引脚的上升沿、RTC闹钟事件、NRST引脚的复位和IWDG(独立看门狗)复位。

特性说明
进入方式

内核寄存器的SLEEPDEEP=1,PWR_CR:PDDS=1,PWR_CR:WUF=0,然后调用WFI或WFE指令即可进入停止模式;

唤醒方式通过WKUP引脚的上升沿、RTC闹钟、唤醒、入侵、时间戳事件或NRST引脚外部复位及IWDG复位唤醒
待机时内核停止,片上外设也停止。内核寄存器、内存的数据会丢失;除复位引脚、RTC_AF1引脚及WKUP引脚,其它I/O口均工作在高阻态
唤醒延迟芯片复位的时间
唤醒后相当于芯片复位,在程序表现为从头开始执行代码

库函数

PWR_PVDLevelConfig(配置PVD监控功能)

低于阈值产生PVD中断。阈值由参数配置。参数可选择宏,宏对应上述的阈值等级。

PWR_EnterSTOPMode(进入停止模式)

void PWR_EnterSTOPMode(uint32_t PWR_Regulator,uint8_t PWR_STOPEntry);

PWR_Regulator可选择宏:PWR_Regulator_ON、PWR_Regulator_LowPower。

PWR_STOPEntry可选择宏:PWR_STOPEntry_WFI、PWR_STOPEntry_WFE。

#define __WFI __wfi
#define __WFE __wfe

PWR_EnterSTANDBYMode(进入待机模式)

void PWR_EnterSTANDBYMode(void);

进入待机模式必须开启PWR时钟。

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...