ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

基于BQ25570和超级电容的太阳能自供电物联网节点设计

基于BQ25570和超级电容的太阳能自供电物联网节点设计 做物联网节点最烦的一件事就是换电池。尤其是我手头这个户外环境监测项目——温湿度、光照采集LoRa上报现场没有任何可取电的地方电池撑一年就要跑一趟维护成本比硬件本身还高。所以我一直在折腾能量收集的方案最后落在一个组合上BQ25570能量收集器 一块5.5V小太阳能板 两只法拉电容超级电容给无线传感器供电实测可以做到连续阴雨天还能正常工作。这篇就把完整的电路设计、器件选型、参数计算、PCB注意事项和实测数据都摊开讲给同样在做自供电IoT节点的人一个可以直接抄作业的参考。1. 方案设计与器件选型思路1.1 为什么锁定了BQ25570市面上能量收集芯片不少我最早用的是TI的BQ25504这颗芯片口碑很好升压转换器效率高、静态功耗极低但有个硬伤它没有集成稳压输出VSTOR上电压范围很宽从2.5V到5.5V都有给3.3V的无线传感器系统供电时必须在后面再挂一个超低功耗LDO。LDO本身静态电流几个微安白白吃掉了收集来的能量且整体BOM也变复杂。BQ25570可以理解为BQ25504的增强版它在同一颗芯片里集成了升压能量收集通道和降压转换器输出VOUT可以稳定在1.8V、2.5V、3.3V等电压点。同样的输入条件一片BQ25570就能完成“低电压升压-储能元件充电-稳压输出”整个链路。它的输入静态电流在纳安级别芯片自身损耗对系统预算影响很小这一点对超低功耗无线传感器节点来说非常关键。我最终选它就是看中了片上集成降压输出和超低静态功耗这两个特性。同类型的芯片还有ST的SPV1050、ADI的ADP5091但它们外围电路设计和参考设计生态没有BQ25570成熟网上现成的资料也多集中在BQ25504/BQ25570上Debug时查资料方便很多。对于个人项目或小批量产品来说选一颗社区资料丰富的芯片能省掉大量试错时间。1.2 太阳能板电压和电流怎么挑才不浪费太阳能板的选型直接决定整个能量收集系统能不能正常工作。BQ25570内部是升压拓扑输入电压可以低到几百毫伏但冷启动需要输入电压升到330mV左右所以标称输出0.5V的微型太阳能板也能用只是电流太小实用性不大。我的经验是优先看开路电压VOC而不是“几V几W”的标称值。BQ25570的MPPT最大功率点跟踪功能会把太阳能板工作点钳在开路电压的某一比例附近一般单晶硅/多晶硅板子取65%~80%。选择太阳能板时VOC要大于你期望的MPPT电压至少20%到30%否则MPPT点太低带不动后续的升压转换。这块我踩过一次坑一开始用了一块标称3V/80mA的小板VOC实测3.3VMPPT点设置在2.2V左右虽然能给超级电容充电但Buck输出3.3V时输入输出电压差太小留给电容储能的余量很有限阴天时系统直接罢工。后来换成了5.5V/100mA的多晶硅板VOC实测5.2V~5.4VMPPT点设在3.7V~3.9V即使经过BQ25570的升压和降压两级转换也能量充裕地撑起3.3V负载。至于短路电流它决定了最大充电速度。100mA的板子在正午强光下MPPT输出功率大约150mW上下给44F电容组从3.5V充到4.5V理论上不到半小时就能充满。这个速度对户外应用完全够用。1.3 法拉电容为什么选2.7V/100F串联而不是5.5V/1F超级电容法拉电容和锂电池比最大的优点是不会过放损坏、循环寿命极长、低温性能好缺点是能量密度低、自放电偏大。对能量收集系统来说超级电容作为中间储能比锂电池更省心因为BQ25570只需要管好过压不用设计复杂的充电保护和过放保护。我一开始贪简单想用一颗5.5V/1F的纽扣式超级电容直接接在VBAT上。结果发现这种小容量电容自放电率高1F的容量即便满电也只有不到2J能量换算成功率不到1mWh晚上就掉光了根本扛不到第二天。后来换成了两颗2.7V/100F的电容串联等效容量约50F但耐压变成5.4V。设计VBAT过压点设在4.5V留了0.9V安全余量非常稳。两颗串联必须并联均衡电阻否则分压不均会击穿其中一颗。我用的是两颗100kΩ电阻分别并在电容两端均衡电流只有几十微安在系统里可以接受。容量也不是越大越好。100F级电容在4.5V下等效储存能量约50mWh对于平均功耗不到1mW的传感器节点来说已经能撑好几天。再往上加到300F、甚至法拉电容组体积和成本都上去自放电也会更明显边际收益很低。关键是先算清负载功耗预算再倒推需要的储能量。1.4 无线传感器节点的功耗预算先算账再动手在选芯片和电容之前先把你节点的功耗算明白。我的节点是STM32L071 SHT30温湿度传感器 BH1750光照传感器 433MHz LoRa模块60秒上报一次。数据手册上的理论电流是一回事实际测出来才准我用微安表实测了各状态电流状态实测电流持续时间深度睡眠2.6uA59.66sRTC唤醒传感器测量3.2mA120msLoRa发送85mA68ms10dBm功率平均到60秒周期约105uA对应3.3V下日耗电约8.3mWh如果把上报周期延长到5分钟一次平均电流立刻降到约25uA日耗电约2mWh甚至不到60秒周期的三分之一。这个数字直接影响储能元件的容量选择。假设超级电容组在系统停机前可释放48mWh能量如果按60秒周期运行全无光照条件下大约只能撑4天如果按5分钟周期可以撑7~8天。所以不要盲目堆电容先想清楚应用场景允许多久采集一次数据再定储能大小。2. 电路设计与关键参数计算2.1 整体电路拓扑与引脚功能BQ25570的电路拓扑可以分成三段输入侧是太阳能板直接接到VIN_DC引脚通过LBOOST引脚外接一颗升压电感把太阳能板的低压抬升到VSTOR内部轨然后内部给VBAT引脚外接的超级电容组充电最后从VOUT引脚输出稳定的3.3V给传感器系统。关键引脚里VIN_OC用来设置MPPT工作点VBAT_OV设置电容组过压保护点VBAT_OK和VBAT_OK_HYST分别设置“电压正常”阈值和迟滞窗口VOUT_SET决定输出电压。实际接线时太阳能板正负极要尽量短直接焊到电路板上不要用长跳线。我第一次测试时用了20cm杜邦线线阻加上接触电阻晴天MPPT采样都不稳充电电流比正常值低了一半后来改成直接焊线才恢复正常。2.2 电感、电容选型不是随便找个差不多的就能用BQ25570的升压电感推荐范围一般是10uH~22uH对太阳能板这种低压差、低电流输入的场景我用的是22uH饱和电流选300mA以上DCR尽量低小于0.5Ω。DCR越大大电流时损耗越明显正午充电电流20mA时0.5Ω的DCR就会带来约0.01V压降看着不多但在低压输入下会直接影响MPPT效率。这颗电感选的不好后面充电效率差一两成很正常。电容方面VIN_DC输入侧并一颗4.7uF陶瓷电容VSTOR引脚并一颗10uFVOUT输出侧并一颗10uF全部用X7R材质、16V耐压。VSTOR上的电容大小有讲究太大冷启动困难太小芯片内部逻辑供电不稳。BQ25570的冷启动需要VSTOR电容先被充到一定阈值如果电容太大启动瞬间需要的能量不够会反复重启。我试过并100uF结果是死活启不来换回10uF就正常了。2.3 MPPT分压电阻计算动手算一次就懂原理BQ25570的MPPT原理是周期性地短暂断开输入让VIN_DC回到太阳能板开路电压然后在VIN_OC引脚通过外部电阻网络采样该开路电压的分压值正常工作时芯片把输入工作点调整到让VIN_OC引脚电压等于内部参考电压附近。这个内部参考电压大致在1.2V左右具体值以数据手册电气参数表为准不同批次有偏差外部电阻分压比决定了MPPT工作点是开路电压的百分之多少。我用的板子VOC实测5.4V希望MPPT工作点在3.8V附近约70%VOC那么分压比应该是1.2 / 3.8 ≈ 0.316。我取了R_OC1680kΩ、R_OC2330kΩ分压比330 / (680330)0.327对应MPPT电压1.2 / 0.327≈3.67V。实测下来充电电流离理想值差一点我又在R_OC2上并联了一颗2MΩ微调电阻把分压比微调到0.30左右MPPT点提到了3.85V效果立竿见影正午充电电流多了15%。调试时建议用精密电位器替代固定电阻找到最佳点以后再用电桥量出阻值换成固定电阻。2.4 VBAT_OV与VBAT_OK阈值设置保护储能也要给MCU一个“可以干活”的信号VBAT_OV是过压保护点对于两颗2.7V/100F串联的电容组我设4.5V。分压电阻取R_OV_TOP3.3MΩ、R_OV_BOT1.2MΩ分压比1.2/(1.23.3)0.267乘以4.5V恰好约1.2V与内部参考匹配。由于内部参考有偏差我实际用台式万用表监看过压动作点校准后锁定在4.52V左右。VBAT_OK用来告诉MCU“储能电容电压足够可以开始干活了”。比如你要求系统在3.5V以上才正常工作低于这个值就深度休眠那就可以把VBAT_OK阈值设在3.5V。BQ25570需要VBAT_OK_PROG和VBAT_OK_HYST两个引脚分别设置阈值和迟滞迟滞可以设0.3V~0.5V避免电容电压在临界点反复跳变导致MCU频繁开机。我把阈值设在3.5V、迟滞约0.4V实测MCU在3.48V以下确实不会再被唤醒。2.5 PCB布局和焊接低压微功率电路最怕漏电流和压降BQ25570是QFN封装的芯片底部的散热焊盘要焊到地同时可以多打几个过孔增强散热和机械强度。如果手工焊接记得焊台温度不要超过350°C每个引脚接触时间控制在3秒以内QFN引脚间距小容易连锡焊完后要用放大镜检查。布局上升压电感要紧贴LBOOST引脚输入输出电容尽量靠近芯片引脚反馈分压电阻走线要远离电感和开关节点否则会引入噪声。VIN_OC采样线最好直接从太阳能板焊盘处单独拉一根细线到芯片引脚也就是开尔文接法这样采样电压不会受充电电流在地线上产生的压降干扰。还有一点容易忽视BQ25570周边电阻全部用大阻值比如MPPT分压电阻是680k和330k如果PCB板材漏电或者助焊剂没洗干净表面漏电阻会在兆欧级别直接改变分压比。板子焊完一定要用洗板水或酒精彻底清洗再涂三防漆否则放在户外潮湿环境里分压比会漂移MPPT点也飘了。3. 软件配合与系统功耗调优3.1 用VBAT_OK信号做上电门控是这套系统能否长期稳定跑的关键硬件上虽然把电压阈值设好了但固件不配合系统一样会出问题。最常见的情况是MCU在电容电压刚越过阈值时被唤醒然后开始采集、发送这一波操作电流很大瞬间把电容电压拉到阈值以下MCU又立刻休眠。如果这个过程反复出现电容电压会一直在临界点附近震荡既发不出数据又白白耗电。我的做法是把VBAT_OK接到MCU的一个外部中断引脚MCU唤醒后第一件事不是采集而是读这个引脚电平。如果为低立即重新进入深度睡眠不做任何额外操作。这个逻辑要放在所有任务之前而且要避免在中断服务函数里做任何耗时的外设初始化。掉电检测还有一个技巧在LoRa发送完成后再读一次VBAT_OK如果发现它已经变低说明这次发送已经把电容“榨干”了接下来就应该延长休眠时间直到电容再次充满。这样系统在弱光照条件下会自适应地降低数据上报频率而不是死板地按60秒周期运行。3.2 传感器采集与LoRa发送的完整流程我的固件主循环比较简单核心如下static void low_power_loop(void) { while (1) { // 进入深度睡眠RTC定时唤醒默认周期60s system_off_sleep(SLEEP_PERIOD_S); // 唤醒后第一件事检查储能是否足够 if (gpio_get(VBAT_OK_PIN) 0) { continue; // 电压不足直接回去睡 } // 打开传感器电源等待100ms让传感器稳定 sensor_vdd_on(); delay_ms(100); read_humiture(temp, humi); read_lux(lux); sensor_vdd_off(); // 打包并通过LoRa发送最多重试2次 uint8_t retry 2; do { if (lora_send(temp, humi, lux) LORA_OK) { break; } } while (--retry); // 发送结束立刻关闭RF回到循环 } }注意传感器供电单独用一颗MOS管开关只有测量时才上电。SHT30和BH1750的空闲电流虽然只有微安级但在电容储能系统中每一微安都要算进预算。LoRa发送失败不要无脑重试最多两次发送失败说明信道质量差或网关不在线重试再多也是浪费能量不如等下一个周期再试。3.3 冷启动与首次部署的几个坑BQ25570第一次上电时如果太阳能板电压高于330mV但低于正常MPPT工作电压芯片会进入冷启动模式先把VSTOR电容充到设定阈值然后才启动升压主通道。这个阶段如果VSTOR电容太大或者供电的太阳能板在阴影下来回变化可能会出现反复启动的现象。我的板子上加了一个“激活按钮”按钮通过一个100kΩ电阻接到VIN_DC和GND之间按下时给VSTOR电容提供一个小电流充电帮助芯片跨过冷启动门槛。实际部署时只要现场有一点点光这个按钮按一下就能让系统跑起来。调试用的跳线帽也可以挂个短接线碰一下VSTOR芯片就能启动。冷启动之后芯片会自己维持下去。如果连续阴天导致VBAT降到系统停机阈值以下芯片本身还是在低功耗工作只是Buck输出关闭。等天气好转太阳能板开始充电电容电压回升系统又会自动恢复无需人工干预。这一点是我从电池方案转向超级电容方案的最大动力整套系统真正做到了免维护。4. 实测数据与结果分析4.1 不同光照条件下的充电功率我在三种典型环境下记录了太阳能板输出和BQ25570对电容组的充电电流数据均在MPPT开启、电容电压处于4.0V左右时测得环境温度25°C左右光照条件VOC(V)ISC(mA)MPPT输出功率(mW)VBAT侧充电电流(mA)晴天直射5.25815229晴天窗台4.816346.4阴天窗台4.15101.9室内LED灯1.60.30.20.04可以看到室内LED灯下充电电流只有0.04mA这种环境下基本上不可能维持一个LoRa节点正常运行它只够给电容“微弱补血”。所以如果你打算靠室内光给BQ25570供电除非负载是纽扣级功耗的传感器否则建议直接放弃改成室外或窗台场景更现实。4.2 法拉电容组的充电曲线与自放电特性电容组等效容量实测44F我把充电电压下限设定3.5V、上限4.5V。晴天直射环境下从3.5V充到4.5V实测耗时约27分钟理论计算值是23分钟多出来的时间主要是MPPT波动和升压效率损耗。阴天窗台环境下同样的充电范围需要约9小时所以阴天指望充满电容组不现实但维持系统正常运行是够的。关机状态下我测过电容组从4.5V自然掉到4.42V需要24小时折合自放电电流约40uA。这个数字听起来不大但已经接近整个60秒周期节点平均功耗的一半了。超级电容的自放电是系统设计里最容易忽视的隐形杀手温度越高自放电越大夏天实测掉压速度比冬天快30%以上。4.3 整机功耗实测与续航估算节点整机在60秒上报周期下实测平均功耗约105uA折合3.3V下约0.35mW。加上电容组自放电约0.18mW整个系统日耗电约12.7mWh。而电容组在4.5V到3.5V区间可释放能量约48.9mWh理论上无光照可续航约3.8天实测因MPPT、降压效率等因素实际撑了约3.5天。如果改用5分钟上报周期整机平均功耗降到约25uA日耗电算上自放电只有约6.5mWh无光照续航实测可以到7天左右。这个结果对于户外环境监测完全够用因为连续7天完全无光的环境在绝大多数地区是不会出现的。4.4 连续阴雨天的能量收支如何平衡把能量收支放在“天”这个尺度上算就清楚了。按5分钟上报周期某一天晴天直射4小时MPPT输出按平均60mW算每天收集能量约240mWh是系统日耗电6.5mWh的36倍电容组早上就能充满剩下时间都在超压保护状态。连续阴天时MPPT输出可能只有10mW每天有效光照8小时也只收集80mWh依然远大于6.5mWh的日耗电。真正危险的场景是连续阴雨加上传感器位置光照被遮挡这时每天收集的能量低于系统消耗电容组电压每天都在缓慢下降直到降到3.5V以下系统停机。但停机不等于数据丢失天气转好之后电容重新充满系统会自动恢复工作。整个过程中MCU程序不需要做任何特殊处理。5. 常见问题与调试经验实录5.1 冷启动失败VSTOR电容不是越大越好我之前提过VSTOR并100uF导致无法启动。后来我把VSTOR电容改成10uF又把太阳能板换成高VOC型号问题立刻消失。这类问题在弱光环境下特别容易出现比如室内窗台或阴天VIN_DC电压只有几百毫伏芯片启动过程的能量完全不够需要多次尝试才能成功。调试时可以用直流稳压电源模拟太阳能板从0V开始缓慢升压观察VIN_DC电流和VSTOR电压波形。正常启动过程是VSTOR电压先缓慢上升然后突然跳变到更高电压说明内部升压已经建立。如果VSTOR反复在零点几伏和零伏之间震荡大概率是电容太大或者MPPT分压比设置不对。5.2 MPPT分压比异常导致充电电流上不去当你发现太阳能板有光照、VIN_DC电压正常但VBAT充电电流很小甚至为零时第一个怀疑对象就是VIN_OC分压网络。BQ25570的MPPT点如果设得太低升压转换器会提前进入低功率模式如果设得太高又会出现输入电压不足、充电电流时断时续的现象。排查方法很简单把万用表表笔接在VIN_OC引脚上观察电压是否稳定在内部参考电压附近。如果偏差超过0.1V就调整R_OC1和R_OC2的比值。测量时要用高输入阻抗的万用表普通低阻抗表笔会直接拉低这个高阻节点的电压让你误判。5.3 电感啸叫和输出纹波问题BQ25570在输入功率很低时采用脉冲跳跃模式升压电感的开关频率会降到音频范围内电感磁芯产生人耳可闻的吱吱声。这通常不是硬件故障而是输入功率跟不上负载需求的正常表现。如果啸叫严重可以换用屏蔽电感或者把MPPT点稍微调高一点让芯片输入功率更宽裕。另外VOUT输出侧的陶瓷电容要选低ESR的X7R如果输出纹波依然偏大可以在VOUT上并联一颗100uF电解电容进行二次滤波。无线传感器发送瞬间电流变化非常大输出纹波过大会导致LoRa模块发射功率不稳甚至死机重启。5.4 超级电容自放电比想象中大得多很多人第一次用超级电容都会被它的自放电吓一跳。我手里的2.7V/100F电容常温下充满电放置一周电压能从2.7V掉到2.1V左右这还是在单体状态下。串联成组之后如果没加均衡电阻自放电更不可控甚至会出现一个电容2.8V、另一个只有1.6V的极端情况。所以串联使用必须加均衡电阻阻值越小均衡效果越好但损耗也越大。用100kΩ是兼顾两者的折中。另外超级电容在焊接时要注意温度烙铁温度超过350°C或焊接时间过长会损伤内部隔膜导致漏电流急剧增大。我焊坏过两颗症状是充满电放一晚上电压就掉了0.5V以上。5.5 太阳能板接线越长MPPT越不准最后再提醒一个特别隐蔽的坑太阳能板到BQ25570之间的连接线很关键。VIN_OC采样的是芯片VIN_DC引脚上的电压如果太阳能板离电路板很远导线电阻在充电电流下会产生压降芯片实际看到的电压会比太阳能板真实输出电压低MPPT点就会偏移。我后来把太阳能板用双绞线直接焊到PCB上总长度控制在10cm以内。如果必须拉长线要在太阳能板附近加一个参考采样点把VIN_OC采样线单独引到太阳能板端避免采样电压受到线损干扰。6. 结尾一点个人体会这套系统从画板到稳定运行我前后折腾了将近三周最大的收获不是“BQ25570怎么用”而是“能量收集系统的设计顺序”先测负载功耗再算储能容量最后才选太阳能板和调MPPT。顺序一旦反了后面全是补丁式修改。BQ25570本身是一颗很成熟的芯片真正决定项目成败的反而是外围的超级电容自放电、PCB漏电流、软件里那几次VBAT_OK判断。如果你也在做类似的太阳能自供电传感器节点建议先从最保守的参数开始验证——电容容量宁大勿小上报周期宁长勿短等系统稳定跑两周再一点点压功耗、提频率。最后再分享一个实用小技巧在节点固件里把每次VBAT电压和充电电流打包进LoRa数据帧一起发上来这样你人在电脑前就能远程看到太阳能板的“健康状态”排查故障时能少跑好几趟现场。
返回列表