尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Nordic nRF54L的50nA休眠电流:低功耗整板设计实战

Nordic nRF54L的50nA休眠电流:低功耗整板设计实战 第一次看到这颗芯片的休眠电流参数时我愣了一下。50 nA 是什么概念折算一下50 nA 等于 0.05 µA按一年 8760 小时算连续放一年只吃掉 0.438 mAh 的电。就算用一颗普通的 CR2032 纽扣电池去维持这个休眠状态理论上放它几百年都和刚出厂差不多。做低功耗产品做了十来年见过太多“标称低功耗、实测吓一跳”的案例但这次这个数字确实让我心动。芯片厂是 Nordic熟悉低功耗蓝牙和物联网无线 MCU 的人对这个名字都不陌生。这颗新芯片延续了他们一贯的低功耗路线把深度睡眠状态下的漏电流往下压了一个数量级。接下来我会拿我手头正在测的 nRF54L 系列新芯片作为参照物聊不过这里的原理和套路对 Nordic 其他新系列、甚至别的家低功耗 MCU 都是通用的。如果你准备做电池供电、长时间待机的产品比如温湿度传感器、资产追踪标签、在途监测终端、穿戴配件、智能门锁里的无线模块或者你正被整板休眠电流怎么都降不下来这件事折磨这篇内容应该能给你不少启发。1. 50 nA 休眠电流到底意味着什么1.1 一年 0.438 mAh这笔账怎么算先把这个数字背后的算术题讲清楚。50 nA 换算成毫安是 0.00005 mA一年是 365×248760 小时两者相乘就是 0.00005 × 8760 0.438单位是 mAh。就是这么简单但别小看这个结果。把不同量级的休眠电流放到一起对比会更直观。休眠电流一年消耗电量50 nA0.438 mAh0.5 µA4.38 mAh5 µA43.8 mAh50 µA438 mAh很多号称低功耗的 MCU深度睡眠电流在 1 µA 到 5 µA 甚至几十 µA 的水平看起来和 50 nA 只差一两个数量级但放大到产品生命周期里就是电池容量和体积的差别。一个典型的物联网传感器节点一天醒来一次每次醒来做一次采集、一点本地处理、发一帧数据工作过程平均耗电 1 mAh一年就是 365 mAh。在这种情况下50 nA 的休眠电流占比连 0.12% 都不到真正吃电的是射频发射和传感器工作时的能量。所以看到休眠电流低先别急着鼓掌要结合唤醒频率和工作电流一起算平均功耗。反过来想一颗芯片能把深度休眠的底线压到几十 nA说明它在电源管理架构上是真下了功夫。这种底子对降低整板平均功耗非常有利尤其对那种一天只上报几次、甚至只在被读卡器靠近时才通信的设备休眠电流基本决定了它的理论待机上限。1.2 把静态电流压到 50 nA难在哪芯片不是机械开关再多“关断”模式下晶体管上始终存在漏电流。主要来源有三块。第一是晶体管的亚阈值泄漏管子虽然在逻辑上被关断但源漏之间还是有小股电流流过工艺尺寸越小控制起来越麻烦。第二是栅氧化层隧穿电流先进工艺把栅氧做得更薄这部分漏电反而更躲不掉。第三是 IO 上的 ESD 保护二极管管脚悬空时它的反向漏电会直接给芯片当“隐形负载”。这些漏电在芯片后端设计阶段通常要靠多阈值电压单元库、电源门控、体偏置这些手段去压每个角落都是设计和工艺的博弈。可以打个比方一颗静态电流 50 nA 的芯片相当于门底下那条缝一年只漏过来一小滴水而有些老一代 MCU 深度休眠还带着几 µA 的漏电那就成了水龙头在滴水。水龙头滴一年你可能觉得还好但在纽扣电池供电的产品里这滴水流干的是产品的实际寿命。芯片设计者愿意花这么大力气把静态功耗压到纳安级换来的是用户可以放心地把设备扔在抽屉里或者贴在货物箱上一年后想起来去看电量还是满的。做系统设计的人看到这种芯片其实能感受到芯片设计团队把功耗当作一等公民来对待的态度。这不是营销参数而是从架构上重新做了取舍。2. 这颗芯片的低功耗设计思路拆解2.1 Nordic 低功耗路线的进化从浅睡到按需供电看 Nordic 这颗新芯片最值得聊的不是单看某一项参数而是它把功耗做低的技术路线。从早期的 nRF51 系列到 nRF52再到双核的 nRF53低功耗的思路一脉相承在 System OFF 模式下把一切可关的外设、存储器和时钟源全部切掉只保留极少的唤醒逻辑。但“切掉”不是白切芯片内部那么多电源域每个域之间的隔离做不好漏电还是会从缝隙里跑过去。新芯片在这一点上明显更激进把常供电域压缩到非常小只给唤醒逻辑、IO 唤醒、以及必要的复位和电源检测电路供电其余大片数字逻辑、存储器和射频模块全部断电。这样一来即使整颗芯片处于“消失”状态外部要叫醒它只需要一根改变电平的 GPIO 线。除了 GPIO 唤醒很多新方案还支持 NFC、USB 检测或者外部定时器唤醒具体要看 SDK 和芯片手册里的配置。这种按需供电的思路很像家里装修时留一个“永不拉闸”的小回路给门铃和安防摄像头出门前把其他电器一键总闸全关。既不影响随时需要的基本功能又把待机损耗压到最低。对于低频唤醒、超长待机的应用来说这种进化价值是实打实的。你要的是设备“在需要的时候能用在不需要的时候接近于不存在”。2.2 板级漏电50 nA 是怎么被偷成 5 µA 的芯片本身再省到了你手里的电路板上50 nA 也可能变成 5 µA 甚至 50 µA。板级功耗是一个“斗地主”局芯片只是在压低自己那一手牌整板才是决定你最终收益的牌面。常见的“偷电区域”我列几个电池电压检测用的分压电阻链、上拉/下拉电阻、板载指示灯特别是电源指示灯、外部看门狗芯片、串口电平转换器、传感器和外部 Flash 的休眠电流以及没有关掉的调试接口。举个例子很多工程师习惯用两个电阻把电池电压分压后送进 ADC 做电量检测。分压电阻如果常供就算用 1M 和 100k 的组合在 3.7 V 锂电下也会消耗大约 3.7 / 1.1M ≈ 3.36 µA一下子就是芯片休眠电流的 60 倍以上。正确做法是加一颗 MOSFET 把分压电阻的接地端接到某个 GPIO只在采集电压那几十毫秒里把它打开。还有电源芯片自身的静态电流 Iq。有些老 LDO 空载时静态电流就几十 µA这在低功耗产品里是灾难。做设计时要么选 Iq 只有几百 nA 的 LDO要么在待机时直接用 GPIO 控制后级电源的输入断开具体要看你的供电拓扑。别以为芯片标 50 nA整板就一定能做到 50 nA中间隔着无数个外围器件。3. 实操整板待机功耗逼近芯片极限的关键步骤3.1 硬件设计先给电源域划好边界我自己的习惯是画原理图之前先把整块电路板按供电关系切成两个域常供电域和可关断域。常供电域只放芯片、唤醒源可能还有一颗低频 RTC 或者极端低功耗的电压检测器可关断域放传感器、显示屏、电平转换、外部 Flash、射频前端对应的 LDO 等。这一步定了后面的低功耗设计就有了一张清晰的地图。具体操作上有几个点值得留意。第一在板子上留一个醒目的电源跳线或者测试点方便用电流表串进去测整板休眠电流不要等到样机回来再想办法找地方下探针。第二对需要完全断电的外设用低漏电的 MOSFET 负载开关或者用芯片自带的电源域输出控制引脚不要在可关断域上留任何常供路径。第三对所有常供电的 GPIO全部配置成禁用、高阻或者输出到一个固定电平尤其是连到外部芯片的那几条它们最容易变成反向供电的通道。PCB 自身的漏电也要重视。板子洗得不干净、助焊剂残留、环境湿度高都可能产生纳安到微安级的表面漏电流。50 nA 级别的芯片休眠电流是以干燥、清洁、符合推荐的 PCB 表面环境为前提的。我之前遇到一块板子怎么优化都停在 1 µA 左右最后发现是两个焊盘之间的助焊剂残留洗板之后一下子掉到几十纳安。这个教训我一直记着。3.2 软件与 SDK进入 System OFF 前的几个开关软件侧以 Nordic 的 SDK 为例进入 System OFF 模式的调用本身不复杂但前置准备要做足。大致分四步配置唤醒源。GPIO 电平变化唤醒是最常用的确认你选的引脚在 System OFF 状态下确实支持唤醒老平台还可以用 NFC 电场检测或者 USB 检测来唤醒新系列请以芯片手册为准。保存需要保留的数据。多数 Nordic 芯片的 System OFF 会把 RAM 彻底断电所以现场采集的数据、设备状态必须提前写入 Flash 或者 UICR启动后从非易失区恢复。这一步漏掉设备醒过来就是“失忆”状态。清理外设和 GPIO。把所有不用的外设关掉把所有裸露的 GPIO 配置为禁用或者固定电平尤其注意连到外部传感器、Flash 的中断脚和数据脚。调用 system off 接口。调用后芯片会进入极低功耗状态直到唤醒事件到来再重新启动。有几个坑要提醒。第一调试器千万别连着很多开发板的板载调试器本身就耗电还会通过调试接口反向给芯片供电必须断开整条调试链路再测。第二如果用 RTC 定时唤醒要知道 System OFF 模式下 RTC 很可能不运行这时要么退回带低功耗 RTC 的 System ON 模式功耗会高一些要么外挂一颗极低功耗的定时器芯片来做周期唤醒。产品如果是不定期异步事件唤醒比如刷卡、碰一碰、磁簧开关触发用 GPIO 唤醒就够了。3.3 测量 50 nA 电流的正确姿势测量纳安级电流普通万用表会很尴尬mA 档内阻大串进去造成的压降可能让芯片复位µA 档虽然分辨率够但很多表在低量程时的输入阻抗和偏置也未必靠谱。我一般用两种方法结合。第一种是用六位半万用表的低电流档并在电池端并联一个 100 µF 到几百 µF 的电容瞬时大电流由电容顶着电压不会被拉崩。注意要在电池和板子之间串联不是量 DCDC 的输出端。第二种是用高速电流探头或者专用功耗分析仪比如 Joulescope、PPK、N6781A 这类工具直接看唤醒瞬间的电流波形能清楚看到峰值有多高、宽度有多长这比只看一个平均电流数字有用得多。测量前把环境湿度控制一下别对着板子哈气别用手直接摸电源轨。读数稳定至少等一两分钟因为旁路电容充电、电解电容漏电、温度平衡都需要时间。这个过程本身就是芯片测试里最容易被忽略的一环但恰恰是低功耗产品成败的关键。4. 常见问题与排查技巧实录4.1 整板休眠电流降不下来先查这五类原因如果你测出来整板休眠电流总是降不下去按这个顺序排查最快。第一断开所有调试器和 USB 线有些 USB 线会通过调试器给板子反向供电第二把所有外设从电源上断开只留 MCU 最小系统看电流是不是回到芯片本底附近第三逐个恢复外设和外围电路恢复一个测一次记一次数。这么干通常很快就能锁定偷电大户。下面这张表是我这些年总结的高频原因直接对着查就行。现象常见原因解决办法整板电流比芯片本底高几十倍调试器还插着反向供电拔掉所有调试链路用电池供电电流在 1 µA 级别波动GPIO 浮空IO 漏电反转统一配置成禁用或固定电平休眠电流稳定偏大电压检测分压电阻常供用 GPIO 控制的压降开关只在采集时开休眠电流迟迟降不下来LDO 或 DCDC 静态电流过大换低 Iq 电源芯片或关断后级电源输入休眠电流受温度影响明显外部看门狗、e-marker 等芯片睡眠功耗偏高选超低功耗外设或用负载开关彻底断电洗板前正常洗板后变大助焊剂残留、水汽残留重新清洗干燥后再测必要时涂三防漆从这张表能看出来大部分整板功耗问题根子都在“你以为它关了其实它还在用电”。包括外部 Flash 在深功耗模式下有时也会有几百 nA 的电流更不用说带唤醒功能的外部传感器了。4.2 功耗排查的几个会少走弯路的习惯除了对照表格我还有几个实践经验可以分享。第一个是“从大到小拆电源域”。做样板时把板上每个供电支路都做成独立的跳线或者 0 欧电阻位。排查的时候一根一根断开看电流掉到哪个档位就知道哪条支路有问题。这个方法在多传感器方案里特别管用省得反复拆焊。第二个是建立功耗回归测试表。代码提交、板子改版、换物料之后都要重新跑一遍标准功耗场景。我习惯列一张表格记录休眠电流、浅睡电流、唤醒峰值电流、平均电流每次改动后填一次。不要靠记忆一张表比什么都可靠。第三个是注意测量点位置。如果万用表串在 DCDC 输出而不是电池输入端DCDC 自己空载时的静态电流就测不到这会给出虚假的“低功耗”假象。串在电池端才是真实的续航视角因为电池输出的每一纳安都会影响最后的使用时间。4.3 一次典型排查IO 反向供电把电流吃掉 9 µA举一个印象很深的例子。以前调一块板子芯片本底休眠电流实测只有 70 nA但整板死活停在 9 µA。把传感器、外部 Flash、分压电阻全部拆掉电流纹丝不动。最后拿万用表逐个量 GPIO发现有一颗外部传感器芯片的 INT 引脚被直接连到了 MCU 的一个 GPIO 上而这个 GPIO 在休眠前被配置成了输入上拉。问题就出在这里MCU 的上拉电阻通过 IO 把一点电反向供给了传感器传感器虽然处于掉电状态但它内部的保护电路和 ESD 路径把这一丝电压当成了电源吃掉了差不多 9 µA 的电流。把那个引脚配成禁用或者输出低电平电流立刻掉回 70 nA。这种反向供电的坑非常隐蔽因为你以为外设断电了实际上它正从 IO 口“蹭电”。这也是为什么低功耗设计里所有连到外设的 IO 都要仔细安排不能只关时钟不看引脚。我个人的体会是读到“50 nA”这类参数时第一反应应该是这颗芯片给了系统设计一个非常好的下限但最终用户手里的续航成绩还是要靠整板功耗预算、唤醒策略和外设选型一起撑起来。超低功耗芯片是低功耗产品的地基但不是全部。接下来我准备用这颗新芯片重新做一版温湿度节点目标是把整板休眠电流压到几百纳安以内到时候再回来把这套流程的实测数据晒给大家。如果你也在做类似设计建议从官方开发板开始测本底然后一块外设一块外设往上加每一次改动都留档你会少踩很多坑。
返回列表