单片机的低功耗模式介绍

news2024/11/18 14:24:31

文章目录

    • 简介
    • 一、功耗来源说明
      • 1.1、芯片工作模式
      • 1.2、静态损耗
      • 1.3、I/O额外损耗
      • 1.4、动态损耗
    • 二、功耗如何测量
    • 三、降低功耗有什么方法
      • 3.1、选取合适的芯片工作模式
      • 3.2、降低工作频率
      • 3.3、关闭不需要使用的外设
      • 3.4、 降低静态电流损耗
      • 3.5、 周期采集供电
      • 3.6、 设置IO口状态
    • 四、如何唤醒
      • 4.1 RTC周期唤醒
      • 4.2 其他中断唤醒
    • 五、低功耗怎么调试
    • 六、怎样选择太阳能电源
      • 6.1. 太阳能板配制计算方法:
      • 6.2. 蓄电池配置计算方法:

简介

低功耗,其实并不是嵌入式行业独有的名词,对于大多数我们常见的电器,比如。电视机、冰箱、空调等等,都有低功耗概念在里面,包括手机以及电脑。现在给大家科普一下,其实低功耗离我们并不远,它对工业生产和嵌入式而言有何意义。
家用电器,比如电视机,在关机之后,通过遥控板还能控制电视机的开关,这其实就是电视机进入了低功耗状态,只保留必要的相关部分功能,将其他暂不需要的功能涉及的外设全部关闭,对电视机而言,关闭最耗电的屏幕部分,将处理器主板断电,只保留监听红外信号的MCU以及电路的供电,将设备功耗降到最低,以节约能源。
电子产品在我们生活中扮演了极其重要的作用,便携性的电子设备便是其中一种。便携性设备需要电池供电、需要消耗电池的能量。在同等电能提供下,低功耗设计的产品就能够工作更长的时间。时间的就是生命,因此低功耗设计是很重要的。便携性的设备需要低功耗设备

对于手机,无线耳机而言,就更为精密了,手机的低功耗已经是一个庞大的系统,大家可能都会发现,当使用手机打游戏的时候,手机发热最厉害,耗电也最快,其实就是低功耗控制体系导致的。当手机处于关机状态,那么手机只会保持内部核心的计时器的运转以及对开机键部分的信号检测,保证设备能从关机状态正常启动并且内部时间不会混乱。

在这里插入图片描述
而当手机处于正常使用的时候,比如你拿手机刷新闻,此时的手机其实也处于一种相对低功耗的模式,因为刷新闻对CPU运算没有太大压力,对网络、屏幕的刷新也没有太大的压力,所以特别是对CPU而言,会控频运转,并不会满载,相应的网络射频部分、屏幕供电部分也不会有太大压力,而当你将手机熄屏,那自然会将屏幕部分设置为最低功耗,只保留唤醒部分电流,MCU降频为很低,同时网络部分也会相应降频,这样还是能正常接收到网络消息推送,但是各个部分功能的功耗都控制到了很低的地步。
最终当然是当你最理想的满载打游戏的时候,屏幕快速刷新,CPU、网络射频部分全速运转,这时其实才是手机的全力运转,其他的时候都处于相对低功耗的状态下。
说回嵌入式行业,其实有很多大家不熟知的地方,低功耗的概念都有至关重要的作用,比如大山里面的监控仪器设备,里面并没有稳定的供电手段,甚至只能通过电池的方式供电运行,所以必须降低一切的不必要功耗,维持设备的正常运转,这其实并不是一件简单的事情,因为电路板涉及元器件繁多,不仅要在软件上完全正确配置设备的外设部分功能,还要在硬件板子上杜绝一切的不必要电源浪费。
在这里插入图片描述
像水库大坝的智能监测设备,一般情况下不可能使用市电供给,特别是这种场景,设备能连续稳定运行就显得尤为重要,像在南方地区,可能有一个月以上的连续阴雨天气,智能采集设备低功耗模式在这个时候就起作用了。
在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/adc04460a36c43ed8f7d0b711be5fa42.png
在这里插入图片描述

一、功耗来源说明

1.1、芯片工作模式

