尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

智能温度计续航翻车排查:从电池内阻到固件休眠的完整思路

发布时间:2026/9/29 23:56:38

资讯中心
01
ARTICLE

智能温度计续航翻车排查:从电池内阻到固件休眠的完整思路

智能温度计续航翻车排查:从电池内阻到固件休眠的完整思路
智能温度计这类产品续航翻车几乎是绕不开的坎。我前后拆过七八款不同方案的智能温度计有蓝牙的、有WiFi的、有带屏幕的、也有纯电子墨水的续航表现从三个月换一次电池到两周就得充电的都有。表面上看是电池容量不够但真正拆开测下来问题往往出在几个非常具体的地方电池内阻偏大导致带载电压塌陷、休眠策略没做干净、电压检测电路本身在偷偷耗电、升压电路在轻载时效率极低。这篇就把我排查智能温度计续航问题的完整思路和实操过程摊开讲从电池本身、供电拓扑、检测电路到固件策略一层层往下挖适合正在做低功耗产品、或者手上有个续航不达标的温度计想搞清楚原因的同行参考。1. 先别急着换电池把续航问题的账算清楚很多人一遇到续航短第一反应就是电池不行了换一块。换电池确实是最省事的操作但如果你连问题出在哪都没定位换完可能还是老样子。我习惯的第一步是先把续航的账算清楚用数据判断到底是电池的锅还是电路的锅。1.1 用容量除以平均电流先算理论续航任何电池供电设备的续航底层公式就一个续航时间小时 电池有效容量mAh / 系统平均工作电流mA比如一颗标称 1200mAh 的锂亚电池ER14250 这类如果系统平均电流是 0.5mA理论续航就是 2400 小时约 100 天。如果实测只有 20 天那平均电流实际达到了 2.5mA是设计值的 5 倍。这个差距不可能靠电池虚标解释一定是电路或固件有问题。我一般会拿一个高精度的电流记录仪或者用万用表配合长时间采样挂在电池正极回路上连续记录 24 小时以上的电流曲线。注意普通万用表测不了这种微安级的动态电流因为它的采样率和量程切换跟不上设备的休眠-唤醒节奏。你需要的是能记录 uA 级、采样率至少 1kHz 以上的工具或者用专门的功耗分析仪。1.2 把电流拆成工作态和休眠态两笔账拿到电流曲线后我会把它拆成两部分看工作态电流MCU 唤醒、传感器采样、屏幕刷新、无线发射时的大电流通常是 mA 到几十 mA 级别但持续时间短。休眠态电流设备待机时的底电流理想情况应该是 uA 级别但很多设计会漏到几百 uA 甚至 mA。关键洞察是休眠态电流才是续航的隐形杀手。举个例子一个设备每 60 秒唤醒一次每次工作 200ms、电流 20mA那么工作态贡献的平均电流是 20mA × (0.2/60) ≈ 0.067mA。但如果休眠态漏了 0.5mA那休眠态就是工作态的 7 倍多。很多人只盯着工作时耗电大不大却忽略了设备 99% 的时间都在休眠休眠漏电才是真正吃掉电池的元凶。我实测过一款温度计休眠电流标称 3uA实测却有 380uA。查下来是电压检测分压电阻一直在耗电——两个 1MΩ 电阻串联分压3.7V 下持续消耗约 1.85uA这还不算大真正的大头是 LDO 的静态电流和一颗没关干净的传感器。所以算账这一步必须把休眠态单独拎出来测。1.3 电池内阻被忽视的带载塌陷元凶这里要引入一个关键词电池内阻。电池不是理想电压源它等效于一个理想电压源串联一个内阻。当设备瞬间拉大电流时内阻上的压降会让电池端电压瞬间塌下去。用等效电路模型说就是V_terminal V_ocv - I_load × R_internal一颗新碱性电池内阻可能只有 100~200mΩ但用久了或者低温下内阻会涨到几欧姆。如果设备在无线发射瞬间拉 100mA 电流内阻 2Ω 的话压降就是 0.2V。本来 1.5V 的电池瞬间掉到 1.3V如果 MCU 的欠压检测阈值设得高就会误判电量不足而提前关机或反复重启这本身又增加了耗电。我遇到过最典型的情况温度计在低温环境下比如冷库场景续航骤降。测下来不是容量问题而是低温让电池内阻飙升带载电压塌陷触发欠压复位设备陷入复位-启动-再复位的死循环电流一直居高不下。这种问题换电池没用得从供电拓扑和欠压策略上解决。2. 供电拓扑里的三个耗电黑洞把账算清楚之后如果确认是电路问题接下来就要顺着供电路径一个个查。智能温度计的供电链路通常是电池 → 保护/切换电路 → 稳压LDO 或 DC-DC→ MCU 和传感器。这条链路上有三个地方最容易漏电。2.1 LDO 的静态电流和压差损耗很多设计图省事直接用一颗 LDO 把电池电压稳到 3.3V。LDO 的问题是两方面的第一静态电流Quiescent Current。普通 LDO 静态电流可能几百 uA低功耗 LDO 能做到 1uA 以下。如果你用了一颗 200uA 静态电流的 LDO那设备还没干活光 LDO 就吃掉了 200uA这对目标休眠 5uA 的设计来说是灾难。选型时一定要看数据手册里的 Iq 参数而且要看清是无负载静态电流还是关断电流两者差别很大。第二压差损耗。LDO 是线性稳压输入输出压差全部变成热耗散。如果电池是 3.7V 锂电稳到 3.3V压差 0.4V效率约 89%还行。但如果是两节碱性电池 3V 供电稳到 3.3V那根本稳不住得先升压再稳压链路一长效率就下来了。我的经验是电池电压本身就接近 MCU 工作电压时优先考虑不用稳压器让 MCU 直接宽压供电。现在很多低功耗 MCU比如 STM32L 系列、ESP32-S3 的低功耗模式支持 1.8~3.6V 宽压电池直供反而效率最高还省掉了 LDO 的静态电流。2.2 DC-DC 升压电路在轻载时的效率陷阱如果电池电压低于 MCU 需求比如单节 1.5V 电池要供 3.3V 系统就得上 boost 升压。boost 电路在重载时效率能到 90% 以上但在轻载uA 级时效率可能暴跌到 20% 甚至更低因为开关损耗和静态电流占比变大。这里涉及一个热词里提到的概念boost 电压环怎么抑制振荡。轻载时 boost 容易进入 PFM脉冲频率调制或者 burst 模式输出电压会有纹波如果反馈环路设计不好还会振荡振荡本身又增加损耗。选 boost 芯片时要重点看它的轻载效率曲线和静态电流有些芯片专门为低功耗设计轻载时静态电流只有几百 nA。我踩过的坑用了一颗通用 boost 芯片 datasheet 上标称效率 92%但那是 100mA 负载下的数据。实际设备 99% 时间在 uA 级休眠boost 芯片自己就耗掉 50uA续航直接腰斩。后来换成支持直通模式bypass的芯片休眠时让电池电压直接旁路过去才把休眠电流压下来。2.3 外接电源与电池自动切换电路的漏电有些温度计设计成USB 供电优先电池备用这就需要外接电源和电池供电自动切换电路。常见方案是用两个肖特基二极管做 ORing或者用 PMOS 做理想二极管。肖特基二极管方案简单但有正向压降0.3V 左右而且反向漏电流在高温下会变大。PMOS 理想二极管方案压降小但如果控制逻辑没做好可能出现外接电源和电池同时导通的情况导致电池被反向充电或者两个电源打架。更隐蔽的问题是切换电路在电池供电时如果检测外接电源的分压电阻一直挂着就会持续耗电。我见过一个设计检测 USB 是否插入的分压电阻是 100kΩ100kΩ3.7V 下持续耗 18.5uA虽然不大但对于目标 5uA 休眠的设计来说就是超标。正确做法是用一个 MOS 管在电池供电时把检测分压网络断开或者用极低功耗的比较器配合大阻值电阻。3. 电压检测电路精度与功耗的平衡术智能温度计通常需要检测电池电压来估算剩余电量这就涉及电压测量和ADC 采集。这块是续航问题的重灾区因为检测电路本身要耗电而且精度和功耗往往矛盾。3.1 分压电阻取值越大越省电但ADC输入阻抗会捣乱最朴素的电压检测就是两个电阻分压接到 MCU 的 ADC 引脚。分压电阻越大静态耗电越小。比如 1MΩ1MΩ 分压3.7V 下耗电 1.85uA如果换成 100kΩ100kΩ耗电 18.5uA差了 10 倍。但电阻不能无限大。MCU 的 ADC 有输入阻抗要求STM32 的 ADC 建议信号源阻抗不超过几十 kΩ否则采样保持电容充电不足读数会偏低。这就矛盾了想要省电就得用大电阻但大电阻又影响 ADC 精度。解决方案有两个用电压跟随器做阻抗变换。运放构成的电压跟随器输入阻抗极高MΩ 甚至 GΩ 级输出阻抗极低可以完美隔离大阻值分压网络和 ADC。代价是运放本身要耗电得选低功耗运放比如静态电流 1uA 以下的。而且运放供电本身也要考虑如果运放一直开着那省下的分压电阻耗电又被运放吃回去了。所以通常配合采样时才给运放上电的策略。采样时才接通分压网络。用一个 MOS 管控制分压电阻的下端接地平时断开只有要测电压时才导通几毫秒。这样平均耗电可以做到极低。注意 MOS 管的漏电流要小否则断开时还是有微安级漏电。3.2 用内部参考电压反推电池电压省掉外部基准很多 MCU 内部有一个固定的参考电压比如 STM32 的 VREFINT约 1.2V同时 ADC 也可以测量这个内部参考。利用这个特性可以在不增加任何外部元件的情况下反推出电池电压。原理是这样的ADC 测量内部参考 VREFINT 时得到的数字量是ADC_raw VREFINT / V_bat × 满量程因为 VREFINT 是已知的固定值V_bat 就是电池电压假设 ADC 参考就是电池电压所以V_bat VREFINT × 满量程 / ADC_raw这个方法的好处是不需要外部分压电阻零额外功耗而且能自动补偿电池电压变化对 ADC 参考的影响。缺点是精度受内部参考的初始误差和温漂影响通常只能做到 ±2% 左右用来估算电量够用了。我在多个低功耗项目里都用这招实测很稳。3.3 电池内阻测试电路的思路热词里提到了电池内阻测试电路和内阻仪。对于温度计这种产品一般不需要精确测内阻但如果你想做更准的电量估算或者想检测电池老化可以设计一个简易的内阻测试。思路是在已知负载电流变化的情况下测量电池端电压的变化用欧姆定律反推内阻R_internal ΔV / ΔI具体做法是让设备在某个时刻切换一个已知的负载电阻比如通过 MOS 管接入一个 100Ω 电阻测量切换前后的电压差就能算出内阻。这个方法在 BMS电池管理系统里很常见但对于温度计来说有点杀鸡用牛刀除非你要做电池健康度评估。我个人的建议是温度计这类产品电量估算用电压查表法就够了配合温度补偿低温下电压阈值要下调没必要上内阻测试徒增成本和功耗。4. 固件层面的休眠策略省电的最后一公里硬件查完没问题续航还是不达标那八成是固件没写好。休眠策略是低功耗设计的最后一公里也是最容易出问题的地方。4.1 外设时钟没关干净等于没休眠MCU 进入低功耗模式前必须把所有不用的外设时钟关掉。我见过太多代码主循环里调了个HAL_PWR_EnterSTOPMode就以为万事大吉结果 ADC、UART、SPI 的时钟还开着每个外设漏几十 uA加起来就是几百 uA。正确的做法是进入休眠前逐个确认ADC 是否 disable未使用的 GPIO 是否配置为模拟输入或带上拉的输入浮空输入会因引脚电平不定导致漏电外部传感器的电源是否切断很多传感器有 shutdown 引脚不用时要拉低屏幕背光、LED 是否完全关闭我习惯在休眠前加一段清理代码把所有外设状态打印出来调试阶段确认没有遗漏。4.2 唤醒周期与采样频率的权衡温度计的采样频率不需要很高室温变化是缓慢的。如果每 1 秒采样一次纯属浪费。我一般设成每 30 秒到 5 分钟采样一次具体看应用场景。冷库监测可以 5 分钟一次室内舒适度监测 1 分钟一次足够。唤醒周期拉长平均电流线性下降。但要注意唤醒时的启动开销。如果每次唤醒都要重新初始化传感器、等待传感器稳定有些温湿度传感器上电后需要几十 ms 稳定时间那唤醒时间太长即使周期长平均电流也降不下来。所以要选启动快的传感器或者让传感器保持低功耗待机而不是完全断电。4.3 用 RTC 唤醒代替定时器轮询有些设计用 MCU 的内部定时器做周期性唤醒但定时器运行时 MCU 不能进入最深休眠。正确做法是用 RTC实时时钟的闹钟功能唤醒MCU 可以进入 STOP 或 STANDBY 模式功耗降到 uA 级。STM32 的 STOP 模式典型电流是几 uASTANDBY 模式可以到 1uA 以下。代价是 STANDBY 唤醒后相当于复位所有 RAM 数据丢失需要重新初始化。如果你的应用不需要保留状态STANDBY 是最省电的选择。4.4 无线发射的功耗优化如果温度计带蓝牙或 WiFi无线发射是最大的瞬时功耗来源。BLE 发射瞬间可能拉 10~20mAWiFi 更高。优化手段包括降低发射功率如果通信距离要求不高减少广播频率合并数据包减少发射次数用 BLE 的 connection interval 拉长连接间隔ESP32-S3 这类芯片蓝牙和 WiFi 的功耗差异很大如果只是本地显示或者偶尔同步优先用 BLE 而不是 WiFi。热词里提到的esp32s3电池供电电量检测ESP32-S3 本身有低功耗模式但它的深度休眠电流相比专用低功耗 MCU 还是偏高如果续航要求极致可能要考虑MCU 常驻低功耗 无线模块单独控制的架构。5. 一次完整的续航排查实录前面讲的都是分模块的思路这里我把一次真实的排查过程完整还原一遍让你看到问题是怎么一层层定位的。5.1 现象描述与初步测量设备是一款带电子墨水屏的蓝牙温度计标称续航 6 个月实际用户反馈 3 周就没电。拿到样机后我先测了整机平均电流结果是 1.8mA而设计目标是 0.25mA差了 7 倍。拆开测休眠电流发现设备在应该休眠的时候还有 1.5mA 的底电流。这就锁定了方向休眠没休干净。5.2 逐项排查休眠电流我用电流探头配合示波器观察休眠时的电流波形发现电流不是稳定的而是有周期性的尖峰。这说明有东西在周期性唤醒。查固件发现 RTC 闹钟设的是每 1 秒唤醒一次但唤醒后只做了一件事检查一个标志位然后继续睡。这个检查本身很快但唤醒-休眠的切换开销时钟切换、外设重新配置每次要几百 us累积起来就是可观的功耗。把唤醒周期改成 60 秒后底电流降到了 400uA。还是高。继续查发现电子墨水屏的驱动电路在休眠时没有完全断电驱动 IC 的 standby 电流有 200uA。加了一个 MOS 管控制墨水屏供电休眠时彻底断电底电流降到 80uA。再查发现电压检测的分压电阻100kΩ100kΩ一直挂着耗 18.5uA。改成采样时接通底电流降到 55uA。最后发现 LDO 静态电流 40uA换了一颗低功耗 LDOIq1uA底电流降到 15uA。5.3 低温场景的额外问题常温下续航恢复到接近设计值后我把它放进低温箱测试-20℃。结果续航又崩了而且设备会随机重启。测电池电压发现低温下电池内阻从 200mΩ 涨到了 3Ω蓝牙发射瞬间拉 15mA压降就是 45mV加上电池本身低温容量下降端电压跌到了 MCU 的欠压复位阈值以下触发复位。解决方案有两个一是把欠压复位阈值调低但要确认 MCU 在低电压下还能正常工作二是在蓝牙发射前先测一下电池电压如果偏低就降低发射功率或者推迟发射。我选了后者配合一个简单的电压前馈逻辑问题解决。5.4 最终续航验证经过上述修改常温下平均电流降到了 0.22mA理论续航约 7 个月实测 6 个半月。低温下-20℃续航约 3 个月虽然下降明显但符合锂电池的低温特性预期用户可接受。这次排查给我的最大教训是续航问题是系统性问题不能头痛医头。从电池、供电、检测到固件每一环都可能漏电必须用数据驱动逐项排除。6. 几个容易忽略的细节和实操建议最后分享几个我在多个项目里踩过或者见别人踩过的坑都是文档里不会写、但实际很要命的细节。6.1 GPIO 浮空输入的漏电MCU 的 GPIO 如果配置成浮空输入而引脚外部又没有明确的电平引脚电压会处于不定态导致输入级 MOS 管部分导通产生漏电。这个漏电可能达到几十 uA。正确做法是未使用的 GPIO 配置为模拟输入如果支持或者带上拉/下拉的输入或者直接配置为推挽输出并输出固定电平。6.2 电容漏电流大容量电容尤其是电解电容和某些陶瓷电容在高温下漏电流会增大。如果休眠时电容还挂在电源上漏电流可能达到 uA 级。选型时注意电容的漏电流参数必要时在休眠时断开电容。6.3 电池自放电不能忽略即使电路做到零功耗电池自己也会自放电。锂亚电池自放电率约 1%/年碱性电池更高。如果设计续航是几年自放电就是主要因素了。这时候要选低自放电的电池类型。6.4 测量工具的接地问题测 uA 级电流时测量工具本身的接地和屏蔽很重要。我曾经因为示波器探头地线环路引入噪声导致电流读数偏高好几倍白白排查了半天。建议用电池供电的电流记录仪或者确保测量设备单点接地。6.5 别忘了温度对电池的影响热词里提到电池低温启动仿真和pn结电压随温度变化这两点都和温度有关。电池的可用容量和内阻都随温度变化低温下容量可能只有常温的 50%~70%。做续航估算时要按最恶劣温度来算而不是常温。另外如果用二极管做电压参考或者防反接二极管的 PN 结电压有 -2mV/℃ 的温漂会影响电压检测精度需要软件补偿。排查智能温度计的续航问题本质上是一个找漏电的过程。我的经验是先用电流曲线定位是工作态还是休眠态的问题然后顺着供电路径逐项测量最后用固件策略兜底。整个过程要有耐心因为漏电往往是多个小问题叠加的结果单个看都不起眼加起来就要命。把每一环都做到位续航自然就上来了。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。