当前位置: 首页 > news >正文

单片机的低功耗模式介绍

文章目录

    • 简介
    • 一、功耗来源说明
      • 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(供电效率)]

相关文章:

单片机的低功耗模式介绍

文章目录 简介一、功耗来源说明1.1、芯片工作模式1.2、静态损耗1.3、I/O额外损耗1.4、动态损耗 二、功耗如何测量三、降低功耗有什么方法3.1、选取合适的芯片工作模式3.2、降低工作频率3.3、关闭不需要使用的外设3.4、 降低静态电流损耗3.5、 周期采集供电3.6、 设置IO口状态 四…...

基于SSM实现的精品课程网站

一、系统架构 前端:jsp | js | css | jquery | bootstrap 后端:spring | springmvc | mybatis 环境:jdk1.7 | mysql | maven | tomcat 二、代码及数据库 三、功能介绍 01. 登录页 02. web端-首页 03. web端-视频教程 04. web端-资料…...

广州旅游攻略(略说一二)

广州是中国南方的一个重要城市,也是广东省的省会,拥有着悠久的历史和丰富的文化遗产。作为中国最繁华的城市之一,广州吸引了大量的游客前来探索其独特的魅力。今天我将为大家介绍一份广州旅游攻略,希望能帮助各位游客更好地了解这…...

C++STL的list模拟实现

文章目录 前言 list实现push_back迭代器(重点)普通迭代器const迭代器 inserterase析构函数构造函数拷贝构造赋值 vector和list的区别 前言 要实现STL的list, 首先我们还得看一下list的源码。 我们看到这么一个东西,我们知道C兼容C,可以用struct来创建一…...

django--分页功能

Django 提供了强大的分页功能,可以轻松地在视图中实现分页。 在视图中使用分页: # views.py from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger from django.shortcuts import render from .models import YourModeldef your…...

centOS安装bochsXshell连接centos启动可视化界面

centOS安装bochs 参考:https://blog.csdn.net/muzi_since/article/details/102559187 首先安装依赖环境: yum install gtk2 gtk2-devel yum install libXt libXt-devel yum install libXpm libXpm-devel yum install SDL SDL-devel yum install libXr…...

mac m2芯片 安装nginx + php + mysql

1.安装homebrew: 系统本身就有(命令brew -v查看下),如果没有安装一下 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" 2.安装nginx brew install nginx 3.安装php bre…...

vue axios 使用

使用Vue中的Axios需要先安装axios库,可以通过yarn或npm安装: yarn add axios # 或者 npm install axios --save然后在Vue组件中导入axios并使用: import axios from axios;export default {data() {return {responseData: null,error: null…...

使用docker实现logstash同步mysql到es

准备工作: 1.有mysql的连接方式,并且可以连接成功 2.有es的连接方式,并且可以连接成功 3.安装了docker 环境是Ubuntu中安装了docker 一、创建配置文件,用于容器卷挂载 # 切换目录,可自定义 cd /home/test/ # 创建lo…...

hive数据仓库工具

1、hive是一套操作数据仓库的应用工具,通过这个工具可实现mapreduce的功能 2、hive的语言是hql[hive query language] 3、官网hive.apache.org 下载hive软件包地址 Welcome! - The Apache Software Foundationhttps://archive.apache.org/ 4、hive在管理数据时分为元…...

C语言 联合体验证 主机字节序 +枚举

联合体应用&#xff1a;验证当前主机的大小端&#xff08;字节序&#xff09; //验证当前主机的大小端 #include <stdio.h>union MyData {unsigned int data;struct{unsigned char byte0;unsigned char byte1;unsigned char byte2;unsigned char byte3;}byte; };int main…...

python和pygame实现烟花特效

python和pygame实现烟花特效 新年来临之际&#xff0c;来一个欢庆新年烟花祝贺&#xff0c;需要安装使用第三方库pygame&#xff0c;关于Python中pygame游戏模块的安装使用可见 https://blog.csdn.net/cnds123/article/details/119514520 效果图及源码 先看效果图&#xff1a…...

gRPC-Gateway:高效转换 RESTful 接口 | 开源日报 No.105

