资讯动态

Cat.1模组低功耗设计:Vref引脚漏电导致PSM待机电流飙升的排查与对策

发布时间:2026/10/20 8:02:10 来源:尧图企业网站定制
去年在给一个低功耗定位终端做改版时我栽了个不大不小的跟头Cat.1 模组的 PSM 待机电流按规格书标称不到 10uA结果整机实测却稳稳停在 58uA 下不来。把负载、软件、焊接挨个排查过一轮之后最后发现电路图里多画了一根 Vref 引出线就是这根线让模组在睡眠状态下始终无法彻底关断基准电源域。也是从那次开始我养成了一个习惯拿到任何 Cat.1 模组的参考设计第一件事就是检查所有电源域引脚在待机状态下的连接关系尤其是 Vref 这种功能看起来很简单、漏电原因却非常隐晦的引脚。如果你正在做电池供电的物联网设备比如定位器、智能表计、资产追踪终端大概率迟早会碰到类似的事PSM 和 eDRX 都配置了整机待机电流依然是几十微安甚至上百微安。这篇文章不绕弯子直接讲清楚 Vref 的正确打开方式并用一次完整排查过程把原理、测量方法和软硬件对策一次说透。1. PSM 模式开了但待机 58uA这个项目的第一次功耗翻车1.1 先算一笔账多出来的 40uA 意味着什么当时项目用的是 700mAh 锂亚电池产品预期使用 24 个月以上。你拿计算器一按就清楚700mAh 除以 58uA 的理论待机时间是 12000 小时左右差不多 1.37 年这还不算电池自放电和低温环境下的容量衰减。按这个数字产品连预期的半程都撑不到。反过来看如果把待机电流降到 12uA理论时间直接变成 6 年多电池自放电反而成了主要限制因素。很多工程师会忽略这个量级差觉得不就是几十微安嘛但对电池供电产品来说每 10uA 都对应着几个月的续航损失尤其在容量本来就不大的电池上占比特别吓人。更麻烦的是这类问题不是靠改参数就能发现的。射频工程师测了传导、杂散软件工程师把 PSM、eDRX 参数反复改了无数遍模组依然在睡眠状态下保持高电流。最后只能承认问题不在配置而在于某个硬件细节把模组的电源域钉死在开启状态。1.2 PSM 到底关了什么没关什么要做低功耗排查必须理解 PSMPower Saving Mode的实际行为。模组进入 PSM 后射频接收通路基本关闭基带的大部分电源域被断电只保留 RTC 和定时唤醒所需的极小电路。从网络角度看模组已经不可达直到 TAU 定时器到期或者终端主动发数据才醒来。但是有一点经常被忽略PSM 节省的是模组自己能控制的电源域。如果外部电路把一个本该在睡眠时停止工作的引脚电压吊住模组内部的管理单元就会误判为外部仍在请求供电从而不让对应电源域进入关断状态。这就像一个声控灯系统明明整栋楼都拉闸了但门禁系统的供电还通着楼里就没法真正做到零能耗。Vref 这个引脚就是这类门禁系统里的关键一环。1.3 第一批样机上被忽略的 Vref 布线回到项目本身。当初电路设计时参考设计里 Vref 引脚是悬空的我们的工程师为了给电池电压采样提供一个更准的 1.8V 参考擅自加了一组分压电阻网络接到 Vref 上。具体接法是 Vref 经过两个 100kΩ 电阻分压中点再连到模组的 ADC 通道。从原理图上看这似乎只是给 ADC 提供了参考电位不至于引起待机功耗问题。但等到小批量贴片回来整机待机电流就从原来开发板的 12uA 涨到了 58uA。更讽刺的是这个分压网络提供的参考精度提升在实际上根本用不到因为模组内部本来就有带隙基准。那 40 多微安的增量到底从哪儿来的接下来就要看 Vref 引脚内部到底是什么结构。2. Vref 的角色拆解它背后其实是一路可关断的基准 LDO2.1 Vref 不是可以随便借电的 1.8V 电源很多第一次做 Cat.1 模组的工程师会把 Vref 当成一个普通的 1.8V 输出电源来用这其实是最大的误解。Vref 通常是 ADC 基准电压输入/输出引脚由模组内部一颗独立的基准 LDO 产生典型电压 1.8V。这颗 LDO 和给 GPIO 供电的 VDDIO、给内部逻辑供电的数字核心电源完全不是一回事。VDDIO 掉电会导致 IO 状态混乱数字核心电源掉电会导致系统崩溃但 Vref 是允许在睡眠流程中被软件或硬件关断的它的作用范围非常窄负载能力通常只有几百微安甚至更低。你可以把它理解成精密秤旁边配的标准砝码需要称重时拿过来用称完立刻收回去。你不能因为砝码是金属的就顺手把它当砖头去垫桌子腿。2.2 为什么在 Vref 上接一个分压电阻网络能把整个模组唤醒这是整篇文章最核心的机制我会尽量讲透。模组睡眠流程中软件会命令基准 LDO 关闭但 PMU 硬件并不只是简单切断输出它通常会检测 Vref 引脚的外部负载状态如果检测到外部电路还在持续从引脚抽取电流PMU 就认为基准仍然被外部使用中于是维持 LDO 输出。这算一种保护机制目的是防止不明原因的掉电导致 ADC 采样结果异常或者外部器件因电源突然中断而出现逻辑错误。但它有个副作用如果你在 Vref 上挂了分压电阻、比较器、放大器这类持续工作的器件PMU 就永远等不到负载解除的信号基准 LDO 一直开着。另外即便 PMU 强行关闭了基准输出引脚外部如果存在到地的电阻通路也会形成一条缓慢放电的路径造成漏电流。更极端的情况是把 Vref 和外部 GPIO 直接相连睡眠时 GPIO 保持高电平电流会通过引脚倒灌进模组内部。我整理了一下常见的三种接法按实际功耗影响排个序Vref 处理方式待机电流影响风险评估引脚悬空或仅接 0.1uF 到地几乎无影响模组可正常睡眠推荐外接对地分压/下拉电阻网络电阻网络本身耗电同时阻止基准 LDO 关闭实测常增加 30~60uA高尽量避免被外部 GPIO 上拉到高电平通过引脚倒灌电流数值取决于上拉电阻可能达到几百 uA极高严禁我们项目的 58uA 就是这么来的外部分压电阻持续消耗约 18uA加上基准 LDO 无法关断带来的额外损耗凑成了整机待机的翻车数字。2.3 Vref 的正确用途什么时候该用它并不是说 Vref 这个引脚没用恰恰相反在某些场景下它非常合适。比如你用模组内置 ADC 采样外部模拟量本身又需要更高稳定度的参考电压那么使用 Vref 作为 ADC 基准是合理的但必须遵循两个原则第一仅在采样窗口内使用第二采样完成之后要从物理上断开外部电路。如果确实需要一个 1.8V 给外部低功耗传感器供电也别直接挂在 Vref 上正确的做法是加一颗负载开关。睡眠前 MCU 先把负载开关关断再去触发模组进入 PSM。这样 Vref 看到的外部负载为零基准 LDO 才能正常关闭。唯一的红线是永远不要用 Vref 去驱动 LED、运放、比较器、电平转换电路这类有源器件它的负载能力支持不了而且会直接破坏模组的深度睡眠。3. 从整机到单引脚Vref 漏电路径的完整定位实录3.1 测量方案万用表、示波器和 10Ω 采样电阻的配合排查之初我先搭建了一套靠谱的测量环境。很多工程师习惯直接把万用表调到电流档串进回路这其实有个大问题万用表的电流档内阻可能有几欧姆甚至几十欧姆在 3.8V 供电的模组系统里会造成明显的电压跌落轻则测量值偏小重则模组直接复位。我的做法是电源正极串联一只 10Ω 的 1% 精密采样电阻示波器两个通道分别接电阻两端用差分方式测压差再除以 10 得到电流。同时保留万用表 uA 档作为二次验证但只在确认系统不重启时才串入。工具清单大致是这样工具用途注意事项可调直流电源3.8V限流 100mA提供稳定供电限流一定要设防止短路烧板10Ω 精密采样电阻把电流信号转成电压信号用 1% 精度功率足够双通道示波器抓电流波形和引脚电平用 DC 耦合差分测压差万用表 uA 档验证稳态平均电流注意内阻对系统的压降影响这一步的目标是把模组进入 PSM 后的电流基线稳定读出来而不是只看某个瞬时峰值。3.2 分层断电把板子拆成多个供电岛再逐一排除拿到 58uA 这个数字后我没有直接怀疑某条具体走线而是把整板按功能切成了几块独立供电的岛逐一断开测试。排查步骤记录如下整机全连接待机电流 58uA拔掉传感器板排线电流降到 56uA说明传感器不是主犯断开底板与模组串口之间的电平转换芯片供电电流降到 43uA有一些改善但依然偏高断开 Vref 分压电阻网络的一端让 Vref 引脚悬空电流瞬间掉到 8uA单独恢复 Vref 分压网络确认电流再次回到 58uA问题锁定在 Vref 外部负载。这个过程中的关键技巧是每次改动后不要立刻记录要等 30 秒以上让模组完全进入稳定睡眠状态。部分平台的基准 LDO 关闭有软超时逻辑改动后紧接着的几分钟内数据可能会跳动。3.3 用示波器看周期性脉冲 vs 常驻漏电在确认问题点之前我还做了一步判断用示波器观察采样电阻上的波形。因为 PSM 模式下模组仍然会有周期性的 TAU 唤醒如果待机电流高是因为唤醒过于频繁波形上会看到明显的周期脉冲而如果问题出在 Vref基线应该是一条平稳的高电流直线。实测波形非常平滑58uA 没有任何周期性脉冲这说明模组根本没有进入真正的深度睡眠电源域被常驻负载钉死了。这个现象基本排除了参数配置问题把矛头指向硬件连接。随后我用示波器去量 Vref 引脚电压发现即使在模组进入睡眠指令之后Vref 仍然稳定在 1.8V。这进一步证实了 PMU 一直在维持基准输出没有进入预期的关断状态。3.4 数据核对把引脚描述和参考设计并排抄一遍最后一步是回到文档。我把模组规格书里的引脚描述和官方参考设计原理图并排摆在一起逐条核对。规格书里关于 Vref 的说明很明确模拟参考电压引脚无外部负载时建议悬空或接 0.1uF 旁路电容禁止外接对地电阻网络否则外部负载会阻止基准电源域关闭。参考设计里 Vref 恰好就是悬空的只有一颗 0.1uF 电容到地。而我们这批原理图多出来的分压网络完全属于工程师觉得需要但产品和硬件都不知情的私自添加。拆掉之后整机待机电流回到 10uA 左右项目续航恢复正常。4. 软硬件协同把 Vref 放在该开的时候开、该关的时候关4.1 硬件侧Vref 引脚的最终接法清单经过这次事故我把 Vref 的硬件接法整理成了一个固定清单后续所有项目都按这个执行。方案 A最推荐Vref 引脚不引出在 PCB 上直接悬空或者就近接一颗 0.1uF 电容到地。这颗电容的作用是抑制外部噪声耦合避免模组 ADC 采样时受到开关电源纹波干扰。接上电容后待机状态下没有持续放电回路对功耗无影响。方案 B如果保留调试需求可以在 Vref 与测试点之间串一颗 0Ω 电阻。调试时通过电流表飞线测量量产前把 0Ω 拿掉等于多了一道物理保险。方案 C如果项目确实需要 1.8V 参考或供电给某个外部负载务必在 Vref 和负载之间增加负载开关。我用的是常见的小信号 P-MOS栅极通过一个 100kΩ 电阻接 MCU GPIO睡眠时 GPIO 置高P-MOS 栅源电压接近 0通路关断采样时 GPIO 拉低P-MOS 导通给负载供电。模拟开关也可以但要注意选自身静态电流极低的型号。接法适用场景待机影响悬空或接 0.1uF 到地大多数模组方案无串 0Ω 电阻引出到测试点调试阶段无加负载开关再引到外部负载必须外接 1.8V 参考睡眠时负载隔离无影响直接接电阻网络或外部器件不推荐30~100uA 甚至更高4.2 软件侧睡眠前按顺序关 ADC、关基准输出、再进 PSM硬件改完之后软件流程也要配合否则就算电路没问题睡眠顺序不对依然可能触发异常状态。我在代码里把进入睡眠的动作固定成了下面这个顺序。/** * 低功耗上报后进入睡眠的流程示意 * 具体 AT 指令以实际模组手册为准这里只描述行为顺序 */ void enter_lowpower_sleep(void) { /* 1. 完成业务数据上报 */ uart_send(ATCPSMS1\r\n); /* 使能 PSM参数按平台配置 */ delay(20); /* 2. 关闭 ADC 采样通道避免采样电路继续维持基准 */ uart_send(ATCADC0\r\n); /* 关闭 ADC指令名因平台而异 */ delay(10); /* 3. 关闭基准输出 / 基准 LDO */ uart_send(ATVREFCTL0\r\n); /* 按手册调用部分平台仅需关闭 ADC 即可 */ delay(10); /* 4. 拉低 WAKEUP 引脚通知模组进入 PSM */ gpio_write(WAKEUP_PIN, GPIO_LEVEL_LOW); }需要注意的细节是顺序不能乱。先关基准再上报会导致上报过程中引用外部参考的电路工作异常先进入 PSM 再去关外部负载基准 LDO 可能因为负载未消除而根本无法关闭。正确的做法是先让外设停止消耗再关 ADC再关基准最后拉低唤醒引脚让模组睡死。另外很多模组在 PSM 状态下串口不再响应任何指令所以任何命令必须在拉低 WAKEUP 之前发完。唤醒时也要拉高 WAKEUP 引脚等待模组发出就绪信号后再开始下发数据。4.3 可复用的原理图自查清单经过这次教训我把 Vref 检查提升到了硬件评审的第一优先级。每次改完电路我都会逐条对照以下清单Vref 引脚是否悬空或只接 0.1uF 旁路电容是否有外部电阻网络或者有源器件直接接到 Vref外部负载是否通过负载开关隔离睡眠时能否彻底关断睡眠流程是否先断开外部负载再关闭 ADC 和基准输出模组进入 PSM 后待机电流波形是否是一条平稳的低电流直线如果你能在原理图阶段就做完这几项检查后面至少能省下两周排功耗问题的时间。5. Vref 之外Cat.1 低功耗设计里的另外四类高频坑5.1 UART 上拉电阻最容易被忽略的常驻电流Vref 解决了不代表整机功耗就万事大吉。同一块板子上我们后来又陆续踩了几个坑第一个是串口上拉电阻。模组和 MCU 之间的 TX/RX 经常需要接上拉电阻保证空闲电平稳定有人习惯用 10kΩ这在正常工作状态下完全没问题但睡眠时问题就来了模组和 MCU 都不工作了上拉电阻仍然把 IO 拉到 VDDIO一路 10k 对地 3.3V 就是 330uA 电流两条串口线轻松超过 600uA比整个模组睡眠还耗电。正确做法是如果串口在睡眠期间不需要维持电平就把 MCU 侧 GPIO 配置为高阻输入或下拉状态如果必须保留上拉把电阻从 10k 换成 1M单路电流降到 3.3uA几乎可以忽略。注意1M 上拉在高速通信时可能影响边沿但 Cat.1 模组串口常用波特率不超过 1152001M 上拉完全够用。5.2 SIM 卡检测引脚和 32kHz 时钟输出的无谓消耗第二个坑出在 SIM 卡卡座的 CD 检测引脚上。参考设计通常要求把 CD 脚接一个上拉到 1.8V再连到模组 GPIO。正常情况下这没问题但如果你只是出于万一要检测插卡状态接了它睡眠时内部的上拉回路仍然在工作同样会带来数微安到十几微安的电流。这类引脚的特点是一年用不了几次但电流一年 365 天都在跑。我的处理方式是不做热插拔场景的项目直接把 CD 引脚接地或按参考设计固定电平不用它干任何事需要检测的项目也要让 MCU 在睡眠前把对应 GPIO 配置成高阻态。另一个更隐蔽的是模组的 32.768kHz 时钟输出脚。有些平台允许把低频时钟引出来给外部 MCU 使用外观上很诱人MCU 不用再放一颗晶振时钟还能同步。但代价是睡眠时模组的时钟缓冲器也一直在工作通常会吃掉十几个微安。如果 MCU 在深度睡眠时不需要时钟维持务必通过 AT 指令或引脚配置关掉这个输出。5.3 电源路径选 LDO 还是 DC-DC使能时序怎么写第三类坑和电源拓扑有关。我见过不少设计把 3.8V 锂电池直接经过一颗普通 LDO 降成 3.3V 给模组供电。普通 LDO 的静态电流 Iq 动辄几十微安睡眠时模组倒是睡着了LDO 自己还在持续耗电。从低功耗角度优先选 Iq 小于 1uA 的低功耗 LDO。市面上这类芯片并不少关键是下原理图时要注意看数据手册里 Iq 的定义条件有些厂家标注的是微安级实际在空载下表现也还不错。如果模组发射时峰值电流很大LDO 可能因为压差发热导致输出跌落这时候就需要用带轻载省电模式的降压 DC-DC。低 Iq 同步降压在睡眠时可以进入脉冲模式代价是纹波稍大但只要模组的电源输入范围足够整体收益还是正的。还有使能脚的默认电平问题。有些参考设计把 EN 脚经 100kΩ 下拉到地目的是防止上电瞬间误开启外部负载但如果你主控没来得及拉高 EN整机就永远处于关机状态。我的做法是 EN 直接固定连到电源输入或主控 GPIO加上正确的默认策略避免出现静态正常、动态翻车的情况。5.4 指示灯和传感器供电交互体验要有代价意识最后一类坑是 LED 指示灯和传感器电源的睡眠管理。先说 LED。很多人习惯用 GPIO 高电平点亮 LED这种方式在代码上很直观但睡眠时如果忘记把 GPIO 拉低LED 会处于微亮状态电流轻松突破 100uA。正确做法是用灌电流方式LED 负极接 GPIO正极通过限流电阻接 VDDIO点亮时 GPIO 输出低电平睡眠时 GPIO 配置为输入高阻彻底断掉电流路径。再说传感器。很多传感器自己有 sleep 引脚但数据手册上的 sleep 电流往往只代表数字核心休眠内部的 ADC、运放或者接口电路可能还在运行。最稳妥的办法是所有外设的 VDD 都统一接到一颗负载开关上MCU 睡眠前先把整个传感器电源域切断。这一步操作看似简单实际能省掉的电流可能比模组自身睡眠节省的还多。那次 58uA 事件之后我把 Vref 检查从可选优化直接升到了硬件评审的第一项。说句实在话功耗问题最磨人的不是测量工具不够好而是软件配置看起来全对却忘了从物理层面去检查每一个电源域引脚。Vref 只是这类问题的典型代表——它看起来就是一条走线、几个电阻但在休眠的世界里它可能是一根永远不灭的灯丝。排查时别怕把板子拆得七零八落也别嫌飞线难看有时候真相就藏在某一根线断开之后电流表上突然掉下去的那几十微安里。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