STM32的低功耗模式

2023-11-17

        目前的低功耗设计主要从芯片设计和系统设计两个方面考虑。随着半导体工艺的飞速发展和芯片工作频率的提高,芯片的功耗迅速增加,而功耗增加又将导致芯片发热量的增大和可靠性的下降。因此,功耗已经成为深亚微米集成电路设计中的一个重要考虑因素。为了使产品更具竞争力,工业界对芯片设计的要求已从单纯追求高性能、小面积转为对性能、面积、功耗的综合要求。而微处理器作为数字系统的核心部件,其低功耗设计对降低整个系统的功耗具有重要的意义。

        在嵌入式系统的设计中,低功耗设计(Low-Power Design)是许多设计人员必须面对的问题,其原因在于嵌入式系统被广泛应用于便携式和移动性较强的产品中去,而这些产品不是一直都有充足的电源供应,往往是靠电池来供电,所以设计人员从每一个细节来考虑降低功率消耗,从而尽可能地延长电池使用时间。

STM32的低功耗模式大体分为三种,睡眠模式、停机模式、待机模式。

细分有Sleep mode(睡眠模式)、Low-power run mode(低功耗运行模式)、Low-power sleep mode(低功耗睡眠模式)、Stop mode with RTC(带有RTC的停止模式)、Stop mode without RTC(不带RTC的停止模式)、Standby mode with RTC(带有RTC的旁路模式)、Standby mode without RTC(不带RTC的旁路模式

在上述这些模式中功耗依次降低,具体值为:

            Sleep mode:37uA/MHz

            Low-power run mode:8uA

            Low-power sleep mode:4.5uA

            Stop mode with RTC:1uA

            Stop mode without RTC:0.4uA VDD=3.0V

            Standby mode with RTC:0.85uA VDD=3.0V

            Standby mode without RTC:0.29uA VDD=3.0V

在上述这些模式中,使用时应注意以下几点:

            1、睡眠模式,在所有外设全部关闭的条件下,16MHz时,电流为1mA左右,这个数值相对自身的项目来说还是有些大;

            2、单片机内部功率是各功能部分功率的总和

            3、低功耗模式是通过关掉部分内部功能达到省电

            4、低功耗运行模式和低功耗睡眠模式,都限制了CPU的最大运行速度,如果CPU需要一直工作选择,该模式是比较合适的;

            5、停止模式,电流比较低,唤醒的方法也比较多;

            6、旁路模式,里面的RAM中的数据全部丢失,相当于复位重启。

下面继续深入讲解一下,多了解这些知识

根据手册我们可以得之:

1、睡眠模式

        在睡眠模式,只有CPU停止,所有外设处于工作状态并可在发生中断/事件时唤醒CPU。

 2、停机模式

        在保持SRAM和寄存器内容不丢失的情况下,停机模式可以达到最低的电能消耗。在停机模式下,停止所有内部1.8V部分的供电,PLL、HSI的RC振荡器和HSE品体振荡器被关闭,调压器可以被置于普通模式或低功耗模式。可以通过任一配置成EXTI的信号把微控制器从停机模式中唤醒,EXTI信号可以是16个外部IO口之一、PVD的输出、RTC闹钟或USB的唤醒信号。

3、待机模式

        在待机模式下可以达到最低的电能消耗。内部的电压调压器被关闭,因此所有内部1.8V部分的供电被切断;PLL、HSI的RC振荡器和HSE品体振荡器也被关闭;进入待机模式后,SRAM和寄存器的内容将消失,但后备寄存器的内容仍然保留,待机电路仍工作。从待机模式退出的条是:NRST上的外部复位信号、IWDG复位、WKUP引脚上的一上升边沿或RTC的闹钟到时。

那就用图来总结一下这三种模式:

a5e871c40f5a421f90f07ddbc21bb0f0.png

再用一张图表来深入表达

21ad064da6ef4c8795dddca3b5b0e6f4.png

 如果在一般情况下,STM32F103C8T6各种模式的功耗测试:

单片机最小系统电路功耗
        √ 正常模式:10mA
        √睡眠模式:2mA

        √停机模式:20uA

        √ 待机模式:2uA

因不同型号,不同工艺差异,不同程序下功耗不同这里只能给出大概范围。

而在那种情况下用那种模式呢?

睡眠模式:

        在ARM内核无事可做的时候,可以进入睡眠模式。但设备外设依旧可以工作,需要RM的内核工作时,再将ARM内核进行唤醒工作。

        优点:对系统影响最小

        缺点:节能效果最差

停机模式:

        因SRAM内容不消失,程序不复位,可在唤醒后继续运行。节能效果与待机模式近似,却有着更多优势。主要用于电池供电的设备上,提高电池寿命。在电池供电的产品中必须使用,在外部供电的产品中没必要使用。

        优点:节能效果好,程序不会复位

        缺点:恢复时间较长

待机模式:

        由于SRAM内容消失,唤醒后程序必须复位,从头开始运行。因为待机和停机之间的功耗差别是uA级的,几乎没有差别,所以开发者大多使用停机模式待机模式极少使用。在一些偶尔需要工作的场合,且工作量不大、不复杂的情况下,待机模式可以保证最低的功耗。比如应用在室外温度测量产品上,每1小时测量一次。可用RTC闹钟唤醒,测量完再待机。

        优点:最节能
        缺点:程序会复位,只有少数条件可唤醒

综合各自的优点进行合适的模式进行开发吧

下面简单对各种模式进行使用以下(STM32CubeMX配置)

睡眠模式(HAL库)应用

        如果想使用睡眠模式,只需要调用写好的HAL库,既下面的函数(唤醒使用中断)

HAL_PWR_EntersSLEEPMode(PWR_MAINREGULATOR_ON,PWR_SLEEPENTRY_WFI)

8031c89a13454178bb66816ce992117b.png

停机模式(HAL库)应用

 这里简单的进行下使用,来看到停机模式的效果,设置引脚模式

411a75f5afd14ff69f474cf2448f3721.png

2400fc8d14974f7ba9b5e7c851397bde.png

23b10f7be842497499644c4c93c44484.png

使用停机模式,则调用以下的函数

HAL_PWR_EntersSTOPMode(PWR_MAINREGULATOR_ON,PWR_STOPENTRY_WFI)

52d87c8041d849dcb6e06eb289555f42.png

        设置一个按键,进行中断唤醒实验,最后看到的结果就是当运行到函数之前,LED灯进行闪烁,执行到停机模式函数停止等待唤醒。

待机模式(HAL库)应用

        待机模式在停机模式的情况下进行实验,如下进行修改配置(待机模式只有四个能唤醒):

d3d9604e942a438ea6de4a19634dba9e.png

fb7e81e52a7b4a5e8b5fed3d22455be8.png

41362e339794413bb269b7941c08943f.png

        待机模式根据标志位进行操作,因为一旦使用待机唤醒,这个时候单片机就会从从新开始(就像按了复位按键),在进行这一次运行。根据四个条件唤醒之后,从新执行一遍程序。  

总结:

        根据实际应用需求来进行选择,,其实运用倒是简单,但要选择合适的模式。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STM32的低功耗模式 的相关文章

随机推荐

  • Intellij IDEA svn的使用记录

    这里的忽略一直灰色的 可以进入 这里的版本控制里进行忽略选择 或者 这里进行添加 这里有三个选择 按照顺序 1 忽略指定的文件 2 忽略文件夹下所有文件 3 忽略符合匹配规则的文件 到Commit Changes 这里有几个选项需要了解的
  • Vue实例挂载的过程

    一 思考与分析 我们都听过知其然知其所以然这句话 那么不知道是否思考过new Vue 这个过程中究竟做了些什么 过程中是如何完成数据的绑定 又是如何将数据渲染到视图的等等 首先找到vue的构造函数 源码位置 src core instanc
  • 因为强行关机, 而导致的fedora23 不能重新启动, 卡在开机logo那里的 修复 解决方案...

    其实 fedora23的U盘live 也很好用 很流畅 主要还是 要用一个比较好的 快的 U盘 这样live U盘在4GB 3 75GiB 的内存中还是较快的 原来的U盘live系统用得很卡 可能是因为 U盘太烂的原因 要方便的使用live
  • SAXParserFactoryImpl cast SAXParserFactory异常

    Caused by java lang ClassCastException com sun org apache xerces internal jaxp SAXParserFactoryImpl cannot be cast to ja
  • web攻击日志分析之新手指

    0x00 前言 现实中可能会经常出现web日志当中出现一些被攻击的迹象 比如针对你的一个站点的URL进行SQL注入测试等等 这时候需要你从日志当中分析到底是个什么情况 如果非常严重的话 可能需要调查取证谁来做的这个事情 攻击流程是什么样子的
  • AlibabaProtect 卸载,不使用其他软件

    背景 发现系统中存在AlibabaProtect服务 停止不掉 文件夹也删除不掉 还占用内存 CPU 在网上也搜了很多其他的步骤 发现不太容易 这是整理的比较简单的 不需要装其他软件 步骤 1 删除注册表 AlibabaProtect搜索之
  • 华为OD机试-最长连续方波信号

    Online C compiler to run C program online include
  • docker-engine安装

    最近一直在使用docker 做一些试验 每个新机器都需要部署docker的环境 环境信息如下 RedHat 7 2 安装 docker官方的安装 docker engine 1 sudo rpm import https sks keyse
  • Webpack5优化之提高代码运行性能(Preload、Network Cache、Core-js、PWA)

    文章目录 一 Preload Prefetch 1 1 为什么 1 2 是什么 1 2 1 共同点 1 2 2 区别 1 2 3 问题 1 2 4 总结 1 3 怎么样 1 3 1 安装依赖 1 3 2 配置 1 3 3 测试 二 Netw
  • python获取微信群消息_python-itchat 统计微信群、好友数量,及原始消息数据的实例...

    coding utf 8 import itchat from itchat content import TEXT from itchat content import import sys import time import re r
  • LeetCode Week 4

    LeetCode Week 4 练腿是最虐的项目 没有之一 问题集合 1 Reverse Words in a String III Easy 557 Given a string you need to reverse the order
  • 如何高效安装MindSpore的GPU版本

    作者 王磊 更多精彩分享 欢迎访问和关注 https www zhihu com people wldandan MindSpore的GPU版本以前的安装指南 只写清楚了安装依赖 但没有明确指出安装具体执行的命令 缺乏实操性 比较依赖开发者
  • 整流七 - 三相PWM整流器—公式推导篇

    此篇文章为了进一步理解三相pwm整流器 前期的四象限产品 以及仿真模型都没有彻底理解三相pwm整流器的数学模型 于是现在开始一步步推到整流器各个环节的数学公式 三相PWM整流器拓扑结构 补充 三相 VSR 中 交流侧电感的设计尤为重要 起到
  • 面积积分_A-level数学:必考题型之积分求面积解题技巧汇总!!!

    对于A level 数学的pure Math考试部分 总有那么一道积分求面积的题 很多同学在做这种题的时候总是觉得即使自己充分调动学过的所有公式都无法做出来 导致失分 那么今天潘老师带大家一起总结一下 1积分的物理意义 我们知道积分其实是微
  • SAR成像系列:【15】合成孔径雷达(SAR)运动补偿

    不同于光学图像 SAR图像的获取的本质是方位信号的累积结果 也就是说是在合成孔径时间内的电磁波照射结果 类似于光学成像中的延时拍照 通常使用手机拍照时 若拍照的手臂出现抖动 那么得到的照片就会变模糊 同样的现象也会出现在SAR图像中 SAR
  • 如何写监听回调(事件完成监听、点击响应监听 )

    转载请注明出处 如何写监听回调 事件完成监听 点击响应监听 Mr Leixiansheng的博客 CSDN博客 主要对监听回调做一个简单说明 监听的作用 某一事件只要出现 就会调用其对应的方法 进行响应操作 方式有2 1 常规方式 和控件设
  • 对虚拟机原有磁盘扩容

    对虚拟机原有磁盘扩容 扩容不会导致数据丢失 1 先关闭虚拟机 手动去虚拟机的硬盘扩容 2 lsblk df h查看磁盘容量 3 fdisk dev sda命令扩展 输入P查看分区的start和end的值 需要先删除要扩容的分区 输入d 选择
  • 转:使用DOS命令chcp查看windows操作系统的默认编码以及编码和语言的对应关系

    代码页是字符集编码的别名 也有人称 内码表 早期 代码页是IBM称呼电脑BIOS本身支持的字符集编码的名称 当时通用的操作系统都是命令行界面系统 这些操作系统直接使用BIOS供应的VGA功能来显示字符 操作系统的编码支持也就依靠BIOS的编
  • 微信小程序绘制二维码

    一 前言 在日常的小程序项目中 会经常遇到需要动态绘制二维码的需求 使用场景很多 例如绘制在海报上 例如制作票务码 核销码等等 这篇文章是应一位好友的需求而写的 也希望能够给有需要的同学一些帮助 二 实现原理 使用微信小程序的canvas组
  • STM32的低功耗模式

    目前的低功耗设计主要从芯片设计和系统设计两个方面考虑 随着半导体工艺的飞速发展和芯片工作频率的提高 芯片的功耗迅速增加 而功耗增加又将导致芯片发热量的增大和可靠性的下降 因此 功耗已经成为深亚微米集成电路设计中的一个重要考虑因素 为了使产品