工作模式:外设正常运行,内核CPU及SRAM供电,未使用外设的时钟默认关闭。
睡眠模式:只有CPU停止工作,各个外设正常工作,依靠任何中断/事件唤醒。
停机模式:1.8V供电区域时钟被停止,内部HSI,PLL,外部时钟HSE均关闭,同时电压检测器也可进入低功耗模式,但SRAM和寄存器不断电,此时只能依靠外部中断(EXTI)和RTC时钟才能唤醒。
待机模式:1.8V供电区域被时钟停止,内部HSI,PLL,外部时钟HSE均关闭,同时电压检测器也可进入低功耗模式,SRAM和不属于待机电路的寄存器也被断电关闭,此时即使是外部中断(EXTI)也不能将其唤醒,只能通过复位(外部复位,看门狗复位)、唤醒引脚、RTC时钟来唤醒。
在这里插入图片描述
模式从上到下功耗越低,但唤醒条件越严格
注意:无论是在停止模式还是待机模式下,RTC和IWDG及其时钟源不会被关闭。
各个模式功耗:
功耗计算方式:功耗=工作电压*工作电流。
在这里插入图片描述
在这里插入图片描述

1.2、静态损耗

内部上下拉电阻损耗:这部分损耗主要取决于内部电阻的大小,一般为了降低内部电阻损耗常常需要降低电阻两端电压,若引脚为低电压则采用下拉电阻,若引脚为高电压则采用上拉电阻。主要来源有采集电阻、分压电阻、上下拉电阻、匹配电阻、电源芯片的静态电流等

1.3、I/O额外损耗

当引脚设为输入I/O时,用来区分电压高低的斯密特触发器电路会产生一部分消耗,为此可将引脚设为模拟输入模式。

1.4、动态损耗

对于悬浮的引脚,由于其电压不稳定会产生外部电磁干扰和损耗,因此必须把悬浮引脚设为模拟模式或输出模式,引脚电压的切换会对外部和内部电容负载产生动态损耗,其损耗与电压切换频率和负载电容有关。具体损耗值如下:
在这里插入图片描述

二、功耗如何测量

测量电路的功耗非常简单。这一切都归结为P = IV的方程。提供给电路的电压非常一致,并且在实际应用中会发生微小的变化。应该做的是借助电流表测量流入电路的电流。

通过使用电流表,可以计算该特定实例的功耗。然而,电流表提供的信息有限,因为它们不能完整地描述功耗特性,例如消耗的峰值功率、占空比和各种功耗水平的持续时间。

要进行深入分析,需要转向示波器并使用电流探头来测量流入电路的电流。这些读数被存储起来,可用于进一步分析。因此,将更好地了解电路的电流消耗。
一般标书要求会以值守电流、工作电流来间接的反映整体设备的功耗例如:
值守电流:小于0.5ma
工作电流:小于15ma

三、降低功耗有什么方法

3.1、选取合适的芯片工作模式

在1.1节提到过,芯片会有不同的工作模式,
功耗降序:工作模式>睡眠模式>停机模式>待机模式
一般选用停机模式进入低功耗模式,因为在保持IO口状态的同时,能通过外部中断,和RTC中断唤醒,而且能保证较低的功耗
在这里插入图片描述
在这里插入图片描述

3.2、降低工作频率

众所周知,频率越高,计算速度越快,带来的功耗也就越高,那么为了降低功耗,降低工作频率也是一种比较好的办法,也比较显著,在保证外设需要的工作频率要求,尽可能的降低频率。
在这里插入图片描述

3.3、关闭不需要使用的外设

项目使用到的外设时钟可以打开,比如调试串口,ADC等,不需要使用的外设时钟关闭,不然会造成额外的电流损耗
在这里插入图片描述

3.4、 降低静态电流损耗

比如三极管开关电路,会有电阻一直消耗电流,在满足要求的同时,可适当加大下拉电阻
在这里插入图片描述
选取高效率的电源转换芯片,下图为SY8303芯片的效率曲线
在这里插入图片描述
加大指示灯电阻,几乎每块电路板都有指示灯,在保证能达到指示效果的情况下,减小其电流损耗
加大指示灯电阻,几乎每块电路板都有指示灯,在保证能达到指示效果的情况下,减小其电流损耗
直接关闭芯片供电,比如232,485芯片,在值守模式下,便可以直接控制断电

3.5、 周期采集供电

比如传感器,摄像头,一般都是周期采集,比如十分钟,一小时间隔采集,这种情况下,一般采用周期供电,程序内部维护定时器,到时间节点,打开相应传感器供电,进行数据采集,采集完成后,断电。达到降低功耗目的

3.6、 设置IO口状态

端口设置,外加上拉、下拉电阻切记不能随便加,需要根据外围电路特性来设置端口模式。避免造成漏电,导致功耗升高。
如果此IO口带上拉,请设置为高电平输出或者高阻态输入;
如果此IO口带下拉,请设置为低电平输出或者高阻态输入;
空闲IO一律模拟模式

四、如何唤醒

4.1 RTC周期唤醒

在这里插入图片描述

4.2 其他中断唤醒

比如外部中断,雨量计就是通过外部中断唤醒的,在休眠时期,如果降雨,会触发雨量传感器相应,产生电平跳变,产生外部中断,此时会唤醒单片机进行数据采集。

