STM32微控制器低功耗模式测试与分析

需积分: 9 1 下载量 164 浏览量 更新于2024-07-16 收藏 647KB PDF 举报
STM32低功耗测试 本文主要介绍STM32微控制器的低功耗测试,包括不同的状态下的功耗测量、低功耗模式的介绍、实验原理和实验实现等方面的内容。 一、实验目的 本实验的目的在于测量STM32微控制器在各种状态下的功耗,包括在不同时钟频率下、不同振荡器、不同模式下的电流消耗,并弄清楚在不同低功耗模式下的唤醒方式。 二、实验要求 实验要求包括编程要求、实现功能和实验现象三个方面。编程要求是利用C语言,调用STM32的库函数,完成对各种工作模式的操作。实现功能是测试不同状态下功耗。实验现象是用万用表测试电流消耗。 三、硬件电路 实验中的硬件电路连接如图3-1所示,包括万用表、3V干电池、STM32F101最小系统等。 四、实验原理 在系统或电源复位以后,微控制器处于运行状态。当CPU不需继续运行时,可以利用多种低功耗模式来节省功耗,例如等待某个外部事件时。用户需要根据最低电源消耗、最快速启动时间和可用的唤醒源等条件,选定一个最佳的低功耗模式。 STM32F10xxx有三种低功耗模式,每种模式的进入退出条件如图2所示: * 睡眠模式:Cortex-M3内核停止,所有外设包括Cortex-M3核心的外设,如NVIC、系统时钟(SysTick)等仍在运行。 * 停止模式:所有的时钟都已停止。 * 待机模式:1.8V电源关闭。 此外,在运行模式下,可以通过以下方式中的一种降低功耗: * 降低系统时钟。 * 关闭APB和AHB总线上未被使用的外设时钟。 五、低功耗模式的进入和退出 进入睡眠模式可以通过执行WFI或WFE指令,根据Cortex-M3系统控制寄存器中的SLEEPONEXIT位的值,有两种选项可用于选择睡眠模式进入机制: * SLEEP-NOW:如果SLEEPONEXIT位被清除,当WRI或WFE被执行时,微控制器立即进入睡眠模式。 * SLEEP-ON-EXIT:如果SLEEPONEXIT位被置位,系统从最低优先级的中断处理程序中退出时,微控制器就立即进入睡眠模式。 退出睡眠模式可以通过以下方式: * 如果执行WFI指令进入睡眠模式,任意一个被嵌套向量中断控制器响应的外设中断都能将系统从睡眠模式唤醒。 * 如果执行WFE指令进入睡眠模式,则一旦发生唤醒事件时,微处理器都将从睡眠模式退出。唤醒事件可以通过下述方式产生: + 在外设控制寄存器中使能一个中断,而不是在NVIC(嵌套向量中断控制器)中使能。 本文对STM32微控制器的低功耗测试进行了详细的介绍,包括实验目的、实验要求、硬件电路、实验原理和低功耗模式的进入和退出等方面的内容,对STM32微控制器的低功耗测试和应用有重要的参考价值。