2、测量工具与准备:万用表、示波器、功耗分析仪的使用方法,以及如何搭建测试环境

做 BLE 功耗排查,最怕什么?

不是代码写错了,而是你根本不知道电流到底流到了哪里。我见过太多工程师拿着万用表戳了半天,最后跟我说“电流测不出来”——其实不是测不出来,是工具没用对。

这一章,咱们就把三样核心工具聊透:万用表、示波器、功耗分析仪。顺便把测试环境怎么搭也一并说清楚。

核心观点: 没有正确的测量工具和测试环境,功耗优化就是盲人摸象。工具选错,数据全废。

BLE功耗测量工具与测试环境知识体系 BLE功耗测量工具与测试环境 万用表 示波器 功耗分析仪 串联测平均电流 μA/mA 档位选择 避开“地回路”陷阱 电流探头 + 差分测量 捕捉瞬态尖峰 触发模式设置 高动态范围采样 积分电量计算 事件标记与日志 测试环境搭建要点 独立供电 / 电池模拟 屏蔽箱 / 远离干扰 固定射频状态 统一参考地 提示:三种工具互补使用,万用表看平均,示波器看瞬态,功耗分析仪看全过程

2.1 万用表:最基础,也最容易用错

万用表测电流,说白了就是串联进回路里。但这里有个坑——很多人直接拿表笔戳在电源和地之间,那测的是短路电流,不是设备功耗。

正确做法:

  • 断开设备供电的正极(或负极),把万用表调到电流档,串进去。
  • 先预估电流范围。BLE 广播时可能几 mA,休眠时可能几 μA。我习惯先用 mA 档,看到数值太小再切 μA 档。
  • 注意表笔插孔。测电流要插在专用电流孔,不是电压孔。这个错我见过不止一次。

警告: 万用表电流档内阻不小。在 μA 档位,内阻可能达到几百欧姆。这会导致设备供电电压被拉低,尤其对电池供电设备影响很大。测出来的电流可能偏小,甚至设备无法正常工作。

什么时候用万用表?

  • 看平均功耗,比如设备在某个状态下稳定工作时的电流。
  • 快速判断设备是否进入休眠模式。
  • 粗略估算电池续航。

但万用表有个致命弱点——它看不到瞬态。BLE 设备发射时电流脉冲可能只有几百微秒,万用表根本反应不过来。这时候就需要示波器上场了。

2.2 示波器:捕捉瞬态电流的利器

示波器测电流,通常有两种方式:

  1. 电流探头:夹住电源线,非接触测量。方便,但探头带宽和灵敏度有限,小电流测不准。
  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 引出,用于示波器或分析仪触发)