#1.PWR介绍
在低功耗模式下,也需要保留必要的唤醒电路,比如串口接收数据的中断唤醒,外部中断唤醒,RTC闹钟唤醒等,在需要设备工作时,STM32能够立刻重新投入工作。如果你只考虑进入低功耗,而不考虑唤醒STM32,那不就跟直接断电没区别了吗,所以低功耗模式我们要考虑关闭哪些硬件,保留哪些硬件以及如何去唤醒,当然关闭越多的硬件设备越省电,唤醒就越麻烦。
#2.框图
- 最上面:VDDA供电区域,主要负责模拟部分的供电,其中包括AD转换器、温度传感器、复位模块、PLL锁相环,这些电路的供电正极是VDDA,负极是VSSA。其中AD转换器,还有两个参考电压的供电脚,叫做VREF+和VREF-,这两个脚在引脚多的型号里会单独引出来,在引脚少的型号,比如C8T6,VREF+和VREF-在内部就已经分别接到了VDDA和VSSA了。
- 中间部分:这一块由两部分组成,左边部分是VDD供电区域,其中包括IO电路、待机电路、唤醒逻辑和独立看门狗,右边部分是VDD通过电压调节器降压到1.8V,提供给后面这一块的1.8V供电区域。**1.8V区域包括CPU核心、存储器和内置数字外设,可以看出来STM32内部的大部分关键电路,其实都是以1.8V的低电压运行的,**当这些外设需要与外界进行交流时,才会通过IO电路转换到3.3V。使用低电压运行的主要目的是降低功耗,电压越低内部电路运行的功耗就相对越低。电压调节器,它的作用是给1.8V区供电。
- 最下面:VBAT后备供电区域,其中包括LSE 32K晶体振荡器、后备寄存器,RCC BDCR计寄存器和RTC。 RCC BDCR是RTC的寄存器,叫做备份域控制寄存器,也是和后备区域有关的寄存器,所以也可以有VBAT供电。 低电压检测器,可以控制这个开关,VDD有电时,由VDD供电,VDD没电时,由VBAT供电。
#3.上电复位和掉电复位
首先是上电复位和掉电复位,这个意思是当VDD或者VDDA电压过低时,内部电路直接产生复位,让STM32复位住,不要乱操作。
这个复位和不复位的界限之间,**设置了一个40mv的迟滞电压,大于上限POR,时解除复位,小于下限PDR时,复位。**这是一个典型的迟滞比较器,设置两个阈值的作用,就是防止电压在某个阈值附近波动时,造成输出也来回抖动。
下面的复位信号reset是低电平有效,所以在前面和后面,电压过低时是复位的,中间电压正常的时候不复位。
#4.可编程电压检测器
然后下面这个是可编程电压监测器,简称PVD,他的工作流程也是监测VDD和,VDDA的供电电压。
- 但是PVD的区别就是,首先它这个阈值电压是可以使用程序指定的,可以自定义调节,调节的范围配置PLS寄存器的3个位,因为这里也同样是迟滞比较,所以有两个阈值,**可选范围是2.2V到2.9V左右,PVD上限和下限之间的迟滞电压是100毫伏。**当这个电压降低在2.9伏到2.2伏之间,属于PVD监测的范围,可以通过PVD设置一个警告线,之后再降低到1.9伏,就是复位电路的检测范围,低于1.9伏直接复位住不让动,就是这两个电压监测的工作任务。
#5.低功耗模式
###睡眠模式
-
-
WFI的意思是wait for interrupt等待中断(意思是我先睡了,如果有中断发生的话再叫我起来),所以对应的唤醒条件是任意中断,调用WIFI进入的睡眠模式,任何外设发生任何中断时,芯片都会立刻醒来。
-
WFE,意思是wait for event等待事件,对应的唤醒条件是唤醒事件,这个事件可以是外部中断配置为事件模式,也可以是使能中断,但是没有配置NVIC。 调用WFE进入的睡眠模式,产生唤醒事件时会立刻醒来,醒来之后一般不需要进中断函数,直接从睡的地方继续运行,这是WFI和WFE的作用。
-
WFI/WFE区别相同点是调用任意一个之后,芯片都进入睡眠,不同点是WFI进入的得用中断唤醒,WFE进入的得用事件唤醒。
-
-
这个电压调节器,实际上是1.8V区域的电源,如果电压调节器关,就代表直接把1.8V区域断电。
-
关闭电路通常有两个做法:一个是关闭时钟,另一个是关闭电源。
- 关闭时钟,所有的运算和涉及时序的操作都会暂停,但是寄存器和存储器里面保存的数据还可以维持不会消失。
- 关闭电源就是电路直接断电,电路的操作和数据都会直接丢失,所以关闭电源比关闭时钟更省电。 ###停机模式
-
PDDS,用来区分它是停机模式,还是待机模式,PDDS等于0进入停机模式,PDDS等于1进入待机模式。 LPDS用来设置电压调节器,RPDS=0,电压调节器开启,RPDS=1,电压调节器进入低功耗模式。 最后当我们把这些位提前设置好了,最后再调用WFI或者WFE,芯片就可以进入停止模式了。
-
停止模式的唤醒,唤醒条件就苛刻一些,是任一外部中断,要求就是只有外部中断才能唤醒,其他中断唤醒不了。刚才我们还提到了,PVD、RTC闹钟、USB唤醒、ETH唤醒借道了外部中断,所以这四个信号也可以唤醒停止模式。 ###待机模式
-
唤醒条件,第一个是wake up引脚的上升沿,wake up引脚,可以看一下引脚定义,这里PA0-WKUP指示了引脚的位置,就是PA0的位置。 第二个是RTC闹钟事件,RTC闹钟可以唤醒待机模式,应用场景就是,芯片每隔一段时间自动工作一次。 第三个是NRST引脚上的外部复位,意思是按一下复位键,它也是能唤醒的。最后一个IWDG独立看门狗复位。可以看出待机模式,只有这指定的四个信号能唤醒,唤醒条件最为苛刻。 ###模式选择
#6.每种模式的特性
###睡眠模式
####事件唤醒
###停止模式