采集网 基于STM32的低功耗温湿度采集器的设计与实现(2)

电脑杂谈  发布时间:2017-12-23 17:01:24  来源:网络整理

2、时钟系统及功耗测试分析 2.1、STM32的时钟系统

时钟系统正常工作是使STm32及其外设正常运行的前提,且系统时钟频率及外设时钟频率配置的高低对采集器耗电量有着很大影响。STm32有内部RC振荡器,其能够为内部提供PLL时钟,可以达到微控器最高频率72MHz的要求。但是内部时钟不及外部晶振准确和稳定,所以在温湿度采集系统中选用了外部时钟源,这个外部时钟源被称为外部高速振荡器(HSE)。外部时钟源用来为Cortex处理器和STM32外设提供时钟。由于内部PLL时钟是用整数值乘以HSE振荡频率,因此外部时钟频率需能被72MHz。实际采集系统中选用了振荡频率为8MHz的晶振。

其中外部晶振HSE振荡后,产生8MHz的时钟信号,经PLL锁相环9倍频后至72MHz。系统时钟以72MHz运行,并将APBI外设时钟配置为系统时钟的2分频,将APB2外设时钟配置为系统时钟的1分频。

2.2、功耗测试分析

STM32芯片电源供电框图如图3。

基于STM32的低功耗温湿度采集器的设计与实现

图3 STM32芯片电源框图

温湿度采集器选用4.2v单节锂电池供电,锂电池容量约为2600mah。由于锂电池电压输出大于芯片供电电压,且锂电池使用过程中电压不断波动变化,影响数据采集准确性。故采集器中选用了降压模块,将电压降且稳定至3.3V,为芯片和外设供电。

该芯片转换效率约为90%,通过估算方式可得其在3.3V供电时容量约为3000mah。当系统时钟运行在最高速72MHz时,用万用表测量采集系统电流约为100ma。待锂电池充满电后进行测试,采集周期5分钟。STM32每次将测量获得的温度数据、湿度数据通过SDIO接口协议写入SD卡中。该状态下采集时间约为26小时。由此可知,未使用低功耗模式的采集系统耗电量较大。该试验要求的密闭环境中进行采集时,不能满足长时间持续工作的设计要求。

3、低功耗模式的实现 3.1、STM32的低功耗模式

STM32共有睡眠、停止以及待机三种低功耗工作模式:

知乎网_采集网_学信网

a、睡眠模式:默认情况下,当一个WFE指令或WFI指令被执行时Cortex处理器将停止内部时钟,并停止执行应用程序代码。该模式下,STM32其余部分将继续运行。当某个外设产生一个中断时,其将退出睡眠模式。理论上,若STM32首先禁用所有外设时钟(除了唤醒Cortex的外设以外),再到HSI振荡器,且将HSI时钟频率1MHz一下,可将功耗降低至大约为5ma。

b、停止模式:停止模式是Cortex-M3的深睡眠模式基础上结合了外设的时钟控制机制。在停止模式下,电压调节器可以运行在正常或者低功耗模式。此时1.8V供电区域的所有时钟被停止。PLL、HSI和HSE振荡器功能被禁。本采集器采用停止模式实现低功耗工作。该模式下,WFI或WFE指令的执行将停止Cortex处理器,并且关闭HSE和HSI振荡器。停止模式下,任意的外部中断都会将STM32唤醒。

c、待机模式:待机模式可实现系统最低功耗,该模式是在Cortex-M3睡眠模式时关闭电压调节器,整个1.8V供电区域被断电。PLL、HIS和HSE振荡器也被断电。SRAM和寄存器内容丢失,只有备份的寄存器和待机电路维持供电。可以使用RTC闹钟唤醒待机模式,也可以使用外部STM32复位或独立看门狗复位唤醒,也可以通过PORTA引脚0的上升沿退出待机模式,但是该引脚必须被配置为唤醒引脚WAKEUP。相应的,该模式退出时间花费最长,约为50us。采集网

3.2、低功耗停止模式的软件实现

首先使能电源控制时钟和RTC后备寄存器时钟,之后使能RTC和后备寄存器访问。通过查血RTCCR寄存器中的RTOFF状态位,判断RTC寄存器是否处于更新中。当且仅当RTOFF状态位为“1”时,方可写入RTC寄存器。RTC寄存器配置过程如图4。


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-55330-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 高乃丽
      高乃丽

      收了多少钱

    • 本寂
      本寂

      物价高是因为中国国内税率过高跟央行印钞量过大的结果

    热点图片
    拼命载入中...