grpc-ecosystem/grpc-gateway Stars: 16.4k License: BSD-3-Clause gRPC-Gateway 是一个遵循 gRPC HTTP 规范的 gRPC 到 JSON 代理生成器。它是 Google 协议缓冲编译器 protoc 的插件&#xff0c;可以读取 protobuf 服务定义并生成反向代理服务器&#xff0c;将 RESTful HTTP…...

非专业的建模人员如何给模型设置材质纹理贴图?

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 1、材质和纹理的区别于关联 材质&#xff08;Material&#xff09;是…...

自动化测试、压力测试、持续集成

因为项目的原因&#xff0c;前段时间研究并使用了 SoapUI 测试工具进行自测开发的 api。下面将研究的成果展示给大家&#xff0c;希望对需要的人有所帮助。 SoapUI 是什么&#xff1f; SoapUI 是一个开源测试工具&#xff0c;通过 soap/http 来检查、调用、实现 Web Service …...

FFmpeg之HWContextType

HWContextType算是ffmpeg中为硬解码第三方接口的一个辅助类&#xff0c;它自己有两个辅助子类 AVHWDeviceContext和AVHWFramesContext。 AVHWDeviceContext主要表示硬件上下文 AVHWFramesContext主要表示硬件Frame的一些参数&#xff0c;比如你解码后的YUV数据还在硬件上&#…...

Python面向对象之类和对象(Python系列16)

前言&#xff1a;面向对象是什么&#xff0c;为什么要学面向对象&#xff1f;面向对象是一种思想&#xff0c;让我们的程序变得更加的贴切我们的生活&#xff0c;更加的形象&#xff0c;让代码的可读性和扩展性变得更高。 面向对象&#xff1a;可以使用类将变量和函数组成新的…...

电商对传统零售业的影响:销售渠道、价格竞争与服务质量挑战

随着互联网的普及和电商行业的飞速发展&#xff0c;传统零售业面临着前所未有的挑战。电商不仅改变了消费者的购物方式和消费习惯&#xff0c;还对传统零售业的销售渠道、价格竞争和服务质量等方面产生了深远的影响。本文将详细分析电商对传统零售业的影响&#xff0c;以期为传…...

DENet:用于可见水印去除的Disentangled Embedding网络笔记

1 Title DENet: Disentangled Embedding Network for Visible Watermark Removal&#xff08;Ruizhou Sun、Yukun Su、Qingyao Wu&#xff09;[AAAI2023 Oral] 2 Conclusion This paper propose a novel contrastive learning mechanism to disentangle the high-level embedd…...

C++初阶(十五)Stack和Queue

文章目录 一、Stack的模拟实现二、Queue的模拟实现三、容器适配器1、什么是容器适配器2、STL标准库中stack和queue的底层结构3、 deque的简单介绍(了解)1、deque的原理介绍2、deque的缺陷 4、为什么选择deque作为stack和queue的底层默认容器 一、Stack的模拟实现 #include<…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下&#xff0c;越来越多的求职者将目光投向了日本及中日双语岗位。但是&#xff0c;一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧&#xff1f;面对生疏的日语交流环境&#xff0c;即便提前恶补了…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查

在对接支付宝API的时候&#xff0c;遇到了一些问题&#xff0c;记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接&#xff1a;3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例&#xff0c;模拟20个网页的爬取&#xff0c;每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程&#xff1a;允许程序同时执行多个任务&#xff0c;提高IO密集型任务&#xff08;如网络请求&#xff09;的效率…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

JAVA后端开发——多租户

数据隔离是多租户系统中的核心概念&#xff0c;确保一个租户&#xff08;在这个系统中可能是一个公司或一个独立的客户&#xff09;的数据对其他租户是不可见的。在 RuoYi 框架&#xff08;您当前项目所使用的基础框架&#xff09;中&#xff0c;这通常是通过在数据表中增加一个…...

LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》

这段 Python 代码是一个完整的 知识库数据库操作模块&#xff0c;用于对本地知识库系统中的知识库进行增删改查&#xff08;CRUD&#xff09;操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 &#x1f4d8; 一、整体功能概述 该模块…...