五、低功耗怎么调试

1、以最小系统的形式验证芯片部分功耗
2、慢慢增加外围电路,记录好各部分电路的功耗
在最小系统的基础上,增加外为电路,记录在正常工作模式跟低功耗模式的消耗情况,例如
功耗 正常工作模式 低功耗模式
最小系统 3ma 300ua
串口1 20ua 20ua
串口2 20ua 20ua
3、通过万用表检测漏电部分
可以通过电压挡检测加在电阻两端的电压,由此通过欧姆定律推算出经过电阻的电流
4、程序单步调试,一步一步打开外设,试试检测电流变化,找到电流影响
在这里插入图片描述
5、进入低功耗模式也是可以下线调试的,但是要注意配置
STOP模式退出后,系统时钟会自动配置为MSI或HSI,需要手动重新配置时钟,以及使用时钟的外设。
为了进一步降低STOP模式下的功耗,可以将GPIO设置为ANALOG输入模式,退出stop模式后重新配置GPIO
为了能够在STOP模式下进行调试,在main函数中添加 DBGMCU->CR |= DBGMCU_CR_DBG_STOP

六、怎样选择太阳能电源

当设备安装现场没有市电电源,对数据的上报频率要求很高时,选择使用太阳能供电的方式。太阳能电源包括三部分,太阳能光电池板、太阳能充电控制器、蓄电池。根据现场用电设备(包含低功耗测控终端与现场采集设备)的功率来选择光电池板的大小与蓄电池的容量。下面为计算方法。

6.1. 太阳能板配制计算方法:

电池板配置功率(W)=设备功耗(W)×每天工作时间(小时)×1.2(安全系数)÷[5 小时(每天有效工作时间) ×0.6(充电效率)]

6.2. 蓄电池配置计算方法:

蓄电池配置容量(Ah)=设备功耗(W)×每天工作时间(小时)×阴雨天(天数)÷[设备供电电压(V) ×0.6(供电效率)]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1309073.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MYSQL各种日志

感谢B站up主的视频分享 黑马程序员 MySQL数据库入门到精通,从mysql安装到mysql高级、mysql优化全囊括_哔哩哔哩_bilibili

FMETP STREAM 2.0

FMETPSTREAM简化了Unity3D中的直播,无需编码。设置和测试仅需5分钟。 "编码器模块"将Unity游戏视图、网络摄像头、桌面、声音和麦克风输入转换为字节数据,使其完美适用于各种流媒体场景。 优化的网络模块支持Server-clients连接类型,并允许您使用单个命令向 Serve…

el-date-picker限制选择7天内禁止内框选择

需求&#xff1a;elementPlus时间段选择框需要满足&#xff1a;①最多选7天时间。②不能手动输入。 <el-date-picker v-model"timeArrange" focus"timeEditable" :editable"false" type"datetimerange" range-separator"至&qu…

六.聚合函数

聚合函数 1.什么是聚合函数1.1AVG和SUM函数1.2MIN和MAX函数1.3COUNT函数 2.GROUP BY2.1基本使用2.2使用多个列分组2.3GROUP BY中使用WITH ROLLUP 3.HAVING3.1基本使用3.2WHERE和HAVING的区别 4.SELECT的执行过程4.1查询的结构4.2SELECT执行顺序4.3SQL执行原理 1.什么是聚合函数…

微服务实战系列之MQ

前言 从今天起&#xff0c;席卷北国的雪&#xff0c;持续了一整天&#xff0c;北京也不例外。这场意外的寒潮&#xff0c;把整个冬天渲染的格外cool。当然你可以在外面打雪仗、堆雪人、拉雪橇&#xff0c;也可以静坐屋内&#xff0c;来一场围炉煮茶的party。此刻&#xff0c;冬…

在IDEA中配置Git的Push键

前言 笔者在重新安装IDEA过程中需要重新绑定了Git&#xff0c;发现提交代码过程中push键消失了&#xff0c;所以笔者就以这篇文章记录一下Git配置push键的详细过程。 注意笔者当前IDEA版本为2019&#xff0c;可能和读者有所区别&#xff0c;但是操作思路是差不多的。 操作步…

Ubuntu22.04切换用户

一、只有一个用户时没有切换用户菜单项 1、用户信息 cat /etc/passwd 2、系统菜单 二、添加用户 添加新用户ym&#xff0c;全名yang mi 三、有两个及以上的用户时出现切换用户菜单项 1、用户信息 cat /etc/passwd 2、系统菜单 四、切换用户 1、点击上图中Switch User …

Python数据科学视频讲解:Python的数据运算符

