STM32待机唤醒实验.ppt_第1页
STM32待机唤醒实验.ppt_第2页
STM32待机唤醒实验.ppt_第3页
STM32待机唤醒实验.ppt_第4页
STM32待机唤醒实验.ppt_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ALIENTEK,例说STM32,例说STM32,2019/4/23,广州市星翼电子科技有限公司,1,ALIENTEK开发板购买店铺 店铺:,ALIENTEK,第13讲 待机唤醒实验,13.1 待机模式简介 13.2 待机模式相关寄存器 13.3 待机模式配置步骤 13.4 实验讲解,例说STM32,2,2019/4/23,广州市星翼电子科技有限公司,ALIENTEK,13.1 待机模式简介,例说STM32,3,2019/4/23,广州市星翼电子科技有限公司,很多单片机都有低功耗模式,STM32也不例外。在系统或电源复位以后,微控制器处于运行状态。运行状态下的HCLK为CPU提供时钟,内核执行程序代码。当CPU不需继续运行时,可以利用多个低功耗模式来节省功耗,例如等待某个外部事件时。用户需要根据最低电源消耗,最快速启动时间和可用的唤醒源等条件,选定一个最佳的低功耗模式。 STM32的低功耗模式有3种: 1)睡眠模式(CM3内核停止,外设仍然运行) 2)停止模式(所有时钟都停止) 3)待机模式(1.8V内核电源关闭) 在运行模式下,我们也可以通过降低系统时钟关闭APB和AHB总线上 未被使用的外设的时钟来降低功耗。,ALIENTEK,例说STM32,4,2019/4/23,广州市星翼电子科技有限公司,三种低功耗模式一览表见下表:,ALIENTEK,例说STM32,5,2019/4/23,广州市星翼电子科技有限公司,在这三种低功耗模式中,最低功耗的是待机模式,在此模式下,最低只需要2uA左右的电流。停机模式是次低功耗的,其典型的电流消耗在20uA左右。最后就是睡眠模式了。用户可以根据自己的需求来决定使用哪种低功耗模式。 本章,我们就针对STM32的最低功耗模式-待机模式,来做介绍。待机模式可实现STM32的最低功耗。该模式是在CM3深睡眠模式时关闭电压调节器。整个1.8V供电区域被断电。PLL、HSI和HSE振荡器也被断电。SRAM和寄存器内容丢失。只有备份的寄存器和待机电路维持供电。 那么我们如何进入待机模式呢?其实很简单,只要按下图所示的步骤执行就可以了:,ALIENTEK,例说STM32,6,2019/4/23,广州市星翼电子科技有限公司,从上图可知,我们有4种方式可以退出待机模式,即当一个外部复位(NRST引脚)、IWDG复位、WKUP引脚上的上升沿或RTC闹钟事件发生时,微控制器从待机模式退出。从待机唤醒后,除了电源控制/状态寄存器(PWR_CSR),所有寄存器被复位。,ALIENTEK,例说STM32,7,2019/4/23,广州市星翼电子科技有限公司,从待机模式唤醒后的代码执行等同于复位后的执行(采样启动模式引脚,读取复位向量等)。电源控制/状态寄存器(PWR_CSR)将会指示内核由待机状态退出。 在进入待机模式后,除了复位引脚以及被设置为防侵入或校准输出时的TAMPER引脚和被是能的唤醒引脚(WK_UP脚),其他的IO引脚都将处于高阻态。,ALIENTEK,13.2 待机模式相关寄存器,例说STM32,8,2019/4/23,广州市星翼电子科技有限公司,电源控制寄存器(PWR_CR) 我们通过设置PWR_CR的PDDS位,使CPU进入深度睡眠时进入待机模式,同时我们通过CWUF位,清除之前的唤醒位。,ALIENTEK,例说STM32,9,2019/4/23,广州市星翼电子科技有限公司,ALIENTEK,例说STM32,10,2019/4/23,广州市星翼电子科技有限公司,电源控制/状态寄存器(PWR_CSR) 这里,我们通过设置PWR_CSR的EWUP位,来使能WKUP引脚用于待机模式唤醒。我们还可以从WUF来检查是否发生了唤醒事件。,ALIENTEK,例说STM32,11,2019/4/23,广州市星翼电子科技有限公司,ALIENTEK,13.3 待机模式配置步骤,例说STM32,12,2019/4/23,广州市星翼电子科技有限公司,1)设置SLEEPDEEP位。 该位在系统控制寄存器(SCB_SCR)的第二位(详见CM3权威指南,第182页表13.1),我们通过设置该位,作为进入待机模式的第一步。 2)使能电源时钟,设置WK_UP引脚作为唤醒源。 因为要配置电源控制寄存器,所以必须先使能电源时钟。然后再设置PWR_CSR的EWUP位,使能WK_UP用于将CPU从待机模式唤醒。,ALIENTEK,例说STM32,13,2019/4/23,广州市星翼电子科技有限公司,3)设置PDDS位,执行WFI指令,进入待机模式。 接着我们通过PWR_CR设置PDDS位,使得CPU进入深度睡眠时进入待机模式,最后执行WFI指令开始进入待机模式,并等待WK_UP中断的到来。 4)最后编写WK_UP中断函数。 因为我们通过WK_UP中断(PA0中断)来唤醒CPU,所以我们有必要设置一下该中断函数,同时我们也通过该函数里面进入待机模式。,ALIENTEK,13.4 实验讲解,例说STM32,14,2019/4/23,广州市星翼电子科技有限公司,硬件设计: 本章,我们使用了WK_UP按键用于唤醒和进入待机模式。然后通过DS0来指示程序是否在运行。因为DS0和WK_UP在MiniSTM32开发板上都是直接连在STM32的IO口上的,不需要任何修改。 实验现象: 下载代码到开发板后看到开发板一点反应没有。此时,我们长按WK_UP按键3秒钟左右,可以看到DS0开始闪烁。然后再 然后再长按WK_UP,DS0会灭掉,程序再次进入待机模式。,ALIENTEK,例说STM32,15,2019/4/23,广州市星翼电子科技有限公司,软件设计:wkup.c,ALIENTEK,例说STM32,16

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论