极致低功耗设计:从硬件选型到软件策略

Evek Golden Lv4

在可穿戴设备和物联网传感器中,低功耗(Low Power)设计是核心竞争力。客户的要求往往是:一颗纽扣电池,用三年。这意味着系统的平均电流必须控制在微安(μA)级别。

1. 硬件选型:输在起跑线上?

低功耗首先是设计出来的,不是优化出来的。

1.1 MCU 选型

  • 静态功耗:看 datashet 的 Stop Mode 电流。优秀的 MCU(如 STM32L4, Nordic nRF52)在保持 RAM 内容的情况下能做到 < 1.5μA。
  • 动态功耗:看 μA/MHz
  • 唤醒时间:醒得越快,浪费的能量越少。

1.2 外围器件

  • LDO vs DC-DC:DC-DC 效率高但纹波大,静态电流大;LDO 静态电流小但效率低。对于休眠电流极小的设备,低静态电流 (Low Iq) 的 LDO 往往优于 DC-DC。
  • 分压电阻:ADC 采样电池电压时,分压电阻不要直接接地!要用一个 MOSFET 控制接地,只在采样那 1ms 导通,平时断开。否则 100k 电阻在 3.3V 下就是 33μA 的常驻漏电,是致命的。

2. 软件策略:能睡就睡

2.1 睡眠模式 (Sleep Modes)

MCU 通常提供多种睡眠模式,要在唤醒延迟和功耗之间权衡。

  • Sleep/Idle:CPU 停,外设跑。功耗 ~mA 级。
  • Stop:CPU 停,高频时钟停,RAM 保持。功耗 ~μA 级。(最常用)
  • Standby/Shutdown:全断电,只留 RTC。功耗 ~nA 级,但唤醒等于复位。

2.2 GPIO 管理

进入休眠前,必须把所有 GPIO 配置好!

  • 悬空引脚:必须设为模拟输入(Analog Mode),防止施密特触发器震荡耗电。
  • 外设引脚:断开外设电源后,对应的 GPIO 也要设为低电平或高阻态,防止电流通过 GPIO 的保护二极管倒灌(Back-feeding)到外设芯片。

3. RTOS 中的 Tickless 模式

传统 RTOS 通过 SysTick 定时器每 1ms 唤醒一次 CPU 来计系统时间。这对低功耗是灾难。

Tickless Idle 原理:

  1. 空闲任务运行时,计算“下一个最近的任务还需要多久才运行?”(假设是 100ms)。
  2. 关闭 SysTick。
  3. 配置低功耗定时器(如 LPTIM)在 100ms 后唤醒。
  4. 进入深度睡眠(Stop Mode)。
  5. CPU 一觉睡 100ms,中间不被因为“报时”而吵醒。

4. 功耗测量神器

工欲善其事,必先利其器。万用表的采样率太低,捕捉不到蓝牙发射瞬间的尖峰电流。

  • **Joulescope / Power Profiler Kit (PPK2)**:这些工具能提供高达 100ksps 的采样率和 nA 级的精度,能画出电流随时间变化的波形图。
  • 通过波形,你能一眼看出:“咦,为什么每隔 1秒就有个 5mA 的尖峰?哦,原来是看门狗在喂狗前唤醒了一下其他电路。”

总结

低功耗设计是一场并在微安级战场上的游击战。除了技术,更需要耐心去一点点“抠”电流。

  • Title: 极致低功耗设计:从硬件选型到软件策略
  • Author: Evek Golden
  • Created at : 2025-01-02 09:30:00
  • Updated at : 2026-06-12 08:57:02
  • Link: https://blog.cocodemo.uno/posts/pwr3x9d/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments