单片机的低功耗模式介绍

简介

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

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

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

一、功耗来源说明

1.1、芯片工作模式

  • 工作模式:外设正常运行,内核CPU及SRAM供电,未使用外设的时钟默认关闭。
  • 睡眠模式(SLEEP):只有CPU停止工作,各个外设正常工作,依靠任何中断/事件唤醒。
  • 停机模式(Standby):1.8V供电区域时钟被停止,内部HSI,PLL,外部时钟HSE均关闭,同时电压检测器也可进入低功耗模式,但SRAM和寄存器不断电,此时只能依靠外部中断(EXTI)和RTC时钟才能唤醒
  • 待机模式(StopMode):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. 】芯片-软件

    2023-12-18 04:24:01       41 阅读
  2. 】芯片-硬件

    2023-12-18 04:24:01       39 阅读
  3. 蓝牙(BLE)服务组成

    2023-12-18 04:24:01       36 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-18 04:24:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-18 04:24:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-18 04:24:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-18 04:24:01       20 阅读

热门阅读

  1. Python按字母顺序返回字典的键和值

    2023-12-18 04:24:01       43 阅读
  2. nestjs使用redis

    2023-12-18 04:24:01       47 阅读
  3. React 实现列表页和列表详情页功能

    2023-12-18 04:24:01       35 阅读
  4. 跳跃游戏 + 45. 跳跃游戏 II

    2023-12-18 04:24:01       45 阅读
  5. QEMU源码全解析 —— virtio(10)

    2023-12-18 04:24:01       38 阅读
  6. 解决Qt UI界面卡顿的优化方法

    2023-12-18 04:24:01       45 阅读
  7. C++11——lambda

    2023-12-18 04:24:01       38 阅读