文档详情

第二十一章待机唤醒实验战舰STM32开发板.pdf

发布:2017-05-26约7.56千字共8页下载文档
文本预览下载声明
ALIENTEK 战舰STM32开发板 第二十一章 待机唤醒实验 本章我们将向大家介绍STM32 的待机唤醒功能。在本章中,我们将利用WK_UP 按键来实 现唤醒和进入待机模式的功能,然后利用DS0 指示状态。本章将分为如下几个部分: 21.1 STM32 待机模式简介 21.2 硬件设计 21.3 软件设计 21.4 下载验证 298 ALIENTEK 战舰STM32开发板 21.1 STM32 待机模式简介 很多单片机都有低功耗模式,STM32 也不例外。在系统或电源复位以后,微控制器处于运 行状态。运行状态下的HCLK 为CPU 提供时钟,内核执行程序代码。当CPU 不需继续运行时, 可以利用多个低功耗模式来节省功耗,例如等待某个外部事件时。用户需要根据最低电源消耗, 最快速启动时间和可用的唤醒源等条件,选定一个最佳的低功耗模式。STM32 的3 种低功耗模 式我们在5.2.4 节有粗略介绍,这里我们再回顾一下。 STM32 的低功耗模式有3 种: 1)睡眠模式(CM3 内核停止,外设仍然运行) 2)停止模式(所有时钟都停止) 3)待机模式(1.8V 内核电源关闭) 在运行模式下,我们也可以通过降低系统时钟关闭APB 和AHB 总线上未被使用的外设的 时钟来降低功耗。三种低功耗模式一览表见表21.1.1 所示: 表21.1.1 STM32 低功耗一览表 在这三种低功耗模式中,最低功耗的是待机模式,在此模式下,最低只需要2uA 左右的电 流。停机模式是次低功耗的,其典型的电流消耗在 20uA 左右。最后就是睡眠模式了。用户可 以根据自己的需求来决定使用哪种低功耗模式。 本章,我们仅对 STM32 的最低功耗模式-待机模式,来做介绍。待机模式可实现 STM32 的最低功耗。该模式是在CM3 深睡眠模式时关闭电压调节器。整个1.8V 供电区域被断电。PLL、 HSI 和HSE 振荡器也被断电。SRAM 和寄存器内容丢失。仅备份的寄存器和待机电路维持供电。 那么我们如何进入待机模式呢?其实很简单,只要按图21.1.1 所示的步骤执行就可以了: 图21.1.1 STM32 进入及退出待机模式的条件 图21.1. 1 还列出了退出待机模式的操作,从图21.1.1 可知,我们有4 种方式可以退出待机 模式,即当一个外部复位(NRST 引脚) 、IWDG 复位、WKUP 引脚上的上升沿或RTC 闹钟事件 299 ALIENTEK 战舰STM32开发板 发生时,微控制器从待机模式退出。从待机唤醒后,除了电源控制/状态寄存器(PWR_CSR),所 有寄存器被复位。 从待机模式唤醒后的代码执行等同于复位后的执行(采样启动模式引脚,读取复位向量等) 。 电源控制/状态寄存器(PWR_CSR)将会指示内核由待机状态退出。 在进入待机模式后,除了复位引脚以及被设置为防侵入或校准输出时的TAMPER 引脚和被 使能的唤醒引脚(WK_UP 脚),其他的IO 引脚都将处于高阻态。 图21.1.1 已经清楚的说明了进入待机模式的通用步骤,其中涉及到2 个寄存器,即电源控 制寄存器(PWR_CR )和电源控制/状态寄存器(PWR_CSR )。下面我们介绍一下这两个寄存器: 电源控制寄存器(PWR_CR ),该寄存器的各位描述如图21.1.2 所示: 300 ALIENTEK 战舰STM32开发板 图21.1.2 PWR_CR 寄存器各位描述 这里我们通过设置PWR_CR 的PDDS 位,使CPU 进入深度睡眠时进入待机模式,同时我 们通过CWUF 位,清除之前的唤醒位。电源控制/状态寄存器(PWR_CSR )的各位描述如图21.1.3 所示: 图21.1.3 PWR_ CSR 寄存器各位描述 这里,我们通过设置PWR_CSR 的EWUP 位,来使能WKUP 引脚用于待机模式唤醒。我 们还可以从WUF 来检查是否发生了唤醒事件。不过本章我们并没有用到。 通过以上介绍,我们了解了进入待机模式的方法,以及设置 WK_UP 引脚用于把 STM32 从待机模式唤醒
显示全部
相似文档