3. 嵌入式功耗基础
功耗测量,说白了就是搞清楚你的嵌入式系统到底吃了多少电。我刚开始做硬件测试那会儿,觉得拿个万用表测测电流就行了,结果被项目坑过好几次——测出来的数据和实际续航差一大截。后来才明白,不同场景得用不同的测量方法。
这一章,我把四种最常用的功耗测量方法掰开揉碎了讲。每种方法都有它的脾气,选对了,数据才靠谱。
3.1 电压降法(间接测量)
电压降法的原理很简单:在供电回路里串联一个已知阻值的精密电阻,测它两端的电压,再用欧姆定律算出电流。I = V / R,初中物理就学过。
为什么有人用这个方法? 因为它便宜。一个精密电阻加一块万用表,几十块钱就能搭起来。我在做早期原型验证时经常这么干,快速看个大概功耗,够用。
但坑也不少:
- 电阻本身会消耗功率——你测的电流越大,电阻上的压降和发热就越明显。我曾经用 1Ω 电阻测一个 500mA 的模块,电阻上掉了 0.5V,模块供电电压直接不够了,数据全偏。
- 动态响应差——电阻两端电压变化跟不上快速电流跳变。测 WiFi 发包时的瞬态电流?电压降法基本抓不住。
- 精度受限于万用表——普通万用表测 mV 级电压,误差可能到 5% 以上。
| 参数 | 典型值 | 注意事项 |
|---|---|---|
| 检测电阻阻值 | 0.1Ω ~ 10Ω | 阻值越小,压降越小,但信噪比也低 |
| 可测电流范围 | 1mA ~ 10A | 取决于电阻功率和散热 |
| 典型精度 | ±2% ~ ±5% | 受万用表分辨率和温度影响 |
| 带宽 | DC ~ 1kHz | 受万用表采样率限制 |
3.2 电流检测电阻法(专用芯片方案)
这个方法本质上是电压降法的升级版。它用专用的电流检测放大器(如 INA219、INA226、MAX4080)来放大检测电阻两端的微弱电压,然后输出模拟电压或通过 I²C 直接读出数字值。
我个人的习惯是:在需要连续监测功耗的测试板上,直接焊一个 INA226 模块。它内部有 12 位 ADC,能测到 0.1mA 级别的变化,而且带宽能到 1kHz 左右,抓个瞬态电流基本够用。
优点很明显:
- 精度比纯万用表高,典型 ±0.5% ~ ±1%
- 可以连续采样,记录功耗曲线
- 很多芯片支持 I²C/SMBus,方便 MCU 直接读取
缺点也得心里有数:
- 检测电阻仍然会引入压降和功耗
- 芯片本身有静态功耗(几十 μA 到几百 μA),测超低功耗时会干扰结果
- 带宽有限,抓不住 ns 级的电流尖峰
3.3 积分测量法(电容放电法)
这个方法有点意思。它不直接测电流,而是测电容的放电时间。原理是:用一个已知容量的电容给被测设备供电,记录电容电压从 V1 降到 V2 所用的时间,然后通过公式算出平均功耗。
公式:P = 0.5 × C × (V1² - V2²) / t
什么时候用这个方法? 测超低功耗设备,比如纽扣电池供电的传感器节点。我记得有一次测一个待机电流只有 1μA 的温湿度计,用 INA226 根本读不准,因为芯片自身的功耗都比被测设备大。换成积分法,用 100μF 的电容,放电时间能拉到几十秒,算出来的功耗非常准。
优缺点:
- 优点:没有检测电阻,不引入额外压降;适合测 μA 级静态电流;成本极低(一个电容 + 一个 ADC 就行)
- 缺点:只能测平均功耗,看不到瞬态变化;电容的漏电流会影响精度;测量周期长,不适合快速迭代
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 肯定最省心。但如果是做产品量产测试,成本压得很低,那电流检测电阻法加一个简单的 ADC 电路,反而是更务实的选择。
我个人建议,在实验室里把这四种方法都搭一遍,亲自感受一下每种方法的局限和优势。这样以后遇到具体的功耗测试需求,你脑子里马上就能蹦出最合适的方案。