第十四章 低功耗实验
14.1 实验目的
本章学习STM32的低功耗控制,掌握如何进入低功耗状态以及如何从此状态唤醒,数据手册请参看第4章电源控制PWR中的内容。
14.2 实验简介
现在很多MCU都有低功耗控制,当需要系统省电时,就需要进入适当的低功耗模式来降低系统的功耗,由其当MCU用在电池供电的设备上时,低功耗尤为重要,下面我们介绍STM32F4的3种低功耗模式及其唤醒条件。
睡眠模式:进入睡眠模式时,内核时钟停止,从睡眠模式中恢复并不需要任何特殊的序列,但要重新使能ARM内核的时钟。在睡眠模式下,指令的执行被中止直至复位或中断出现。外设在CPU内核处于睡眠模式期间继续运转,并可产生中断使处理器恢复执行指令。睡眠模式下,处理器内核自身、存储器系统、有关控制器及内部总线停止工作,因此这些器件的动态功耗会降低。只要出现任何使能的中断,CPU内核就会从睡眠模式中唤醒。
停止模式:在停止模式下电压调节器可运行在正常或低功耗模式。此时在1.2V供电区域的的所有时钟都被停止, PLL、 HSI和HSE RC振荡器的功能被禁止, SRAM和寄存器内容被保留下来。在停止模式下,所有的I/O引脚都保持它们在运行模式时的状态。
停止模式进入和退出
待机模式:待机模式可实现系统的最低功耗。该模式是在Cortex-M4深睡眠模式时关闭电压调节器。整个1.2V供电区域被断电。 PLL、 HSI和HSE振荡器也被断电。 SRAM和寄存器内容丢失。只有备份的寄存器和待机电路维持供电。
待机模式的进入和退出
这三种模式最低功耗的是待机模式,其只需要2.2uA左右的电流。停机模式是次低功耗的,其典型的电流消耗在350uA左右。最后就是睡眠模式了。
14.3 电路设计
本实验用到的硬件资源有LED、按键以及串口,电路图前面已经介绍过,LED指示程序运行,按键用于唤醒MCU。
14.4 软件设计
打开光盘目录下的3、程序源码->1、基础实验->下的实验11 低功耗实验,其下有3个实验,分别对应待机模式、停止模式和休眠模式,这里我们以待机模式为例,另外2种模式,请读者自行查看。打开待机模式下的实验工程,左侧目录树BSP下的pwr.c文件,此为STM32的低功耗控制驱动程序文件,工程目录如下图所示:
图14.4.1
打开pwr.c文件,其中关于待机模式的代码如下:
打开main.c文件,代码如下:
14.5 下载验证
用MINI USB线通过CN3的USB口连接电脑和开发板,拨动电源开关给开发板上电,D3电源指示灯点亮,连接好JLINK/ST-LINK下载调试器,打开“实验11 低功耗实验”工程代码,编译下载,程序运行,D4 D5指示灯亮灭一次,然后快速闪烁,按下一次KEY3按键,进入待机模式,如果按下KEY1(PA0)按键,PA0产生一个上升沿跳变,就会唤醒MCU,LED重新闪烁。
此内容由EEWORLD论坛网友hejecu原创,如需转载或用于商业用途需征得作者同意并注明出处
本文来自论坛,点击查看完整帖子内容。