2.9 Python的数据运算符 视频为《Python数据科学应用从入门到精通》张甜 杨维忠 清华大学出版社一书的随书赠送视频讲解2.9节内容。本书已正式出版上市&#xff0c;当当、京东、淘宝等平台热销中&#xff0c;搜索书名即可。内容涵盖数据科学应用的全流程&#xff0c;包括数据科…

关于标准库中的list(涉及STL的精华-迭代器的底层)

目录 关于list list常见接口实现 STL的精华之迭代器 关于list list的文档介绍 1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭代。 2. list的底层是双向链表结构&#xff0c;双向链表中每个元素存储在互不相关的独立…

为什么要使用国际语音群呼系统?

1.降本增效 通过批量导入客户的电话号码&#xff0c;由系统自动完成批量呼叫&#xff0c;企业可以节省人工拨号的费用&#xff0c;高效助力企业业务增长&#xff1b; 2.降低流失 通过批量群呼&#xff0c;企业可以724小时高并发无故障运行&#xff0c;智能锁定意向客户&…

java代码编写twitter授权登录

在上一篇内容已经介绍了怎么申请twitter开放的API接口。 下面介绍怎么通过twitter提供的API&#xff0c;进行授权登录功能。 开发者页面设置 首先在开发者页面开启“用户认证设置”&#xff0c;点击edit进行信息编辑。 我的授权登录是个网页&#xff0c;并且只需要进行简单的…

UML概扩知识点

UML是一个重要的知识点&#xff0c;考察的频度也很高。我们需要了解的是UML的一系列的图&#xff0c;红框里的是最核心的。 其次是对各种关系有了解&#xff08;红框里的&#xff1a; 依赖关系&#xff0c;关联关系&#xff0c;泛化关系&#xff0c;实现关系&#xff09; UM…

01.前言

前言 1.什么是前端开发 前端开发是创建 Web 页面或 app 等前端界面呈现给用户的过程核心技术&#xff1a;HTML&#xff0c;CSS&#xff0c;JavaScript 以及衍生出的各种技术&#xff0c;框架等 2.前端开发应用场景 3.前端职业路线 4.什么是CS架构与BS架构 介绍 应用软件&a…

项目总体测试计划书-word原件

编写此测试方案的目的在于明确测试内容、测试环境、测试人员、测试工作进度计划等&#xff0c;以保证测试工作能够在有序的计划安排进行。

【如何理解select、poll、epoll?】

如何理解select、poll、epoll&#xff1f; select、poll、epollselectpollepoll 知识扩展三者之间的主要区别是什么&#xff1f;epoll的两种模式是什么&#xff1f; select、poll、epoll select、poll、epoll都是Linux中常见的I/O多路复用技术&#xff0c;他们可以用于同时监听…

使用ffmpeg命令进行视频格式转换

1 ffmpeg介绍 FFmpeg 是一个非常强大和灵活的开源工具集&#xff0c;用于处理音频和视频文件。它提供了一系列的工具和库&#xff0c;可以用于录制、转换、流式传输和播放音频和视频。 FFmpeg 主要特点如下&#xff1a; 格式支持广泛&#xff1a;FFmpeg 支持几乎所有的音频和视…

【lesson14】MySQL表的基本查询(1)

文章目录 表的基本操作介绍retrieveselect列建表基本测试 where子句建表基本测试 表的基本操作介绍 CRUD : Create(创建), Retrieve(读取)&#xff0c;Update(更新)&#xff0c;Delete&#xff08;删除&#xff09; retrieve select列 建表 基本测试 插入数据 全列查询 …

iptables与ipvs的异同

iptables与ipvs的异同 Kubernetes 1.29 新版将抛弃 iptables那么我们就来聊一下iptables与ipvs的异同 iptables和ipvs都是Linux系统中用于网络流量控制和管理的工具&#xff0c;但它们在实现方式、功能和性能上有所不同。本文将对iptables和ipvs进行比较&#xff0c;以帮助读…

JS基础之作用域链

JS基础之作用域链 作用域链作用域链函数创建函数激活总结 作用域链 当JavaScript代码执行一段可执行的代码&#xff08;execution code&#xff09;时&#xff0c;会创建对应的执行上下文&#xff08;execution context&#xff09;。 对于每个执行上下文&#xff0c;都有三个重…

beanshell、jcef

BeanShell BeanShell是一个小型嵌入式Java源代码解释器&#xff0c;具有对象脚本语言特性&#xff0c;能够动态地执行标准JAVA语法。 BeanShell不仅仅可以通过运行其内部的脚本来处理Java应用程序&#xff0c;还可以在运行过程中动态执行你java应用程序执行java代码。因为Bea…