开发板进了深度睡眠,万用表上的读数却比预想的大。这个时候最容易做的事,是回到代码里反复检查睡眠接口。
先看表接在哪里。若它串在开发板的 USB 输入端,读数里除了主芯片,还可能包括稳压器、指示灯、USB 转串口电路和外部传感器。芯片进入睡眠,不会自动替这些电路断电。

图为手工绘制的排查关系图,不是可直接接线的电路原理图,也不表示实测结果。
“睡眠电流”四个字不够。至少还要写清:从哪个接口供电、在哪条支路测量、输入电压、连接的外设,以及串口调试线是否插着。
若要测芯片所在支路,需要结合板卡原理图选择测量位置;不能把一块板上不明用途的跳线拔掉,就认为其他负载已经隔离。改变供电方式之前,也要确认板卡是否允许该接法,避免反向供电。
ESP-IDF 的睡眠文档说明了芯片电源域、唤醒源及相关配置。它描述的是芯片机制,不是任意开发板的整板功耗保证。对照数据手册时,要同时对照芯片型号和测试条件,而不只是找一个最小电流数字。
下面构造一组仅用于算式演示的数据,不是 ESP32 指标,也不是任何样机的测量结果。假设同一测量点、固定供电电压,一个周期为一秒:
阶段 | 假设电流 | 假设时长 |
|---|---|---|
唤醒后工作 | 80 mA | 20 ms |
睡眠 | 0.1 mA | 980 ms |
时间加权后的平均电流为:
(80 × 20 + 0.1 × 980) / 1000 = 1.698 mA现在分别看两种独立改动。其他条件不变,只把睡眠电流降到 0.05 mA,平均值是 1.649 mA;若保持原来的睡眠电流,把工作阶段缩短到 10 ms、睡眠延长到 990 ms,平均值则是 0.899 mA。
这不是建议所有项目优先缩短工作阶段。它说明,在决定花时间改哪里之前,先看各阶段对总消耗的贡献。真实波形未必是两段常数,应使用能覆盖完整周期的测量或积分结果。跨不同电压的供电轨比较时,还需要看能量,不能直接相加电流。
设备可能在发射、启动外设或处理任务时短暂拉高电流。低刷新率仪表只显示一个较平稳的数值,不足以解释为什么设备恰好在这个时刻复位。
遇到这种现象,要把故障时刻与电源电压变化、设备日志对应起来。量程、采样能力、接线压降和仪表接入造成的影响也要检查。不要只凭“平均电流很低”就排除供电问题,更不要直接把一次重启归因于某个元件。
建议先保留一组不变的基线:同一块板、同一份固件、同一供电、同一采样任务。然后每轮只改变一个条件,比如外设是否供电、调试输出是否开启或唤醒间隔。
记录“改了什么、曲线哪里变化、功能是否仍满足要求”。一次拔线又改配置,最后即使读数下降,也很难知道下一块板该照着改什么。
平均电流还不能直接变成续航承诺。可用电池容量、转换损耗、自放电和实际使用模式,都需要进入后续估算。
参考:ESP-IDF Sleep Modes、ESP32 数据手册。
作者:超维方程技术团队。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。