老规矩,先讲一段我自己的经历。几年前我接手了一款带BLE上报功能的温湿度采集器,老板的要求很简单:两节AAA电池,要撑到“自然报废”。第一版我用的是某颗静态电流标称“微安级”的LDO,想着这总够省了吧。结果整机休眠电流实测到十几微安,每天还有十几次广播事件,最后算了笔账,电池连一年都扛不到。后来我把供电架构换成了一颗PMIC,配合超级电容做了能量协同,整机休眠电流才真正降到1微安以下,续航一下子就不是“能不能撑住”,而是“电池自放电先扛不住”了。这篇想聊的就是这套方案的核心:BLE设备的脉冲式功耗 + PMIC的静态电流控制 + 能量协同设计。我会从为什么常见供电方案会翻车开始讲,再到MF9006这颗PMIC选型时该盯哪些参数,以及硬件电路、固件策略、实测数据、排查方法一步一步怎么落地。内容适合正在做BLE传感器、资产标签、可穿戴或能量采集设备的人看,也适合被“休眠电流”折磨得够呛的嵌入式工程师参考。没有太多玄学,全是实操。1. 低功耗物联网供电的真实痛点1.1 BLE设备的“脉冲式”功耗曲线很多人一提到低功耗,脑子里蹦出来的第一个词就是“睡眠电流”。这没错,但只盯着睡眠电流一定会翻车。BLE设备真正的功耗形态是脉冲式的:设备99%的时间在休眠,只有1%甚至更少的时间处于工作状态,而这1%里的瞬间电流又高得吓人。我拿一个典型的BLE温湿度计来说。设备每隔10分钟醒一次,读传感器、打包、然后广播一个BLE数据包,整个过程大概20~30毫秒。在这个窗口内,MCU从睡眠到运行、传感器上电、射频发射,电流会从1微安级别瞬间拉到十几毫安甚至更高。如果设备还挂了屏幕或者执行复杂计算,峰值冲到几十毫安都不奇怪。这个形态像什么?就像一个平时安静躺着、突然要百米冲刺的运动员。电源电路不能只看他睡觉时消耗多少,还得看冲刺时给不给得了那么多能量,以及冲刺结束回到睡眠时,能不能把系统滴漏的每一微安都锁住。普通LDO的问题在于:静态电流普遍在几微安到几十微安,而普通DC-DC虽然能扛峰值,但轻载时自身静态功耗大,跑一个广播事件可能要分把钟才能把损耗补回来。这就是为什么专门的PMIC开始占据低功耗物联网的市场缝隙。1.2 电池供电的三个隐性杀手第一个杀手是静态电流。设备休眠时,电源路径上如果有一滴漏电,一天就会损失24小时的漏电量。2微安的漏电在一天里吃掉约0.048mAh,看着不起眼,一年下来约17.5mAh,对一颗几百毫安时的纽扣电池就是好几个百分点。很多标称“低功耗”的芯片,休眠电流数据放在典型条件下很漂亮,但只要接了反馈电阻、使能脚悬空、输出电容偏大,漏电就成倍往上翻。第二个杀手是峰值电压跌落。电池都有内阻,尤其纽扣电池和软包电池,在低温环境下内阻还会进一步上升。射频发射瞬间的十几毫安电流会在电池内阻上形成压降,如果电源电路没有足够的储能电容缓冲,MCU会当场复位,或者导致蓝牙连接断链。这个坑在实验室常温下很难复现,一到冬天就原形毕露。第三个杀手是电池自放电与容量衰减。这看起来和电源设计无关,但对能量架构的决策影响非常大。如果一套方案把系统功耗压到了日平均几个微安,电池寿命的上限就不是电路决定的了,而是电化学特性决定的。做设计时就得想清楚:到底是减小设备功耗更划算,还是加大储能电容、引入能量采集更划算。1.3 为什么是PMIC而不是LDO或普通DCDCLDO的优势是便宜、安静、外围少,但它在降压场景的效率等于输出电压除以输入电压。电池电压3.7V降到1.8V,效率连一半都不到,剩下的能量全变成热量。更重要的是,LDO没有储能调度能力,BLE的瞬间脉冲会让低压差方案很难受,输入侧电压稍微波动,输出就跟着抖。普通DCDC能解决效率问题,但大多数通用DCDC是为稳定持续负载设计的,轻载静态电流常常是几十微安到几百微安。对锁存型传感器节点来说,这部分待机损耗就是主要的电量杀手。PMIC的本质是“为低功耗场景重新设计过的电源管理系统”,它会在一颗芯片里集成降压、升压、负载切换、储能管理、保护逻辑。MF9006就是这类芯片里比较典型的代表,面向BLE这类脉冲负载做了专门优化:休眠时静态电流极低,负载脉冲到来时能快速切到PWM模式供给能量,结束后又能自动回到PFM低功耗模式。光这一点,通用DCDC就做不到。提示:选PMIC不能只比较静态电流,要同时看静态电流、动态负载响应、轻载效率曲线、储能接口和冷启动能力。只看一项很容易在整机调试时被坑。2. MF9006核心特性与选型逻辑2.1 静态电流:每纳安都是电池寿命MF9006最吸引我的是它的休眠静态电流。我拿到的样片实测,在输出电压3.0V、无负载、PFM模式下,静态电流可以做到0.6微安左右,和规格书标的典型值基本一致。0.6微安是什么概念?一颗400mAh的纽扣电池,如果只挂这一颗PMIC的静态漏电,理论上可以撑大约666666小时,也就是76年。当然实际设备不可能只消耗这一点,但这个数量级说明,供电电路本身不再成为续航瓶颈。对比一下:很多LDO标称静态电流几微安,其实那个参数是“芯片自身消耗”,不算分压电阻和输出电容的漏电。MF9006这类PMIC会把内部参考、分压、比较器都优化到nA级,外围反馈电阻也设计成高阻值,这才把整机休眠电流压下来。注意:评估静态电流时,不要只信规格书的数字。实测时,把PMIC输出空载,用微安表直接串在输入侧,等系统稳定后再读数。刚刚上电的几秒内数字是假的,因为输出电容和内部电路还在建立状态。2.2 峰值能力与动态响应BLE设备对电源的第二个要求是瞬时响应。MF9006采用自适应模式切换:轻载时进入PFM模式,用最小的开关频率维持输出;当负载电流超过设定阈值时,自动切换到PWM模式,开关频率拉高,输出阻抗立刻降下来。这个切换有多快?我用示波器抓过VOUT在负载脉冲下的响应。负载从0.5mA跳到15mA,输出跌落大概100mV左右,在几十微秒内恢复到目标电压。对BLE射频模块来说,这个跌落幅度完全在容忍范围内。只要输出电容给足裕量,MCU不会复位,也不会出现发射功率骤降导致的连接不稳。选型时要关注的指标有三个:静态电流:决定休眠续航负载瞬态响应:决定峰值脉冲下输出电压的保持能力轻载效率:决定平均功耗MF9006在0.01mA到1mA负载区间内,效率曲线做得比较平,没有出现很多DCDC那种“轻载效率断崖式下跌”的情况。这就保证了设备即使只做每小时一次的短广播,能量也不会被电源电路浪费掉。2.3 冷启动与低压储能接入做能量采集设备的人一定遇到过这个场景:太阳能板在光线微弱时输出电压只有0.4V左右,根本不够给任何DCDC启动。很多PMIC解决不了这个问题的原因,在于内部电路本身需要正常工作电压才能开始工作。MF9006支持很低的启动电压,这意味着系统可以用一个很小的充电电容,把微弱的光伏电流或温差电能积累起来,达到启动阈值后一口气把负载唤醒,完成一次传感与上报,然后继续进入低功耗等待。这个能力对于无电池节点来说,属于“能不能跑起来”的关键条件。2.4 为什么我不再考虑“分立方案”也有朋友建议我,用一颗低功耗LDO加一颗普通DCDC加几个MOS管做负载切换,能省下PMIC的成本。我确实这么试过一轮,最后放弃了。原因是分立方案的静态电流很难压下去:LDO要漏几微安、DCDC要漏几十微安、MOS管驱动要漏电、保护电路还要漏底电流。就算每一级都选低功耗型号,加在一起也可能到几十微安。更麻烦的是,多个电源芯片上电时序不一致,BLE模块启动时可能会经历一次“假死”,排查起来的成本远超省下的那点BOM费用。MF9006这类集成方案把所有功能放在一颗芯片里,上电时序由内部逻辑统一管理,系统可靠性高了一个量级。3. 能量协同设计:从“供电”到“能量调度”3.1 能量协同的本质“能量协同”这个词听起来很玄,本质上就是给系统做一个全局能量预算,然后按优先级调度。传统供电方案是单向的:电池给PMIC,PMIC给负载,能量只走一条路。能量协同设计则把电池、能量采集源、储能电容、负载当作一个整体,让PMIC知道什么时候该用哪条路径供电,什么时候该把多余的能量存起来。打个生活化的比方:普通方案像一个没有余额概念的家庭,工资到账就花,花完就饿肚子;能量协同方案就像家庭账本,先盘点收入(能量采集),再分配支出(负载),有多余的钱就存起来(给电容充电),快没钱了就限制消费(进低功耗模式)。这套逻辑的核心是信息的闭环:PMIC不只是一个电源转换器,它还承担了“能量管家”的角色。3.2 双源协同拓扑我设计的电源拓扑大概是这样的:主供电源是锂亚电池或锂电池,负责提供系统基础能量辅助能量源是光伏板或温差发电片,通过MF9006的采集输入口接入储能电容放在PMIC的储能端口,负责缓冲瞬时大电流和能量采集的间歇性负载端是BLE SoC和传感器工作逻辑分几层:有采集能量时,PMIC优先用采集能量给负载供能,剩余电流给储能电容充电;采集能量不足但电容有电时,电容放电顶上去;两者都不足时,电池通过高效降压路径直接供能;电池电压掉到保护阈值,系统进入告警和低功耗状态。这个拓扑的好处是,BLE设备的峰值电流不需要电池单独承担。广播瞬间的大电流由储能电容来顶,电池只需要提供长时间的平均电流,内阻压力小了很多,电压跌落也就没那么严重了。这相当于给电池配了一个“缓冲工”,专门应付脉冲负载。实践心得:电容的选择不能只看容量,还要看等效串联电阻ESR。广播瞬间需要电容快速放出几十毫安级别的电流,如果ESR太高,能量全耗在电容内部发热上,电压照样掉得厉害。我会选择ESR小于100mΩ的陶瓷电容或者小型超级电容。3.3 能量预算实例我拿自己做的一个BLE温湿度标签来算笔账。设备的任务周期是每10分钟执行一次完整流程:传感器测量50ms、BLE广播30ms、其余时间深度睡眠。测量和广播事件消耗的电荷量大致如下:环节电流时长电荷量深度睡眠0.6uA10分钟0.1uAh传感器测量4.5mA50ms0.0625uAhBLE广播8mA30ms0.0667uAh单个周期总计约0.23uAh,24小时约33uAh,折合日均等效电流约1.4微安。如果算上PMIC静态电流和系统漏电,整机日均电流能做到8微安左右,一年总消耗约68mAh。对一颗1800mAh的锂亚电池来说,理论续航超过25年。当然这个数字不考虑自放电,实际上电池自己放没电都比用没电快。算完这笔账就能理解,能量协同设计的价值不光在于“省电”,更在于它把电量的使用安排得明明白白,让系统在极低的平均功耗下还能保持稳定的峰值供给。3.4 协同决策状态机固件侧的协同策略我用一个简单的状态机来管理:SLEEP状态:整机进入深度睡眠,PMIC配置为最低静态电流模式,定时器定时唤醒SENSOR状态:定时器唤醒,启动传感器,完成数据采集,PMIC切换到PWM模式保证精度ACTIVE状态:射频模块开启,发送数据,发送期间PMIC保持PWMLOW_ENERGY状态:检测到电池电压低于阈值,降低上报频率,关闭非必要传感器SHUTDOWN状态:电池电压低于保护点,PMIC关断负载输出,仅保留极小电流维持能源管理while (1) { battery_voltage = read_battery(); if (battery_voltage < SHUTDOWN_THRESHOLD) { pmic_shutdown(); deep_sleep_forever(); } if (battery_voltage < LOW_ENERGY_THRESHOLD) { set_report_interval(30 * 60); // 上报频率降低 } sensor_sample(); ble_advertise(); enter_deep_sleep(); }这段伪代码反映了核心思想:能量状态不是一次性判断,而是在每个周期里动态参与调度。能耗大户(射频)的频率,由能量状态实时调节,这样就能在“保持功能”和“保护电池”之间找平衡。4. MF9006硬件设计实操4.1 最小系统与器件选型MF9006的外围比普通DCDC多不了几个元件,核心就是电感、输入/输出电容、反馈电阻和储能电容。我一般先按芯片的参考设计选一遍,再根据实际负载调整。电感是能量转换的核心。选型时我会重点看两个参数:饱和电流和直流电阻DCR。饱和电流要留1.5倍以上的裕量,因为BLE瞬时电流可能十几毫安,如果电感饱和,感值会骤降,电流失控,PMIC会进入保护。DCR越低压降越小,但体积和成本会上去,2.2uH到4.7uH之间通常是比较平衡的选择。输入输出电容方面,我倾向于“宁大勿小”:输入端放一个1uF陶瓷电容,输出端放两个并联的10uF陶瓷电容。并联的好处是降低ESR,同时可以在PCB上两边对称放置,兼顾布局和供电稳定性。注意陶瓷电容在直流偏压下容量会打折,所以标称10uF实际可能只有6~7uF,设计时要留好裕量。储能电容的选择根据峰值电流大小来定。对于一次广播消耗几十微库伦的应用,一个470uF到1000uF的电容足够。如果是带屏幕显示或者要驱动马达的设备,就得用超级电容,否则脉冲电流会把电压瞬间拖垮。器件推荐参数作用输入电容1uF, X7R, 0603滤除输入噪声输出电容2x10uF, X7R, 0805稳定输出电压电感2.2uH, DCR<150mΩ, Isat>500mA能量转换与储能储能电容470uF~1000uF缓冲BLE峰值电流反馈电阻高阻值600k/220k设定输出电压4.2 输出电压设定与反馈网络MF9006的输出电压通过反馈电阻分压设定。反馈网络的设计原则是:电阻值要尽量高,这样分压电流小,静态损耗低;但不能过高,否则反馈引脚对噪声的敏感度上升,输出容易不稳。输出电压和电阻的关系是:VOUT = VREF * (1 + RTOP / RBOTTOM)其中VREF是芯片内部基准电压,以0.6V为例:目标电压RTOPRBOTTOM1.8V600kΩ300kΩ2.5V760kΩ240kΩ3.0V800kΩ200kΩ分压电阻支路的静态电流在0.6V/240kΩ约2.5uA,这个量级可以接受。如果还要更低,可以把电阻提到MΩ级别,但走线要特别注意,反馈网络远离噪声源。注意:反馈电阻的精度直接影响输出电压精度,建议用1%精度电阻。上下两支电阻的温漂特性最好一致,否则高低温环境下输出电压会漂。4.3 PCB布局要点布局是电源设计里最容易被人忽略但影响最大的环节。第一,输入电容要尽量靠近VIN和GND引脚,形成一个环路面积尽可能小的输入电流回路。这个回路越小,辐射噪声越小,输入电压越稳定。第二,电感要靠近SW引脚,SW节点是高频开关节点,走线越短,寄生电感越小。SW节点要稍微加宽走线,但不要大面积铺铜,因为它的电压是快速跳变的,面积太大会向外辐射噪声。第三,反馈网络要远离电感和SW节点,最好绕着芯片的另一侧走线,或者用地线包起来隔离。反馈信号是高阻节点,对电场噪声敏感。第四,底下要有完整的地平面。很多低功耗设备为了省面积,把地平面抠得七零八落,结果DCDC开关噪声通过地反弹干扰射频前端的灵敏度,蓝牙连接距离直接砍半。4.4 电源保护与ESD物联网设备经常安装在户外或工业环境,静电和浪涌防护不是可有可无。我在输入端会加一颗TVS管,钳位电压选取在电池最高电压之上一点点,避免正常工作时引入额外漏电。TVS的结电容对电源来说影响不大,但如果有能量采集输入,要选漏电流小的型号,否则微弱的采集电流会被TVS漏掉一大截。输出端如果直接给传感器供电,可以不额外加保护,但如果引出到外部接口(比如调试口),最好串一颗几十欧的电阻再进芯片引脚。5. 固件侧能量管理策略5.1 事件驱动的功耗框架固件侧的功耗管理,核心思路是事件驱动。系统永远不应“忙等”,而是只在需要做事的时候醒过来,做完立刻睡回去。BLE设备的一般流程是:定时器唤醒 -> 读取传感器 -> 数据处理 -> RF发送 -> 再次睡眠。每一步都对应一颗固定电源状态:唤醒后PMIC还在PFM模式,等传感器需要高精度时再切到PWM模式,传输完成后立刻切回PFM并进入睡眠。这里容易犯的错误是:传感器和射频的外设电源管理与PMIC模式切换不同步,活在“半睡半醒”状态,整机功耗比预期高好几倍。正确做法是,把PMIC模式切换做成一个统一的电源管理接口,所有外设的启动前统一调用,用完统一关闭。5.2 系统工作状态精细化我把系统固件的工作状态设计成五档:DEEP_SLEEP:电流最小化,保留定时器和PMIC最小供电SENSOR_READY:PMIC输出拉到工作电压,传感器上电COMPUTE:MCU满速运行,PMIC PWM模式RADIO_TX:射频发射,储能电容全力供给,PMIC保持PWMMONITOR:电量检测,ADC读取电池电压,做能量决策每一档状态切换的成本都要严格计算,比如从DEEP_SLEEP到SENSOR_READY需要等待电源稳定,这个时间如果控制得不好,系统会在开机的过程中多耗电。这里有一个经验:不要在唤醒后马上读传感器。先把PMIC调到工作模式,等待电源稳定,然后立刻进入传感器读取。顺序反过来会让传感器第一次读数误差很大,而且因为电压还没稳,电流反而不小。5.3 输出电压的动态调整MF9006支持动态调压功能,这在BLE设备里很有用。同样一颗芯片,在深度睡眠时把输出电压降到1.2V,可以明显减少漏电;在需要执行复杂计算或射频发送时,把电压升到1.8V甚至2.5V。动态调压的收益在于“电压越低,功耗越低”。MCU的数字电路功耗近似与电压平方成正比,把运行电压从1.8V降到1.2V,理论上功耗能降低约一半。当然要考虑外设的最低工作电压,传感器和射频模块会有各自的要求,CMOS器件看数据手册上的工作电压范围,取交集再留裕量。FMBA的切换过程会有一个短暂的不稳定期,这段时间内不要启动高频外设或射频,否则可能复位。我会在固件里做一个电源切换完成标志位,切换完成后再往后走。5.4 能量估计与低电保护能量状态估计的核心是电压读数和滤波。单次ADC读数波动比较大,不能直接拿来做判断,我会用一阶指数移动平均滤波:float ema_voltage = 0.0f; float read_filtered_voltage(void) { float v = read_adc_millivolts(); ema_voltage = 0.7f * ema_voltage + 0.3f * v; return ema_voltage; }系数0.3是经验值,太快会滤不掉噪声,太慢会响应迟滞。在10分钟周期里,差不多两三个周期就能跟上真实电压趋势。低电保护还要考虑灵敏度:电池电压在负载脉冲期间会有一个瞬时跌落,如果拿这个跌落值去做低电判断,系统会在电量还充足时频繁误报。我会在射频发送结束30秒后再读电压,这时候电池恢复到了空载电压,判断结果更准确。6. 实测数据与调优记录6.1 测试环境说明测微安级静态电流是一件需要耐心的活。普通万用表的电流挡内阻偏高,测到的电流往往带压降影响,数字也不稳定。我用的方案是:一个高精度微安计串在电源输入端,再用示波器探头并联观察电压波形。微安计记录长时间平均电流,示波器抓脉冲瞬间的电压跌落和电流波形。测试时还有一个容易忽略的环节:环境里如果有其他蓝牙设备在广播,被测设备的射频事件会被干扰,功耗波形会参考不明原因的高峰。我会把测试台放到相对空阔的房间,必要时关闭周边蓝牙设备。6.2 功耗对比实录实测数据是在样机上取的,环境温度25摄氏度,供电电池为3.7V锂亚电池:方案休眠静态电流单次广播事件平均电流日均等效电流普通LDO方案2.8uA5.2mA估算约34.8uA普通DCDC方案24uA4.8mA估算约58.2uAMF9006协同方案0.6uA3.6mA实测算约8.1uA日均等效电流的差异在一年续航上会被放大非常多。普通LDO方案的日均等效电流按35uA算,一年就是306mAh;MF9006协同方案一年只要71mAh。同样一颗1800mAh的电池,前者理论寿命约5.9年,后者理论寿命约25年。实际因为自放电,后者大概率是电池先衰减,但方向总是对的。6.3 关键波形记录用示波器抓到的电压跌落情况如下:在无储能电容时,输出从3.0V瞬间跌到2.72V,大约跌落280mV;加一个470uF储能电容后,同样的负载脉冲只跌了70mV左右。这个差距对系统稳定性影响很大,很多复位问题不是MCU本身造成的,而是供电电压在脉冲瞬间跌破了MCU的复位门槛。广播事件结束后的恢复过程也有讲究:电压不是一下子回到稳定点,而是有一个阻尼振荡,大概几十微秒。这个振荡幅度在正常范围内,但如果输出电容ESR过大或者布局噪声耦合到反馈脚,振荡会明显加重。我会看振荡幅度是否控制在50mV以内,超出的话重新检查反馈走线和电容位置。6.4 电池寿命估算用实测数据做一个简单的寿命估算,假设电池标称容量1800mAh,年自放电率4%左右,系统可用容量按80%算:可用容量:1800 * 0.8 = 1440mAh日均消耗:8.1uA * 24 = 约194uAh/天,即0.194mAh/天纯使用续航:1440 / 0.194 = 约7422天,折合约20年考虑电池自放电,可用容量损失后,真实可控续航大约5到8年这个结果说明,当供电方案做到极低静态电流后,电池自放电成了主导因素。想要进一步延长设备寿命,重点是选低自放电电池,以及考虑在设备中增加能量采集,让系统进入真正的“自供电”状态。7. 常见问题排查与实操避坑7.1 上电后电压起不来遇到PMIC上电后输出起不来,先区分两种情况:完全没有输出,还是输出跌到很低的电压。完全没输出时,优先检查输入电容是否正常、使能脚有没有拉到高电平、电感是否焊接正常。很多PMIC芯片有软启动保护,输入电压上升太快会触发限流,这时候需要在输入加一个较大的电容缓启动。输出跌到很低的情况,多半是储能电容容量不足导致启动电流被拉垮,或者电感饱和电流不够。把输入电容加大到10uF,储能电容换成ESR更低的型号,一般能解决。7.2 广播瞬间MCU复位这是BLE设备最常见的故障之一,表现为广播事件开始时设备突然重启。排查顺序和建议如下:排查项现象解决办法输出电容不足示波器看到VOUT瞬间跌落超200mV增加输出电容,并联低ESR陶瓷电容储能电容ESR过高大电流时电容发热、电压跌得快换用低ESR超级电容或陶瓷电容阵列电池内阻过大电池端电压明显跌落改用大容量电池或并联储能电容直供电源PMIC模式切换慢跌落恢复时间明显变长检查MOS管驱动配置,强制在射频前切到PWM7.3 休眠电流莫名偏大休眠电流偏大是排查难度最高的一个问题,因为它可能来自任何角落。我的排查顺序是:查看PMIC反馈电阻是否按计算值焊接,阻值偏小会导致分压电流增大查看输出电容是否有漏电,特别是电解电容在高温下漏电明显检查MCU所有GPIO是否配置正确,悬空输入脚的漏电可能到微安级别检查传感器电源是否被彻底关断,很多传感器在关闭后仍有底漏电流把PMIC输出的所有负载断开,测量空载电流,判断电流偏大是PMIC自身还是后端负载导致的排查时建议做一个“二分法”:先断开所有负载,测PMIC空载;然后逐一组装负载,测各点的电流增量。这样能快速定位漏电路径。7.4 能量采集效率偏低如果系统接了光伏板,但采集效率上不去,常见原因是工作点不匹配。光伏板的输出功率会随负载变化,需要MPPT直线或近似最大功率点跟踪。如果PMIC只做简单的升压,不跟踪最大功率点,可能在弱光下效率掉到一半以下。解决办法:沿规格书设置采集阈值,让输入电容足够大,每次采集用接近最大功率点的电压充入储能电容。软硬件结合才能优化。7.5 测量工具的坑最后提醒一下测试方法的坑:测平均电流时,不要拿普通万用表直接测脉动电流。普通万用表的响应时间在毫秒级别,测一个30ms的广播事件,读数会严重偏低。正确的做法是:用示波器电流探头抓事件波形,再用数学积分计算电荷量;或者用一个低功耗计,记录时间累积电流。测静态电流时,要等系统稳定30秒以上再读数。BLE设备刚上电时可能在做初始化,会输出一些短暂的脉冲,此时读数没有参考价值。实操心得:我每次调试电源功耗,都会在测试架上焊一个1欧姆的精密采样电阻,用示波器差分探头测它的电压波形。这个方案能同时看静态和动态,比单纯用微安计方便很多。注意采样电阻的阻值不能太大,否则会限制峰值电流。个人在实际操作中最大的体会是:低功耗设计从来不是某一个器件的功劳,而是整套体系的协同结果。MF9006这颗PMIC只是在系统中扮演了“能量管家”的角色,真正决定系统优秀与否的,是硬件上把储能和负载规划清楚、固件上把事件和电压管理好、测试上把每一次波形和每一个微安的数据都记录下来。能量协同设计听起来像一个高大上的概念,落地之后其实就是几个朴素的原则:不乱供电、不浪费峰值、不放过静态漏电、把每一个能量输入源都纳入统一调度。这套思路不只适用于BLE设备,在做任何电池供电的物联网终端都是通用的。后续可以扩展的方向是,把储能电容进一步加大,在采集能量充足的场景下直接去掉电池,做完全依赖环境能量的自维持节点,到那时候这套设计思路的价值会体现得更彻底。
老规矩,先讲一段我自己的经历。几年前我接手了一款带BLE上报功能的温湿度采集器,老板的要求很简单:两节AAA电池,要撑到“自然报废”。第一版我用的是某颗静态电流标称“微安级”的LDO,想着这总够省了吧。结果整机休眠电流实测到十几微安,每天还有十几次广播事件,最后算了笔账,电池连一年都扛不到。后来我把供电架构换成了一颗PMIC,配合超级电容做了能量协同,整机休眠电流才真正降到1微安以下,续航一下子就不是“能不能撑住”,而是“电池自放电先扛不住”了。这篇想聊的就是这套方案的核心:BLE设备的脉冲式功耗 + PMIC的静态电流控制 + 能量协同设计。我会从为什么常见供电方案会翻车开始讲,再到MF9006这颗PMIC选型时该盯哪些参数,以及硬件电路、固件策略、实测数据、排查方法一步一步怎么落地。内容适合正在做BLE传感器、资产标签、可穿戴或能量采集设备的人看,也适合被“休眠电流”折磨得够呛的嵌入式工程师参考。没有太多玄学,全是实操。1. 低功耗物联网供电的真实痛点1.1 BLE设备的“脉冲式”功耗曲线很多人一提到低功耗,脑子里蹦出来的第一个词就是“睡眠电流”。这没错,但只盯着睡眠电流一定会翻车。BLE设备真正的功耗形态是脉冲式的:设备99%的时间在休眠,只有1%甚至更少的时间处于工作状态,而这1%里的瞬间电流又高得吓人。我拿一个典型的BLE温湿度计来说。设备每隔10分钟醒一次,读传感器、打包、然后广播一个BLE数据包,整个过程大概20~30毫秒。在这个窗口内,MCU从睡眠到运行、传感器上电、射频发射,电流会从1微安级别瞬间拉到十几毫安甚至更高。如果设备还挂了屏幕或者执行复杂计算,峰值冲到几十毫安都不奇怪。这个形态像什么?就像一个平时安静躺着、突然要百米冲刺的运动员。电源电路不能只看他睡觉时消耗多少,还得看冲刺时给不给得了那么多能量,以及冲刺结束回到睡眠时,能不能把系统滴漏的每一微安都锁住。普通LDO的问题在于:静态电流普遍在几微安到几十微安,而普通DC-DC虽然能扛峰值,但轻载时自身静态功耗大,跑一个广播事件可能要分把钟才能把损耗补回来。这就是为什么专门的PMIC开始占据低功耗物联网的市场缝隙。1.2 电池供电的三个隐性杀手第一个杀手是静态电流。设备休眠时,电源路径上如果有一滴漏电,一天就会损失24小时的漏电量。2微安的漏电在一天里吃掉约0.048mAh,看着不起眼,一年下来约17.5mAh,对一颗几百毫安时的纽扣电池就是好几个百分点。很多标称“低功耗”的芯片,休眠电流数据放在典型条件下很漂亮,但只要接了反馈电阻、使能脚悬空、输出电容偏大,漏电就成倍往上翻。第二个杀手是峰值电压跌落。电池都有内阻,尤其纽扣电池和软包电池,在低温环境下内阻还会进一步上升。射频发射瞬间的十几毫安电流会在电池内阻上形成压降,如果电源电路没有足够的储能电容缓冲,MCU会当场复位,或者导致蓝牙连接断链。这个坑在实验室常温下很难复现,一到冬天就原形毕露。第三个杀手是电池自放电与容量衰减。这看起来和电源设计无关,但对能量架构的决策影响非常大。如果一套方案把系统功耗压到了日平均几个微安,电池寿命的上限就不是电路决定的了,而是电化学特性决定的。做设计时就得想清楚:到底是减小设备功耗更划算,还是加大储能电容、引入能量采集更划算。1.3 为什么是PMIC而不是LDO或普通DCDCLDO的优势是便宜、安静、外围少,但它在降压场景的效率等于输出电压除以输入电压。电池电压3.7V降到1.8V,效率连一半都不到,剩下的能量全变成热量。更重要的是,LDO没有储能调度能力,BLE的瞬间脉冲会让低压差方案很难受,输入侧电压稍微波动,输出就跟着抖。普通DCDC能解决效率问题,但大多数通用DCDC是为稳定持续负载设计的,轻载静态电流常常是几十微安到几百微安。对锁存型传感器节点来说,这部分待机损耗就是主要的电量杀手。PMIC的本质是“为低功耗场景重新设计过的电源管理系统”,它会在一颗芯片里集成降压、升压、负载切换、储能管理、保护逻辑。MF9006就是这类芯片里比较典型的代表,面向BLE这类脉冲负载做了专门优化:休眠时静态电流极低,负载脉冲到来时能快速切到PWM模式供给能量,结束后又能自动回到PFM低功耗模式。光这一点,通用DCDC就做不到。提示:选PMIC不能只比较静态电流,要同时看静态电流、动态负载响应、轻载效率曲线、储能接口和冷启动能力。只看一项很容易在整机调试时被坑。2. MF9006核心特性与选型逻辑2.1 静态电流:每纳安都是电池寿命MF9006最吸引我的是它的休眠静态电流。我拿到的样片实测,在输出电压3.0V、无负载、PFM模式下,静态电流可以做到0.6微安左右,和规格书标的典型值基本一致。0.6微安是什么概念?一颗400mAh的纽扣电池,如果只挂这一颗PMIC的静态漏电,理论上可以撑大约666666小时,也就是76年。当然实际设备不可能只消耗这一点,但这个数量级说明,供电电路本身不再成为续航瓶颈。对比一下:很多LDO标称静态电流几微安,其实那个参数是“芯片自身消耗”,不算分压电阻和输出电容的漏电。MF9006这类PMIC会把内部参考、分压、比较器都优化到nA级,外围反馈电阻也设计成高阻值,这才把整机休眠电流压下来。注意:评估静态电流时,不要只信规格书的数字。实测时,把PMIC输出空载,用微安表直接串在输入侧,等系统稳定后再读数。刚刚上电的几秒内数字是假的,因为输出电容和内部电路还在建立状态。2.2 峰值能力与动态响应BLE设备对电源的第二个要求是瞬时响应。MF9006采用自适应模式切换:轻载时进入PFM模式,用最小的开关频率维持输出;当负载电流超过设定阈值时,自动切换到PWM模式,开关频率拉高,输出阻抗立刻降下来。这个切换有多快?我用示波器抓过VOUT在负载脉冲下的响应。负载从0.5mA跳到15mA,输出跌落大概100mV左右,在几十微秒内恢复到目标电压。对BLE射频模块来说,这个跌落幅度完全在容忍范围内。只要输出电容给足裕量,MCU不会复位,也不会出现发射功率骤降导致的连接不稳。选型时要关注的指标有三个:静态电流:决定休眠续航负载瞬态响应:决定峰值脉冲下输出电压的保持能力轻载效率:决定平均功耗MF9006在0.01mA到1mA负载区间内,效率曲线做得比较平,没有出现很多DCDC那种“轻载效率断崖式下跌”的情况。这就保证了设备即使只做每小时一次的短广播,能量也不会被电源电路浪费掉。2.3 冷启动与低压储能接入做能量采集设备的人一定遇到过这个场景:太阳能板在光线微弱时输出电压只有0.4V左右,根本不够给任何DCDC启动。很多PMIC解决不了这个问题的原因,在于内部电路本身需要正常工作电压才能开始工作。MF9006支持很低的启动电压,这意味着系统可以用一个很小的充电电容,把微弱的光伏电流或温差电能积累起来,达到启动阈值后一口气把负载唤醒,完成一次传感与上报,然后继续进入低功耗等待。这个能力对于无电池节点来说,属于“能不能跑起来”的关键条件。2.4 为什么我不再考虑“分立方案”也有朋友建议我,用一颗低功耗LDO加一颗普通DCDC加几个MOS管做负载切换,能省下PMIC的成本。我确实这么试过一轮,最后放弃了。原因是分立方案的静态电流很难压下去:LDO要漏几微安、DCDC要漏几十微安、MOS管驱动要漏电、保护电路还要漏底电流。就算每一级都选低功耗型号,加在一起也可能到几十微安。更麻烦的是,多个电源芯片上电时序不一致,BLE模块启动时可能会经历一次“假死”,排查起来的成本远超省下的那点BOM费用。MF9006这类集成方案把所有功能放在一颗芯片里,上电时序由内部逻辑统一管理,系统可靠性高了一个量级。3. 能量协同设计:从“供电”到“能量调度”3.1 能量协同的本质“能量协同”这个词听起来很玄,本质上就是给系统做一个全局能量预算,然后按优先级调度。传统供电方案是单向的:电池给PMIC,PMIC给负载,能量只走一条路。能量协同设计则把电池、能量采集源、储能电容、负载当作一个整体,让PMIC知道什么时候该用哪条路径供电,什么时候该把多余的能量存起来。打个生活化的比方:普通方案像一个没有余额概念的家庭,工资到账就花,花完就饿肚子;能量协同方案就像家庭账本,先盘点收入(能量采集),再分配支出(负载),有多余的钱就存起来(给电容充电),快没钱了就限制消费(进低功耗模式)。这套逻辑的核心是信息的闭环:PMIC不只是一个电源转换器,它还承担了“能量管家”的角色。3.2 双源协同拓扑我设计的电源拓扑大概是这样的:主供电源是锂亚电池或锂电池,负责提供系统基础能量辅助能量源是光伏板或温差发电片,通过MF9006的采集输入口接入储能电容放在PMIC的储能端口,负责缓冲瞬时大电流和能量采集的间歇性负载端是BLE SoC和传感器工作逻辑分几层:有采集能量时,PMIC优先用采集能量给负载供能,剩余电流给储能电容充电;采集能量不足但电容有电时,电容放电顶上去;两者都不足时,电池通过高效降压路径直接供能;电池电压掉到保护阈值,系统进入告警和低功耗状态。这个拓扑的好处是,BLE设备的峰值电流不需要电池单独承担。广播瞬间的大电流由储能电容来顶,电池只需要提供长时间的平均电流,内阻压力小了很多,电压跌落也就没那么严重了。这相当于给电池配了一个“缓冲工”,专门应付脉冲负载。实践心得:电容的选择不能只看容量,还要看等效串联电阻ESR。广播瞬间需要电容快速放出几十毫安级别的电流,如果ESR太高,能量全耗在电容内部发热上,电压照样掉得厉害。我会选择ESR小于100mΩ的陶瓷电容或者小型超级电容。3.3 能量预算实例我拿自己做的一个BLE温湿度标签来算笔账。设备的任务周期是每10分钟执行一次完整流程:传感器测量50ms、BLE广播30ms、其余时间深度睡眠。测量和广播事件消耗的电荷量大致如下:环节电流时长电荷量深度睡眠0.6uA10分钟0.1uAh传感器测量4.5mA50ms0.0625uAhBLE广播8mA30ms0.0667uAh单个周期总计约0.23uAh,24小时约33uAh,折合日均等效电流约1.4微安。如果算上PMIC静态电流和系统漏电,整机日均电流能做到8微安左右,一年总消耗约68mAh。对一颗1800mAh的锂亚电池来说,理论续航超过25年。当然这个数字不考虑自放电,实际上电池自己放没电都比用没电快。算完这笔账就能理解,能量协同设计的价值不光在于“省电”,更在于它把电量的使用安排得明明白白,让系统在极低的平均功耗下还能保持稳定的峰值供给。3.4 协同决策状态机固件侧的协同策略我用一个简单的状态机来管理:SLEEP状态:整机进入深度睡眠,PMIC配置为最低静态电流模式,定时器定时唤醒SENSOR状态:定时器唤醒,启动传感器,完成数据采集,PMIC切换到PWM模式保证精度ACTIVE状态:射频模块开启,发送数据,发送期间PMIC保持PWMLOW_ENERGY状态:检测到电池电压低于阈值,降低上报频率,关闭非必要传感器SHUTDOWN状态:电池电压低于保护点,PMIC关断负载输出,仅保留极小电流维持能源管理while (1) { battery_voltage = read_battery(); if (battery_voltage < SHUTDOWN_THRESHOLD) { pmic_shutdown(); deep_sleep_forever(); } if (battery_voltage < LOW_ENERGY_THRESHOLD) { set_report_interval(30 * 60); // 上报频率降低 } sensor_sample(); ble_advertise(); enter_deep_sleep(); }这段伪代码反映了核心思想:能量状态不是一次性判断,而是在每个周期里动态参与调度。能耗大户(射频)的频率,由能量状态实时调节,这样就能在“保持功能”和“保护电池”之间找平衡。4. MF9006硬件设计实操4.1 最小系统与器件选型MF9006的外围比普通DCDC多不了几个元件,核心就是电感、输入/输出电容、反馈电阻和储能电容。我一般先按芯片的参考设计选一遍,再根据实际负载调整。电感是能量转换的核心。选型时我会重点看两个参数:饱和电流和直流电阻DCR。饱和电流要留1.5倍以上的裕量,因为BLE瞬时电流可能十几毫安,如果电感饱和,感值会骤降,电流失控,PMIC会进入保护。DCR越低压降越小,但体积和成本会上去,2.2uH到4.7uH之间通常是比较平衡的选择。输入输出电容方面,我倾向于“宁大勿小”:输入端放一个1uF陶瓷电容,输出端放两个并联的10uF陶瓷电容。并联的好处是降低ESR,同时可以在PCB上两边对称放置,兼顾布局和供电稳定性。注意陶瓷电容在直流偏压下容量会打折,所以标称10uF实际可能只有6~7uF,设计时要留好裕量。储能电容的选择根据峰值电流大小来定。对于一次广播消耗几十微库伦的应用,一个470uF到1000uF的电容足够。如果是带屏幕显示或者要驱动马达的设备,就得用超级电容,否则脉冲电流会把电压瞬间拖垮。器件推荐参数作用输入电容1uF, X7R, 0603滤除输入噪声输出电容2x10uF, X7R, 0805稳定输出电压电感2.2uH, DCR<150mΩ, Isat>500mA能量转换与储能储能电容470uF~1000uF缓冲BLE峰值电流反馈电阻高阻值600k/220k设定输出电压4.2 输出电压设定与反馈网络MF9006的输出电压通过反馈电阻分压设定。反馈网络的设计原则是:电阻值要尽量高,这样分压电流小,静态损耗低;但不能过高,否则反馈引脚对噪声的敏感度上升,输出容易不稳。输出电压和电阻的关系是:VOUT = VREF * (1 + RTOP / RBOTTOM)其中VREF是芯片内部基准电压,以0.6V为例:目标电压RTOPRBOTTOM1.8V600kΩ300kΩ2.5V760kΩ240kΩ3.0V800kΩ200kΩ分压电阻支路的静态电流在0.6V/240kΩ约2.5uA,这个量级可以接受。如果还要更低,可以把电阻提到MΩ级别,但走线要特别注意,反馈网络远离噪声源。注意:反馈电阻的精度直接影响输出电压精度,建议用1%精度电阻。上下两支电阻的温漂特性最好一致,否则高低温环境下输出电压会漂。4.3 PCB布局要点布局是电源设计里最容易被人忽略但影响最大的环节。第一,输入电容要尽量靠近VIN和GND引脚,形成一个环路面积尽可能小的输入电流回路。这个回路越小,辐射噪声越小,输入电压越稳定。第二,电感要靠近SW引脚,SW节点是高频开关节点,走线越短,寄生电感越小。SW节点要稍微加宽走线,但不要大面积铺铜,因为它的电压是快速跳变的,面积太大会向外辐射噪声。第三,反馈网络要远离电感和SW节点,最好绕着芯片的另一侧走线,或者用地线包起来隔离。反馈信号是高阻节点,对电场噪声敏感。第四,底下要有完整的地平面。很多低功耗设备为了省面积,把地平面抠得七零八落,结果DCDC开关噪声通过地反弹干扰射频前端的灵敏度,蓝牙连接距离直接砍半。4.4 电源保护与ESD物联网设备经常安装在户外或工业环境,静电和浪涌防护不是可有可无。我在输入端会加一颗TVS管,钳位电压选取在电池最高电压之上一点点,避免正常工作时引入额外漏电。TVS的结电容对电源来说影响不大,但如果有能量采集输入,要选漏电流小的型号,否则微弱的采集电流会被TVS漏掉一大截。输出端如果直接给传感器供电,可以不额外加保护,但如果引出到外部接口(比如调试口),最好串一颗几十欧的电阻再进芯片引脚。5. 固件侧能量管理策略5.1 事件驱动的功耗框架固件侧的功耗管理,核心思路是事件驱动。系统永远不应“忙等”,而是只在需要做事的时候醒过来,做完立刻睡回去。BLE设备的一般流程是:定时器唤醒 -> 读取传感器 -> 数据处理 -> RF发送 -> 再次睡眠。每一步都对应一颗固定电源状态:唤醒后PMIC还在PFM模式,等传感器需要高精度时再切到PWM模式,传输完成后立刻切回PFM并进入睡眠。这里容易犯的错误是:传感器和射频的外设电源管理与PMIC模式切换不同步,活在“半睡半醒”状态,整机功耗比预期高好几倍。正确做法是,把PMIC模式切换做成一个统一的电源管理接口,所有外设的启动前统一调用,用完统一关闭。5.2 系统工作状态精细化我把系统固件的工作状态设计成五档:DEEP_SLEEP:电流最小化,保留定时器和PMIC最小供电SENSOR_READY:PMIC输出拉到工作电压,传感器上电COMPUTE:MCU满速运行,PMIC PWM模式RADIO_TX:射频发射,储能电容全力供给,PMIC保持PWMMONITOR:电量检测,ADC读取电池电压,做能量决策每一档状态切换的成本都要严格计算,比如从DEEP_SLEEP到SENSOR_READY需要等待电源稳定,这个时间如果控制得不好,系统会在开机的过程中多耗电。这里有一个经验:不要在唤醒后马上读传感器。先把PMIC调到工作模式,等待电源稳定,然后立刻进入传感器读取。顺序反过来会让传感器第一次读数误差很大,而且因为电压还没稳,电流反而不小。5.3 输出电压的动态调整MF9006支持动态调压功能,这在BLE设备里很有用。同样一颗芯片,在深度睡眠时把输出电压降到1.2V,可以明显减少漏电;在需要执行复杂计算或射频发送时,把电压升到1.8V甚至2.5V。动态调压的收益在于“电压越低,功耗越低”。MCU的数字电路功耗近似与电压平方成正比,把运行电压从1.8V降到1.2V,理论上功耗能降低约一半。当然要考虑外设的最低工作电压,传感器和射频模块会有各自的要求,CMOS器件看数据手册上的工作电压范围,取交集再留裕量。FMBA的切换过程会有一个短暂的不稳定期,这段时间内不要启动高频外设或射频,否则可能复位。我会在固件里做一个电源切换完成标志位,切换完成后再往后走。5.4 能量估计与低电保护能量状态估计的核心是电压读数和滤波。单次ADC读数波动比较大,不能直接拿来做判断,我会用一阶指数移动平均滤波:float ema_voltage = 0.0f; float read_filtered_voltage(void) { float v = read_adc_millivolts(); ema_voltage = 0.7f * ema_voltage + 0.3f * v; return ema_voltage; }系数0.3是经验值,太快会滤不掉噪声,太慢会响应迟滞。在10分钟周期里,差不多两三个周期就能跟上真实电压趋势。低电保护还要考虑灵敏度:电池电压在负载脉冲期间会有一个瞬时跌落,如果拿这个跌落值去做低电判断,系统会在电量还充足时频繁误报。我会在射频发送结束30秒后再读电压,这时候电池恢复到了空载电压,判断结果更准确。6. 实测数据与调优记录6.1 测试环境说明测微安级静态电流是一件需要耐心的活。普通万用表的电流挡内阻偏高,测到的电流往往带压降影响,数字也不稳定。我用的方案是:一个高精度微安计串在电源输入端,再用示波器探头并联观察电压波形。微安计记录长时间平均电流,示波器抓脉冲瞬间的电压跌落和电流波形。测试时还有一个容易忽略的环节:环境里如果有其他蓝牙设备在广播,被测设备的射频事件会被干扰,功耗波形会参考不明原因的高峰。我会把测试台放到相对空阔的房间,必要时关闭周边蓝牙设备。6.2 功耗对比实录实测数据是在样机上取的,环境温度25摄氏度,供电电池为3.7V锂亚电池:方案休眠静态电流单次广播事件平均电流日均等效电流普通LDO方案2.8uA5.2mA估算约34.8uA普通DCDC方案24uA4.8mA估算约58.2uAMF9006协同方案0.6uA3.6mA实测算约8.1uA日均等效电流的差异在一年续航上会被放大非常多。普通LDO方案的日均等效电流按35uA算,一年就是306mAh;MF9006协同方案一年只要71mAh。同样一颗1800mAh的电池,前者理论寿命约5.9年,后者理论寿命约25年。实际因为自放电,后者大概率是电池先衰减,但方向总是对的。6.3 关键波形记录用示波器抓到的电压跌落情况如下:在无储能电容时,输出从3.0V瞬间跌到2.72V,大约跌落280mV;加一个470uF储能电容后,同样的负载脉冲只跌了70mV左右。这个差距对系统稳定性影响很大,很多复位问题不是MCU本身造成的,而是供电电压在脉冲瞬间跌破了MCU的复位门槛。广播事件结束后的恢复过程也有讲究:电压不是一下子回到稳定点,而是有一个阻尼振荡,大概几十微秒。这个振荡幅度在正常范围内,但如果输出电容ESR过大或者布局噪声耦合到反馈脚,振荡会明显加重。我会看振荡幅度是否控制在50mV以内,超出的话重新检查反馈走线和电容位置。6.4 电池寿命估算用实测数据做一个简单的寿命估算,假设电池标称容量1800mAh,年自放电率4%左右,系统可用容量按80%算:可用容量:1800 * 0.8 = 1440mAh日均消耗:8.1uA * 24 = 约194uAh/天,即0.194mAh/天纯使用续航:1440 / 0.194 = 约7422天,折合约20年考虑电池自放电,可用容量损失后,真实可控续航大约5到8年这个结果说明,当供电方案做到极低静态电流后,电池自放电成了主导因素。想要进一步延长设备寿命,重点是选低自放电电池,以及考虑在设备中增加能量采集,让系统进入真正的“自供电”状态。7. 常见问题排查与实操避坑7.1 上电后电压起不来遇到PMIC上电后输出起不来,先区分两种情况:完全没有输出,还是输出跌到很低的电压。完全没输出时,优先检查输入电容是否正常、使能脚有没有拉到高电平、电感是否焊接正常。很多PMIC芯片有软启动保护,输入电压上升太快会触发限流,这时候需要在输入加一个较大的电容缓启动。输出跌到很低的情况,多半是储能电容容量不足导致启动电流被拉垮,或者电感饱和电流不够。把输入电容加大到10uF,储能电容换成ESR更低的型号,一般能解决。7.2 广播瞬间MCU复位这是BLE设备最常见的故障之一,表现为广播事件开始时设备突然重启。排查顺序和建议如下:排查项现象解决办法输出电容不足示波器看到VOUT瞬间跌落超200mV增加输出电容,并联低ESR陶瓷电容储能电容ESR过高大电流时电容发热、电压跌得快换用低ESR超级电容或陶瓷电容阵列电池内阻过大电池端电压明显跌落改用大容量电池或并联储能电容直供电源PMIC模式切换慢跌落恢复时间明显变长检查MOS管驱动配置,强制在射频前切到PWM7.3 休眠电流莫名偏大休眠电流偏大是排查难度最高的一个问题,因为它可能来自任何角落。我的排查顺序是:查看PMIC反馈电阻是否按计算值焊接,阻值偏小会导致分压电流增大查看输出电容是否有漏电,特别是电解电容在高温下漏电明显检查MCU所有GPIO是否配置正确,悬空输入脚的漏电可能到微安级别检查传感器电源是否被彻底关断,很多传感器在关闭后仍有底漏电流把PMIC输出的所有负载断开,测量空载电流,判断电流偏大是PMIC自身还是后端负载导致的排查时建议做一个“二分法”:先断开所有负载,测PMIC空载;然后逐一组装负载,测各点的电流增量。这样能快速定位漏电路径。7.4 能量采集效率偏低如果系统接了光伏板,但采集效率上不去,常见原因是工作点不匹配。光伏板的输出功率会随负载变化,需要MPPT直线或近似最大功率点跟踪。如果PMIC只做简单的升压,不跟踪最大功率点,可能在弱光下效率掉到一半以下。解决办法:沿规格书设置采集阈值,让输入电容足够大,每次采集用接近最大功率点的电压充入储能电容。软硬件结合才能优化。7.5 测量工具的坑最后提醒一下测试方法的坑:测平均电流时,不要拿普通万用表直接测脉动电流。普通万用表的响应时间在毫秒级别,测一个30ms的广播事件,读数会严重偏低。正确的做法是:用示波器电流探头抓事件波形,再用数学积分计算电荷量;或者用一个低功耗计,记录时间累积电流。测静态电流时,要等系统稳定30秒以上再读数。BLE设备刚上电时可能在做初始化,会输出一些短暂的脉冲,此时读数没有参考价值。实操心得:我每次调试电源功耗,都会在测试架上焊一个1欧姆的精密采样电阻,用示波器差分探头测它的电压波形。这个方案能同时看静态和动态,比单纯用微安计方便很多。注意采样电阻的阻值不能太大,否则会限制峰值电流。个人在实际操作中最大的体会是:低功耗设计从来不是某一个器件的功劳,而是整套体系的协同结果。MF9006这颗PMIC只是在系统中扮演了“能量管家”的角色,真正决定系统优秀与否的,是硬件上把储能和负载规划清楚、固件上把事件和电压管理好、测试上把每一次波形和每一个微安的数据都记录下来。能量协同设计听起来像一个高大上的概念,落地之后其实就是几个朴素的原则:不乱供电、不浪费峰值、不放过静态漏电、把每一个能量输入源都纳入统一调度。这套思路不只适用于BLE设备,在做任何电池供电的物联网终端都是通用的。后续可以扩展的方向是,把储能电容进一步加大,在采集能量充足的场景下直接去掉电池,做完全依赖环境能量的自维持节点,到那时候这套设计思路的价值会体现得更彻底。