公司动态

太阳能供电低功耗蓝牙开发套件:能量采集与功耗预算实战解析

📅 2026/8/28 12:27:47
太阳能供电低功耗蓝牙开发套件:能量采集与功耗预算实战解析
长年做IoT终端项目的朋友应该都有同一种体会整个系统里最不听话的往往不是协议栈也不是云端接口而是“电”。尤其当你准备把一个带蓝牙低功耗Bluetooth LE的设备部署到仓库、农业大棚这类场合时电池容量、天线位置、环境温度、供电纹波全都会变成问题。我最近一直在折腾一块把太阳能采集、储能管理和Nordic BLE SoC整合在一起的开发套件也就是标题里这个Solar Dev Kit。这段时间用下来我对“太阳能低功耗蓝牙IoT”的认知改变了不少所以想把整个分析思路、硬件链路、功耗预算和调试踩坑过程记录下来。这篇文章适合正在评估太阳能供电BLE方案的嵌入式工程师、物联网产品经理以及准备自己画板子的创客。我会按一个实际项目工程师的视角来聊而不是复述规格书。读完你至少能搞清楚这块开发套件里的能量是怎么从太阳能板流进芯片的Nordic这颗SoC在里面扮演什么角色以及从一块开发板走到真正部署时到底要解决哪些隐藏问题。1. 太阳能供电的BLE开发板为什么值得盯住不放1.1 现场部署的真实痛点换电池比换设备还贵先说一个很多项目在原型阶段完全不会考虑的问题现场换电池。实验室里开发板通着USB你永远感受不到电池没电的焦虑。可一旦节点装到室外电线杆上、农业大棚支架上或者仓库货架深处换一次电池的人工成本往往比电池本身贵一个数量级。如果节点数量上百光维护巡检就是一个让人头大的项目。更麻烦的是普通锂电池在低温环境里容量会明显缩水。冷链物流、冬季户外监测这类场景下标称3000mAh的电池到了零下十几度可能连一半容量都放不出来。即使不考虑低温锂电池的自放电和节点的静态功耗也会让“电池能用两年”变成一个十分乐观的估算。所以我会特别关注能量采集方案尤其是太阳能。Bluetooth LE的优势在于设备大部分时间都在睡眠平均电流可以压到微安级只要有一块不太小的太阳能板加上合理的能量管理很多低功耗IoT设备就能做到“装上去之后基本不用管”。1.2 这块Dev Kit能派上什么用场我手上这套Solar Dev Kit是典型的一体化参考设计一小块弱光表现不错的太阳能板、一套能量采集与储能管理电路、一颗Nordic的BLE SoC、几个传感器接口和调试排针。它解决的问题非常简单——把“晒太阳”变成“可用的电能”再把电能精确分配给无线收发和传感器采样。它能干什么做一个环境温湿度采集节点、一个资产追踪标签、一个农业大棚的土壤墒情监测器都是很顺手的场景。更准确地说任何“采样频率不高、上报数据量不大、部署位置在户外或有散射光环境”的BLE设备都可以用这套思路来做原型验证。当然它也不是万能板。如果你做的设备需要持续音频传输、要长时间保持连接并双向传输大量数据那太阳能采集的电流远不够用该考虑电池还是得考虑。这个开发套件的真正价值是逼着你把整个设备的功耗细节全部抠一遍否则系统根本跑不起来。2. 硬件链路拆解从太阳能板到Nordic SoC的电流之旅2.1 太阳能板与储能电容的搭配逻辑太阳能电池的输出特性跟天气和光线强度关系很大阴天、树荫遮挡、灯光照射开路电压和短路电流都会剧烈变化。所以太阳能板后面一般不能直接接SoC的电源引脚中间需要一级能量采集PMIC来做升压、限压和充电管理。这颗PMIC负责把太阳能板那点不太稳定的电压转换到SoC能接受的范围同时防止过充损坏储能元件。储能元件方面常见的思路是“电池为主、电容为辅”或者干脆用超级电容。对于低功耗BLE节点我更倾向于用一颗可充电纽扣电池或者小容量锂电池做能量缓冲再并联几十毫法的陶瓷电容应付射频发射瞬间的电流尖峰。纯超级电容方案的问题在于电压会随着电量线性下降如果SoC供电范围不够宽低电量时系统容易突然掉电。太阳能板选型也有讲究。非晶硅板弱光性能好室内灯光下也能输出一点电流单晶硅板转换效率高但光线一弱输出就掉得很快。做户外设备选单晶硅做室内或半户外设备选非晶硅会更合适。这个选择直接影响系统在临界光照下的启动能力不能只看峰值功率。2.2 Nordic这颗SoC凭什么适合能量采集场景这套Dev Kit选择Nordic的BLE SoC并非偶然。以常见的nRF52840为例它采用Arm Cortex-M4F核心2.4GHz收发器支持BLE 5、802.15.4和私有2.4GHz协议最关键的是它的静态功耗非常低System OFF模式下典型电流0.3µASystem ON且RTC运行、寄存器保持时约1.5µA。对于太阳能供电设备来说睡眠电流每多1µA太阳能板面积和储能电容都要跟着往上加。这颗SoC内部还集成了DC-DC降压器。外接一个电感和电容就能从3.3V左右的输入电压降压给内核供电无线收发时的效率比直接走LDO好不少。在低功耗蓝牙应用中DC-DC的开启和关闭能差出不少电流这在能量预算里非常可观。另一个容易被忽略的点是PPI和可编程外设互连。PPI允许外设之间直接触发不需要CPU全程参与。比如RTC定时唤醒传感器采样完成通过DMA搬运数据到RAM然后BLE协议栈直接发起广播CPU大部分时间都在睡觉。这种硬件层面的“自动流水线”设计比单纯依赖软件delay省电得多。2.3 一块可复制的最小参考电路如果你想自己搭一块类似的板子我建议的架构是非晶硅太阳能板 → 能量采集PMIC比如BQ25570这类带MPPT和电池管理功能的芯片→ 储能电容/锂电池 → 负载开关 → Nordic SoC。传感器通过GPIO控制的MOS管或负载开关供电不采样时彻底断电。这套结构里最难的是PMIC的参数配置。要设置MPPT的开路电压比例、升压输出目标电压、电池过放保护阈值这些参数又跟太阳能板规格和负载电流强相关。我在调试时发现如果MPPT比例设得太激进弱光下PMIC会反复重启设得太保守强光下又没法充分利用太阳能板的输出。一个比较稳妥的起点是将MPPT参考电压设为太阳能板开路电压的70%到80%再根据实际光照曲线微调。储能容量的计算也值得多说一句。假设节点睡眠电流3µA每隔60秒醒来采样加广播平均电流按30µA算。如果系统要能撑过连续阴雨三天按24小时计算需要约2.2mAh的能量缓冲。100F的超级电容3.3V放到2.0V大概能放出约36mAh实际上还要看自放电足够撑过几天。但电容体积不小所以大部分产品还是会选择小容量锂电池配合电容。3. 功耗预算才是这块板子的灵魂3.1 先用电流谱把每一毫安的流向看清楚很多人的做法是直接用万用表测平均电流但平均电流只能给你一个总体感觉根本看不到问题在哪。正确的做法是采集“电流波形”。最简单的方案是串联一个10Ω采样电阻用示波器电阻两端的压降换算电流专业一点的话可以用Joulescope这类功耗分析仪能直接画出从nA到mA范围的电流波形。你会看到非常有意思的现象一个看起来正常的BLE广播程序电流波形是一连串尖峰尖峰期间瞬间电流可能到十几毫安尖峰之间理论上应该回到睡眠平线。如果睡眠平线比预期高说明有外设没关干净、GPIO悬空漏电或者DC-DC设置不对。这些问题用万用表测平均电流时很难定位用波形一看就露馅。3.2 各模式电流和一次“回本”测算下面这个表格列出的是nRF52840在典型配置下的参考电流具体数值会随电压、温度和编译配置略有浮动但作为预算参考足够了模式/操作典型电流说明System OFF0.3µA所有功能关闭只能通过GPIO或复位唤醒System ON RTC1.5µACPU睡眠RTC运行RAM内容保持广播0dBm5mA~14mA峰值电流持续约1ms~10ms取决于广播包长度和间隔RX接收4.6mA接收窗口期间的电流Flash写入/擦除3mA~15mA写Flash时电流较高尽量避免频繁写入CPU活跃运行3mA~6mA取决于时钟频率和外设使用做能量回本测算时我会先算一个工作周期的平均电流。举个例子节点每60秒醒来一次深度睡眠3µA持续59.9秒醒来后开启传感器采10ms约2mA然后做一次广播假设5mA持续10ms最后写一条日志进Flash约10mA持续5ms。折算下来平均电流大约在7µA到10µA之间。这样一块普通1000mAh的电池能撑好几年而一块室内弱光太阳能板在几百勒克斯环境下能提供几十到几百微瓦的功率按3.3V折算也就是几十到上百微安完全可以实现“白天补能夜间消耗”的正平衡。3.3 外设供电的开关控制能省下几十微安很多传感器的待机电流都在几十微安量级比SoC睡眠电流高了一个数量级。如果不做电源管理光传感器待机就会把整个系统的睡眠电流从几微安拉到几十微安太阳能再大也白搭。解决办法是在传感器电源轨上串一颗负载开关或MOS管。采样前先上电等待传感器稳定后再读数据读完立即断电。这里有一句经验给传感器上电后不能马上读数据很多传感器需要几十到几百毫秒的稳定时间上电后立即读取会导致数据异常又得多醒几次反而更耗电。另外所有不用的GPIO都要明确配置成输出低电平或使能内部上下拉不能悬空。悬空引脚的漏电流在潮湿环境下会变得不可预测量产后问题尤其明显。4. 协议栈和软件配置如何把数据发出去又不浪费电4.1 广播参数和连接参数直接影响电池寿命之前说过BLE的功耗主要取决于无线事件的次数和时长。广播间隔设得越短设备被发现越快但唤醒次数也越多。对于太阳能设备广播间隔用250ms甚至1000ms都可以。连接参数更关键主设备通常每30ms到50ms扫描一次从设备如果在非连接状态能做的就是拉长广播间隔来省电。进入连接之后连接间隔和从机延迟决定了从设备的睡眠时间。连接间隔太短比如7.5ms从设备就得频繁醒来收发数据把连接间隔放大到200ms到500ms同时把从机延迟调大从设备可以在多个连接事件中不响应保持睡眠。对于周期性上报的传感器这个配置能带来几倍的续航差异。参数推荐值功耗影响广播间隔250ms~1000ms间隔越大越省电发现速度变慢连接间隔200ms~500ms间隔越大睡眠时间越长从机延迟4~8个事件让从设备跳过部分连接事件TX功率0dBm左右每增加3dB电流多约20%~30%如果你只是做单向上报不要求低延迟最省电的链路其实是“广播模式接收窗口”或者干脆用不可连接的广播包。这样可以完全跳过连接建立和参数协商的过程设备广播完继续睡。4.2 用ADC监测能量时别让采样本身变成“电老虎”Solar Dev Kit上通常会有一个采集电池电压或太阳能板电压的ADC通道。这个功能很有用但配置不当反而耗电。ADC采样时内部采样电容会从外部源抽取电荷如果你用高阻分压电阻测量电池电压读数会因为分压电阻太大而变慢或变偏。建议在ADC输入引脚加一个小电容作电荷缓冲采样频率降到秒级采样完立刻关掉ADC电源。这里我踩过一个坑用ADC去读一个几十kΩ的电阻分压器结果发现读数每几分钟跳一次后来加了一个1nF电容到引脚读数才稳定下来。原因就是ADC采样瞬间从分压节点抽取了电荷外部电阻又来不及补充。顺带一提如果系统里同时存在DC-DC开关噪声ADC参考电压会跟着波动测出的能量数值会显得很不稳定这也是必须把电源纹波控制好的原因之一。4.3 OTA升级策略要和能量采集一起设计很多IoT项目做了OTA功能但在太阳能设备上OTA是最容易被忽视的“电老虎”。一次性接收几十到几百KB固件对功耗和内存都有很大压力。接入云平台做OTA时千万不要让设备长期保持连接等待升级指令那等于把系统从“睡眠为主”改成“常开模式”。我建议的做法是固件升级只在设备自身能量充足时开启比如ADC检测到电池电压高于某个阈值再周期性地去请求升级策略升级过程中关闭其他外设停止传感器采样如果升级中途能量不足要能安全回退到旧固件而不是变砖。业务策略和设备端的响应逻辑要同时设计否则部署之后现场出问题只能干等太阳出来。5. 调试场上被我发现并解决的三个大坑5.1 上电瞬间太阳能板电压被直接拉崩第一次给这套系统只接太阳能板供电时PMIC输出一闪一闪。用示波器看PMIC输出端能明显看到负载一启动输出从预设电压掉到接近零然后PMIC重新软启动又掉反反复复。根本原因是太阳能板在弱光下能提供的电流本来就有限充电电容充电和SoC启动瞬间的浪涌电流叠加在一起超出了太阳能板的供应能力。解决思路是从两个方向同时下手一是给储能电容增加预充电阻让它在启动初期通过限流路径慢慢充电而不是瞬间把太阳能板电压拉低二是调整PMIC的启动阈值和输出延迟让SoC在储能电容充电到更高电压后再上电。调试时可以先用手动开关分段上电确认PMIC每一级启动都稳定再连SoC。这个方法我建议所有做能量采集设备的人都做一遍不然到了现场弱光环境很容易复现。5.2 电源纹波和射频灵敏度之间的隐形战斗这会牵扯到现代RF SoC一个非常典型的矛盾DC-DC效率高但噪声大LDO干净但压差消耗能量。套件的默认设计通常通过DC-DC给内部数字电路供电射频前端有一些内部LDO做二次稳压。只要布局合理一般没问题但如果电感摆放得离天线太近或者去耦电容不够DC-DC的开关纹波就会耦合到射频前端导致接收灵敏度下降几个dB。排查方法很简单用同一个测试条件先用外部线性电源直接给板子供电跑一组灵敏度测试再用太阳能板加DC-DC供电跑一组。如果两组结果差2dB以上多半是电源噪声的问题。改善方式包括在射频电源引脚加磁珠和电容的PI滤波让DC-DC电感远离天线匹配区域确认屏蔽罩接地良好。还有一个经验是不要把DC-DC的开关频率和BLE的协议栈事件调度器叠加到同一个时间点否则电磁干扰会形成周期性尖峰这个现象在电流波形上能直接看到。5.3 太阳能板的位置决定天线一半的命运很多太阳能板的背面是一整块铝板或带导电镀层的基板它本身就是一大片金属。如果你把它贴着天线区域放天线的谐振频率会严重偏移辐射效率也大幅下降。我在测试中遇到过天线匹配完全正常但有效距离只剩原来一半的情况最后发现就是太阳能板离天线折线段太近了。解决办法是PCB布局时把天线净空区留出来太阳能板尽量放在天线距离最远的角落用SMA外接天线做对比测试先确认板子本身的射频性能没问题再调整内置天线位置多测试几种光照和遮挡条件下的一致性因为太阳能板也会随温度变化改变介电特性不能只看常温值。开发板阶段这些问题靠飞线还能解决到了量产板阶段天线净空区是硬性规则必须一开始就定好。6. 从开发套件到量产板的最后一段路6.1 现场环境和实验室差太多别用峰值参数做设计实验室里模拟的光照强度和室内温度都比较理想到了真实场景太阳能板可能会被落叶挡一半可能会被鸟粪糊住冬天还可能积雪。一个我在现场踩过的坑是设备被安装在朝西的墙面下午太阳直射时板子发热严重输出电压反而下降导致PMIC判断“光照不足”设备比预计提前进入低电量模式。解决方法是把能量预算按平均值的60%到70%去估算而不是按晴天中午的峰值去算。另外要注意低温环境。超级电容在低温下ESR会升高充电和放电效率都下降锂电池在低温下放电平台降低如果PMIC的欠压保护阈值定得太接近电池最低电压设备会在电量还有余量时提前关机。做产品前一定要把“低温低光高负载”这个组合测一遍。6.2 量产前可以照着做的回归清单正式出板子之前我给自己定了一份测试清单每隔一段时间拿出来逐项过一遍低光启动测试在只有散射光的室内或阴天确认系统能从完全没电状态自动恢复。断续供电测试人为切断太阳能输入再恢复整个过程不能有死锁。全温度范围功耗测试在-20℃与60℃下测量睡眠电流和射频电流确认偏差在预期范围。天线效率测试用无源和有源两种方式验证太阳能板安装后的等效全向辐射功率。传导杂散测试DC-DC纹波不能导致射频杂散超过法规限值。连续运行一周真实部署条件记录能量变化曲线和上行数据成功率。这份清单看着繁琐但每项都在真实项目里救过我。尤其是“低光启动测试”很多能量采集设备第一次上电没问题等完全放电后再恢复如果PMIC默认行为没设计好可能就再也起不来了。6.3 我个人在项目收尾时的一些体会做了一圈太阳能BLE设备下来最大的体会是这个方案的难点不是哪个单点技术而是“能量预算”这个全局概念。你愿意花多少时间去抠睡眠电流愿意在性能上让多少步来换取更低的峰值功耗决定了整个系统的成本、体积和可靠性。还有一点非常实际无论预算算得多准都要在硬件上预留一个备用电池焊盘或者至少预留一个外部电源输入接口。因为现场环境永远比你想象的复杂一个冗余供电点能让你在被“设备在阴雨天掉线”这类问题缠住时快速找到退路。我也越来越不太信MPPT那点效率差异弱光下真正的瓶颈通常来自静态功耗和启动阈值先把这些基础问题解决好再去纠结效率提升才不会白费功夫。