2、测量工具与准备:万用表、示波器、功耗分析仪的使用方法,以及如何搭建测试环境
做 BLE 功耗排查,最怕什么?
不是代码写错了,而是你根本不知道电流到底流到了哪里。我见过太多工程师拿着万用表戳了半天,最后跟我说“电流测不出来”——其实不是测不出来,是工具没用对。
这一章,咱们就把三样核心工具聊透:万用表、示波器、功耗分析仪。顺便把测试环境怎么搭也一并说清楚。
核心观点: 没有正确的测量工具和测试环境,功耗优化就是盲人摸象。工具选错,数据全废。
2.1 万用表:最基础,也最容易用错
万用表测电流,说白了就是串联进回路里。但这里有个坑——很多人直接拿表笔戳在电源和地之间,那测的是短路电流,不是设备功耗。
正确做法:
- 断开设备供电的正极(或负极),把万用表调到电流档,串进去。
- 先预估电流范围。BLE 广播时可能几 mA,休眠时可能几 μA。我习惯先用 mA 档,看到数值太小再切 μA 档。
- 注意表笔插孔。测电流要插在专用电流孔,不是电压孔。这个错我见过不止一次。
警告: 万用表电流档内阻不小。在 μA 档位,内阻可能达到几百欧姆。这会导致设备供电电压被拉低,尤其对电池供电设备影响很大。测出来的电流可能偏小,甚至设备无法正常工作。
什么时候用万用表?
- 看平均功耗,比如设备在某个状态下稳定工作时的电流。
- 快速判断设备是否进入休眠模式。
- 粗略估算电池续航。
但万用表有个致命弱点——它看不到瞬态。BLE 设备发射时电流脉冲可能只有几百微秒,万用表根本反应不过来。这时候就需要示波器上场了。
2.2 示波器:捕捉瞬态电流的利器
示波器测电流,通常有两种方式:
- 电流探头:夹住电源线,非接触测量。方便,但探头带宽和灵敏度有限,小电流测不准。
- 差分测量 + 采样电阻:在电源回路里串一个精密电阻(比如 10Ω),用示波器测电阻两端的电压差,再换算成电流。这个方法更准,也更能看到细节。
我个人更推荐第二种。为什么?因为电流探头在 μA 级别基本是废的。而采样电阻法,只要电阻选得合适,从 nA 到 A 都能覆盖。
技巧: 采样电阻的阻值选择要权衡。电阻越大,信号越强,但压降也越大。我一般这样选:
- 测休眠电流(μA 级):用 100Ω ~ 1kΩ
- 测工作电流(mA 级):用 1Ω ~ 10Ω
- 测发射峰值(10mA+):用 0.1Ω ~ 1Ω
示波器设置要点:
- 触发模式设为“正常”或“单次”,触发电平设在预期电流值附近。
- 时基要够快。BLE 事件通常几 ms 一个周期,发射脉冲只有几百 μs。我一般设 1ms/div 起步。
- 垂直分辨率要够。很多示波器在低电压档位噪声很大,可以打开“高分辨率”模式或平均采样。
我曾经排查过一个案子:设备休眠时标称 2μA,但电池两天就耗光了。用万用表测,休眠电流确实 2μA。用示波器一看,好家伙,每 10 秒有一个 10mA、持续 2ms 的尖峰。万用表根本看不到这个。这就是示波器的价值。
2.3 功耗分析仪:专业选手的终极武器
如果你经常跟 BLE 功耗打交道,我建议你搞一台功耗分析仪。这东西就是为测功耗而生的。
它比万用表和示波器强在哪?
| 特性 | 万用表 | 示波器 + 采样电阻 | 功耗分析仪 |
|---|---|---|---|
| 动态范围 | 窄(单档位) | 中(需换电阻) | 宽(自动量程) |
| 采样率 | 低(几 Hz) | 高(MHz 级) | 高(kHz ~ MHz) |
| 积分电量 | 需手动计算 | 需手动计算 | 自动累计 |
| 事件标记 | 无 | 需手动触发 | 支持 GPIO 标记 |
| 长时间记录 | 可以(但数据粗) | 受限于存储深度 | 支持小时级记录 |
功耗分析仪的核心优势是:它能同时看到 nA 级的休眠电流和上百 mA 的发射电流,而且自动切换量程。你不需要像示波器那样反复调档位。
怎么用?
- 把设备电源正极接到分析仪的“输出”端,分析仪的“输入”端接外部电源或电池。
- 设置采样率。一般 10kHz ~ 100kHz 就够用,太高了数据量太大。
- 如果需要关联事件,把设备的 GPIO 接到分析仪的标记输入口。这样你就能知道哪个代码段对应哪个电流波形。
我的习惯: 先用功耗分析仪跑一个完整的连接事件周期,导出 CSV,然后用 Python 或 Excel 做积分,算出平均电流。再跟规格书对比,偏差超过 10% 就说明有问题。
2.4 搭建测试环境:别让环境坑了你
工具再好,环境搭不对,数据也是废的。我总结了几条硬规矩:
1. 独立供电,别用开发板的 USB
开发板的 USB 供电通常经过板载 LDO,LDO 本身就有静态电流。你测到的电流是“开发板 + 芯片”的总和,不是芯片自己的。我习惯用电池模拟器或者精密电源直接给模块供电。
2. 屏蔽干扰
BLE 是 2.4GHz 频段,周围 Wi-Fi、蓝牙、微波炉都是干扰源。如果环境噪声太大,芯片会频繁重传,功耗自然就高了。有条件的话,把设备放进屏蔽箱。没条件的话,至少远离路由器和大功率电器。
3. 固定射频状态
测功耗时,不要让设备处于“自由连接”状态。你不知道它什么时候在广播、什么时候在连接、什么时候在休眠。我一般写一段测试固件,让设备按固定时序跑:广播 30 秒 → 连接 30 秒 → 休眠 30 秒。这样测出来的数据才有可比性。
4. 统一参考地
所有测量设备(万用表、示波器、分析仪)的地要连在一起。否则会有地环路,引入共模噪声。尤其示波器,接地不良时测出来的波形全是毛刺。
警告: 千万不要在设备正常工作时热插拔电流表或采样电阻。瞬间的电流冲击可能烧毁设备或测量仪器。先断电,再接好线,再上电。
测试环境搭建清单:
- 精密电源或电池模拟器(至少 4 位半精度)
- 屏蔽箱(可选,但强烈推荐)
- 测试固件(固定时序版本)
- 连接线(尽量短,尽量粗,减少线阻)
- 标记线(GPIO 引出,用于示波器或分析仪触发)