1. 功耗测量基础:为什么需要测量功耗?

做低功耗开发,第一件事不是写代码,而是搞清楚一个问题:你到底要测什么。

我见过不少工程师,芯片选型时盯着数据手册上那几个“超低功耗”的数字,觉得稳了。结果产品做出来,电池撑不过三天。为什么?因为数据手册上的数字,是在理想条件下测出来的。你实际跑起来,外设开着、时钟配着、代码里还有几个死循环……功耗早就翻倍了。

所以,测量功耗不是“可选步骤”,而是低功耗开发的基本功。你不测,就永远不知道你的系统到底在消耗多少能量。

1.1 为什么必须自己测功耗?

说白了,就三个原因:

  • 数据手册不可信——不是厂家造假,而是条件不同。手册上写的是“典型值”,你用的电压、温度、时钟频率、代码逻辑,都会让实际功耗偏离那个数字。
  • 功耗是动态的——单片机不是一直在一个状态。它可能在跑、在睡、在醒来、在发数据。每个阶段的电流都不一样。你只测一个平均值,根本看不出问题在哪。
  • 优化需要数据支撑——你说“我觉得这里功耗高”,没用。你得拿出数据,告诉团队:这里多了 200µA,是因为 SPI 没关。没有测量,优化就是瞎猜。

核心观点:测量功耗,不是为了得到一个数字,而是为了找到“电都去哪了”。

1.2 STM32L4 的典型功耗指标

STM32L4 系列是 ST 主打的超低功耗产品线。我拿 L476RG 这块板子举个例子,它的几个关键功耗档位是这样的:

工作模式 典型电流 说明
Run 模式(80MHz) ~100 µA/MHz 全速运行,所有外设开启
Sleep 模式 ~200 µA CPU 停止,外设可继续工作
Stop 模式 ~8 µA SRAM 保持,快速唤醒
Standby 模式 ~0.3 µA 仅 RTC 和备份寄存器保持
Shutdown 模式 ~0.03 µA 几乎全部断电,唤醒最慢

注意,这些是芯片本身的电流。你加上外围电路——比如 LED 指示灯、电平转换器、传感器——实际功耗会高很多。我做过一个项目,芯片本身在 Stop 模式下只有 5 µA,但板子上一个没关的 LDO 就吃掉了 50 µA。你说冤不冤?

我的习惯:拿到一块新板子,第一件事就是测“空载功耗”——什么都不跑,只上电,看看板子自己吃了多少电流。这个底数你得心里有数。

1.3 测量工具介绍

测功耗的工具,从便宜到贵,各有各的用法。我按自己的经验给你排个序:

1.3.1 万用表

最基础的工具。精度够用,价格便宜。但有个大问题:它只能测平均值。

你想想看,单片机在 1ms 内从 100mA 掉到 1µA,万用表根本反应不过来。它给你的是一个“平均后的数字”,你看不出瞬态行为。所以万用表适合测稳态功耗,比如 Standby 模式下的漏电流。

我建议用6位半以上的台式万用表,比如 Keysight 34461A 或 Fluke 8846A。手持表精度不够,测 µA 级电流时误差很大。

1.3.2 示波器

示波器能看波形。配合电流探头,你可以看到单片机在不同状态下的电流变化曲线。

举个例子:你写了一个程序,每隔 1 秒醒来发一次数据。用示波器一看,发现唤醒瞬间有个 200mA 的尖峰,持续了 200µs。这个信息万用表给不了你。

但示波器的缺点是精度有限。普通电流探头在 µA 级别的分辨率不够,而且噪声大。想看微安级的细节,得用高精度探头或者自己搭 I-V 转换电路。

我曾经踩过的坑:用示波器测 Standby 模式的电流,探头一夹上去,示波器本身的噪声就比芯片电流还大。后来换了低噪声探头,才看到真实波形。所以,工具选型很重要。

1.3.3 专用功耗分析仪

这是我最推荐的方案。专用功耗分析仪,比如 Joulescope、Otii、Nordic PPK2,专门为低功耗测量设计。它们的特点是:

  • 宽动态范围——能从 nA 测到 A,自动切换量程
  • 高采样率——能捕捉微秒级的电流变化
  • 软件分析——直接导出功耗曲线,计算平均功耗、总能量

我个人习惯用 Otii Arc。它不仅能测电流,还能同时给板子供 3.3V 电压,省掉一个电源。软件界面也很直观,跑一次就能看到完整的功耗曲线。

当然,价格不便宜。但如果你长期做低功耗产品,这笔投资值得。

1.4 知识结构图

下面这张图,把本章的核心逻辑串起来了。你可以看到:为什么要测、测什么、用什么测。

功耗测量基础知识结构 功耗测量基础 — 知识结构 为什么需要测量功耗? 数据手册条件 ≠ 实际条件 功耗随状态动态变化 优化必须基于测量数据 STM32L4 典型功耗指标(Run / Sleep / Stop / Standby / Shutdown) 万用表(稳态测量) 示波器(瞬态波形) 功耗分析仪(高精度) 核心逻辑:先明确“为什么测”,再了解“测什么”,最后选“用什么测”

1.5 小结

这一章我们聊了三件事:

  • 为什么测——数据手册不可信、功耗是动态的、优化需要数据
  • 测什么——STM32L4 的五个典型功耗档位,从 Run 到 Shutdown
  • 用什么测——万用表看稳态、示波器看瞬态、功耗分析仪看全貌