3. 功耗测量原理:四种核心方法详解

功耗测量,说白了就是搞清楚你的嵌入式系统到底吃了多少电。我刚开始做硬件测试那会儿,觉得拿个万用表测测电流就行了,结果被项目坑过好几次——测出来的数据和实际续航差一大截。后来才明白,不同场景得用不同的测量方法。

这一章,我把四种最常用的功耗测量方法掰开揉碎了讲。每种方法都有它的脾气,选对了,数据才靠谱。

核心观点:没有万能的测量方法。精度、成本、带宽、动态范围,你得根据被测对象的特点来权衡。

3.1 电压降法(间接测量)

电压降法的原理很简单:在供电回路里串联一个已知阻值的精密电阻,测它两端的电压,再用欧姆定律算出电流。I = V / R,初中物理就学过。

为什么有人用这个方法? 因为它便宜。一个精密电阻加一块万用表,几十块钱就能搭起来。我在做早期原型验证时经常这么干,快速看个大概功耗,够用。

但坑也不少:

  • 电阻本身会消耗功率——你测的电流越大,电阻上的压降和发热就越明显。我曾经用 1Ω 电阻测一个 500mA 的模块,电阻上掉了 0.5V,模块供电电压直接不够了,数据全偏。
  • 动态响应差——电阻两端电压变化跟不上快速电流跳变。测 WiFi 发包时的瞬态电流?电压降法基本抓不住。
  • 精度受限于万用表——普通万用表测 mV 级电压,误差可能到 5% 以上。
参数 典型值 注意事项
检测电阻阻值 0.1Ω ~ 10Ω 阻值越小,压降越小,但信噪比也低
可测电流范围 1mA ~ 10A 取决于电阻功率和散热
典型精度 ±2% ~ ±5% 受万用表分辨率和温度影响
带宽 DC ~ 1kHz 受万用表采样率限制
避坑指南:我曾经在测一个低功耗蓝牙模块时,用了 10Ω 的检测电阻。模块休眠电流只有 3μA,电阻上压降才 30μV,万用表根本读不准。后来换成了 100Ω 电阻,但模块工作时压降又太大。最后老老实实换了方法。

3.2 电流检测电阻法(专用芯片方案)

这个方法本质上是电压降法的升级版。它用专用的电流检测放大器(如 INA219、INA226、MAX4080)来放大检测电阻两端的微弱电压,然后输出模拟电压或通过 I²C 直接读出数字值。

我个人的习惯是:在需要连续监测功耗的测试板上,直接焊一个 INA226 模块。它内部有 12 位 ADC,能测到 0.1mA 级别的变化,而且带宽能到 1kHz 左右,抓个瞬态电流基本够用。

优点很明显:

  • 精度比纯万用表高,典型 ±0.5% ~ ±1%
  • 可以连续采样,记录功耗曲线
  • 很多芯片支持 I²C/SMBus,方便 MCU 直接读取

缺点也得心里有数:

  • 检测电阻仍然会引入压降和功耗
  • 芯片本身有静态功耗(几十 μA 到几百 μA),测超低功耗时会干扰结果
  • 带宽有限,抓不住 ns 级的电流尖峰
小技巧:用 INA226 测休眠电流时,记得先测一下芯片自身的静态电流,然后在软件里做校准。我一般会在空载(不接负载)时读一次基准值,后面所有数据都减去这个底噪。

3.3 积分测量法(电容放电法)

这个方法有点意思。它不直接测电流,而是测电容的放电时间。原理是:用一个已知容量的电容给被测设备供电,记录电容电压从 V1 降到 V2 所用的时间,然后通过公式算出平均功耗。

公式:P = 0.5 × C × (V1² - V2²) / t

什么时候用这个方法? 测超低功耗设备,比如纽扣电池供电的传感器节点。我记得有一次测一个待机电流只有 1μA 的温湿度计,用 INA226 根本读不准,因为芯片自身的功耗都比被测设备大。换成积分法,用 100μF 的电容,放电时间能拉到几十秒,算出来的功耗非常准。

优缺点:

  • 优点:没有检测电阻,不引入额外压降;适合测 μA 级静态电流;成本极低(一个电容 + 一个 ADC 就行)
  • 缺点:只能测平均功耗,看不到瞬态变化;电容的漏电流会影响精度;测量周期长,不适合快速迭代
关键参数:电容的漏电流必须比被测电流小一个数量级以上。测 1μA 的设备,电容漏电流最好小于 0.1μA。钽电容和 C0G 陶瓷电容是首选,电解电容漏电流太大,别用。

3.4 高精度源表(SMU)测量法

SMU(Source Measure Unit)是功耗测量的终极武器。它既能当电源供电,又能同时高精度测量电压和电流。一台好的 SMU,比如 Keithley 2450 或 Keysight B2900 系列,测量分辨率能到 fA(飞安)级别,带宽能到 MHz。

为什么 SMU 这么强? 因为它内部集成了高精度 DAC、ADC、电流检测电阻和反馈控制电路。它能做到:

  • 四象限工作(既能源电流也能灌电流)
  • 自动量程切换(从 nA 到 A 无缝切换)
  • 高速采样(最高 1M 采样点/秒)
  • 脉冲测量(模拟电池瞬态响应)

我在项目中的实际体验:有一次测一个 NB-IoT 模块的发射电流,峰值达到 1.2A,但持续时间只有 200μs。用 INA226 根本抓不住,波形全是平的。换成 SMU 的快速采样模式,200k 采样率,把整个发射脉冲的波形完整抓下来了,峰值、上升时间、下降时间一目了然。

特性 电压降法 检测电阻法 积分法 SMU 法
精度 低 中 高(静态) 极高
带宽 低 中 极低 高
动态范围 窄 中 窄 极宽
成本 极低 低 低 高(数万元)
适用场景 快速估算 连续监测 超低功耗 高精度/瞬态
注意:SMU 虽然强,但也不是万能的。它的采样率再高,也抓不住射频发射时的 ns 级电流尖峰。那种场景得用示波器 + 电流探头。另外,SMU 的电缆和夹具会引入寄生电感和电容,测高频瞬态时要注意去嵌入。
功耗测量方法选择决策树 被测设备功耗测量 静态/平均功耗为主 动态/瞬态功耗为主 电流 < 1mA 电流 > 1mA 积分测量法 电压降法/检测电阻法 精度要求高 成本敏感 SMU 测量法 示波器+电流探头 选择建议 • 原型验证/快速估算 → 电压降法 • 连续监测/中等精度 → 电流检测电阻法 • 超低功耗/静态电流 → 积分测量法 • 高精度/瞬态分析/研发验证 → SMU 测量法

嗯,这四种方法各有各的舞台。你想想看,如果你的项目预算充足,直接上 SMU 肯定最省心。但如果是做产品量产测试,成本压得很低,那电流检测电阻法加一个简单的 ADC 电路,反而是更务实的选择。

我个人建议,在实验室里把这四种方法都搭一遍,亲自感受一下每种方法的局限和优势。这样以后遇到具体的功耗测试需求,你脑子里马上就能蹦出最合适的方案。