如何实现MCU低功耗的应用设计?有哪些方法?
由于32bit MCU出现并持续降价及8bit MCU简单耐用又便宜的低价优势下,夹在中间的16bit MCU市场不断被挤压,成为出货比例中最低的产品。
实现MCU低功耗应用设计是一个系统工程,需要从芯片选型、硬件设计、软件策略等多个层面进行优化。核心目标是在保证功能需求的前提下,最小化系统功耗,尤其是在待机和休眠状态下的功耗。
以下是一些关键的方法和技术:
一、 硬件层面的低功耗设计
-
选择合适的低功耗MCU:
- 工艺: 选择基于先进低功耗工艺(如28nm、40nm 或特定低功耗工艺)设计的MCU。
- 静态功耗: 关注待机/休眠电流 (
I_standby,I_shutdown,I_deepsleep),这是电池设备长期待机的关键指标。 - 动态功耗: 关注运行电流 (
I_active) 和功耗效率(uA/MHz),单位频率下功耗越低越好。 - 集成度: 选择高集成度MCU(内置所需外设:ADC、DAC、RTC、比较器、运放、通信接口等),减少外部芯片数量和PCB走线复杂度,从而降低漏电和开关损耗。
- 工作电压: 选择较低工作电压范围的MCU(如1.8V-3.6V),动态功耗通常与电压平方成正比。
- 低功耗运行/休眠模式: MCU应提供丰富、灵活且唤醒源多的低功耗模式(Sleep, Stop, Standby, Shutdown等),每种模式关断不同模块以节省功耗。
-
优化电源设计:
- 高效率电源转换器: 使用高效率DC-DC降压芯片替代LDO线性稳压器(尤其在输入输出电压差较大时),减少电源转换损耗。在轻负载或无负载时使用带脉冲跳频的Buck转换器。
- 电源域划分: 在复杂系统中,为不同模块(主MCU、传感器、无线模块、外设)设计独立可控的电源域。在不需要工作时切断其电源(Power Gating)。
- 功耗测量预留点: 在PCB上预留测量点(如0欧姆电阻),方便精确测量各部分功耗,便于调试优化。
-
优化外设和接口:
- 选择低功耗外设: 所有外部器件(传感器、显示器、存储器、通信模块、驱动器)都应选择低功耗型号,并关注其休眠模式和待机电流。
- 控制外设电源: 通过MCU的GPIO或电源开关芯片,动态控制外设电源。当外设不使用时彻底断电(而不仅仅是软件停用)。
- 优化上拉/下拉电阻: 使用大阻值上拉/下拉电阻(如100KΩ - 1MΩ),减小静态电流(
I = V / R)。 - 未使用引脚处理: 将未使用的MCU引脚设置为模拟输入或配置为已知状态(输出低或高,或带上拉/下拉),避免悬空导致额外漏电。
- 降低通信速率: 在满足需求的前提下,降低串行通信接口(I2C, SPI, UART)的速率。更低的速率允许使用更小的通信电流峰值,并缩短通信时间。
- 选择合适的通信协议: 对于电池供电设备,优先选用如BLE、LoRa、NB-IoT等专为超低功耗设计的无线协议。对于有线连接,避免持续轮询。
二、 软件层面的低功耗设计
-
核心策略:加速进入和保持低功耗状态:
- 尽快休眠: 程序核心逻辑应围绕“快速完成任务,尽快进入最深的休眠状态”。MCU在运行状态(Active)功耗最高,在深度睡眠状态(Deep Sleep)功耗最低。
- 选择合适的休眠模式: 依据唤醒时间和所需唤醒源,选择可用的功耗最低的休眠模式(Stop/Standby > Sleep)。
- 充分利用低功耗模式: 深入了解所用MCU的每种低功耗模式,按需关断时钟域、外设电源域、Flash、内核电压等。
-
中断驱动/事件驱动设计:
- 取代轮询: 避免在循环中不断检查状态。使用外设中断(定时器、GPIO边沿、通信完成、ADC转换结束、比较器触发等)、RTC闹钟或看门狗定时器来唤醒MCU处理事件。
- Main Loop 设计: Main loop结构应类似于:
void main(void) { 初始化(); while(1) { if (有事件待处理) { // 通常由中断置位标志位 处理事件(); 清除事件标志(); } else { 进入最深的允许的低功耗模式(); // e.g., WFI() (Wait For Interrupt) } } }
-
精心管理时钟:
- 降低主频: 在满足实时性需求的前提下,尽可能降低MCU运行的主频。动态功耗大致与频率成正比。
- 关闭未使用的时钟源: 在进入低功耗模式前,或在初始化后不久,关闭所有未使用外设的时钟。
- 合理使用内部/外部时钟: 运行模式使用高速时钟(内部或外部),低功耗模式下使用低速内部时钟(如LSI)或外部低频晶振(如LSE)驱动RTC或看门狗。避免在低功耗模式下开启高速晶振(消耗较多电流)。
-
精细控制外设:
- 按需启用: 在需要使用前初始化并启用外设,使用完成后立即禁用或关闭其时钟/电源。
- 优化采集策略:
- 降低采样率: 根据奈奎斯特采样定理和应用需求,降低传感器(ADC)的采样率。
- 单次采样模式: 使用单次采样(非连续模式),采完立即关闭ADC并进入休眠。
- 硬件触发采样: 使用定时器自动触发ADC采样(DMA传输),采样完成中断通知MCU处理。
- 关闭未用IO驱动: 关闭未使用GPIO的内部驱动,将其设置为高阻态或带上拉/下拉。
-
优化定时和唤醒源:
- 使用RTC闹钟唤醒: 充分利用内部RTC/闹钟唤醒功能进行周期性任务(如定时采集数据、发送心跳包),而不是用主定时器唤醒(后者功耗更高)。
- 延长唤醒周期: 在满足系统响应性要求下,尽可能延长休眠时间(即减小唤醒频率)。
- 合并任务: 在单次唤醒期间,尽可能多处理积压的任务,处理完再睡。
-
降低工作电压:
- 使用MCU的电压调节范围: 在MCU支持的工作电压范围内且满足性能要求时,降低MCU的供电电压(如3.0V替代3.3V),这可以显著降低动态功耗(与
V^2成正比)。 - 使用带电压调节的低功耗模式: 一些MCU(如ARM Cortex-M的低功耗系列)在低功耗模式下会自动降低内核电压以节省功耗。
- 使用MCU的电压调节范围: 在MCU支持的工作电压范围内且满足性能要求时,降低MCU的供电电压(如3.0V替代3.3V),这可以显著降低动态功耗(与
-
数据存储与传输优化:
- 本地缓存/批量传输: 在设备本地缓存数据(利用FRAM/RAM/低功耗Flash),积累到一定量后再批量唤醒主控或无线模块进行传输。
- 压缩数据: 压缩需存储或传输的数据,减少存储/传输时间,降低功耗。
- 优化存储接口: 尽量使用低功耗模式下的接口访问存储器(如QSPI的Quad-IO模式可更快完成传输)。
三、 调试与测量
-
精确测量功耗:
- 使用高精度万用表(6位半或更好)或精密电流探头+示波器。
- 测量不同模式下的电流: 分别测量运行模式、各种休眠模式、外设工作时、通信期间等的电流和持续时间。
- 计算平均电流:
I_avg = (I_run * T_run + I_sleep1 * T_sleep1 + I_sleep2 * T_sleep2 + ... ) / (T_run + T_sleep1 + T_sleep2 + ...) - 分析功耗曲线: 使用示波器+电流探头捕获设备工作的完整周期波形,分析各阶段的能耗大头。
-
功耗调试:
- 分模块断电: 逐个断开外部模块或切断其电源,检查静态电流变化。
- 检查引脚状态: 使用万用表或示波器检查所有引脚在低功耗模式下的状态,确认未悬空或未配置错误。
- 代码优化: 利用IDE提供的功耗分析工具(部分厂商提供模拟器)、代码执行时间分析工具,找出耗时/耗电的代码段进行优化。
实际案例策略(温湿度采集器 - 电池供电)
- 硬件: 超低功耗MCU(如STM32L4, ESP32-C3 SLEEP, RISC-V MCU),低功耗温湿度传感器(如SHT3x),低功耗LORA模块。
- 软件:
- 主频:平时运行在
8MHz(PLL关闭),仅在需要高速处理(如压缩、加密)时短暂提升。 - 休眠模式:大部分时间处于
Deep Sleep Mode(保留RAM和RTC)。 - 唤醒源:RTC闹钟(每5分钟唤醒一次) + GPIO(按键中断)。
- 工作流程:
- 唤醒(STOP模式)。
- 初始化I2C(打开时钟)。
- 命令传感器进行一次测量(单次模式)。
- 延时等待测量完成(可进入低功耗等待状态)。
- 读取传感器数据(通过中断或轮询)。
- 关闭传感器电源/I2C时钟(禁用电源域)。
- 处理数据(简单计算)。
- 判断: 需要立刻上报?是 -> 唤醒LORA模块,发送数据;否 -> 数据存储(内部FRAM或低功耗Flash)。
- 进入Deep Sleep。
- 数据传输:数据积累到5条(或时间达到1小时)且唤醒时,才会唤醒LORA模块发送。
- IO:未用引脚配置为模拟输入并带上拉/下拉(按芯片要求)。
- 主频:平时运行在
总结: 成功的低功耗设计是硬件和软件协同优化的结果。关键在于:
- 选择适合目标的低功耗MCU和器件。
- 硬件设计要隔离电源,减少漏电。
- 软件思维要转变为“事来则醒,事毕速眠”。
- 尽可能延长系统在最深休眠状态下的时间。
- 精准测量和分析是优化的基础。
务必参考你所使用MCU的具体手册和应用笔记,了解其低功耗模式的细节、配置方法和注意事项。不同的MCU厂商提供的低功耗模式和接口名称可能不同。
低功耗MCU的选择方法
在物联网的推动下,业界对各种电池供电设备产生了巨大需求。这反过来又使业界对微控制器和其他系统级器件的能源效率要求不断提高。因此超低功耗MCU与功耗
2022-07-21 09:16:29
简述下MCU与DRF169H低功耗的实现方法
如果是定时上报温湿度数据的方式,我们可以将这个节点做成低功耗的,这样用电池供电,使用起来就非常方便了。低功耗有2个地方:1,
超低功耗MCU的选择方法
在物联网的推动下,业界对各种电池供电设备产生了巨大需求。这反过来又使业界对微控制器和其他系统级器件的能源效率要求不断提高。因此超低功耗MCU与功耗
资料下载
佚名
2021-11-05 20:21:02
超低功耗MCU的选择方法
在物联网的推动下,业界对各种电池供电设备产生了巨大需求。这反过来又使业界对微控制器和其他系统级器件的能源效率要求不断提高。因此超低功耗MCU与功耗
资料下载
佚名
2021-11-01 16:24:50
集成电路中低功耗乘法器的实现与设计
限度的低功耗效果。本文紧跟市场发展动向,从以上应用角度出发,着力研究集成电路设计中小数乘法器的前端低功耗算法以及实现技术,并且改进了现有
资料下载
佚名
2021-04-08 17:01:02
实现32位低功耗MCU设计的方法
1 前言传统的低功耗MCU设计都是以8位MCU为主,因为8位内核逻辑门数相对较少,运行或泄露电流低,售价也相对低廉。但是,许多新兴的应用都需要比
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 芯片的工作原理是什么?
- ssd是什么意思
- 什么是蓝牙?它的主要作用是什么?
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- EDA是什么?有什么作用?
- 中科院研发成功2nm光刻机
- 苹果手机哪几个支持无线充电的?
- dtmb信号覆盖城市查询
- 怎样挑选路由器?
- 华为芯片为什么受制于美国?
- 元宇宙概念股龙头一览
- type-c四根线接法图解
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- amoled屏幕和oled区别
- BLDC电机技术分析
- 复位电路的原理及作用
- dsp是什么意思?有什么作用?
- iphone13promax电池容量是多少毫安
- 苹果无线充电器怎么使用?
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 传感器常见类型有哪些?
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机