1. 项目概述:光伏供电的移动充电解决方案
这个项目的核心是打造一套离网型便携充电系统,它由三个关键模块构成:光伏发电单元、能量存储单元和智能控制单元。光伏板将太阳能转化为电能后,通过MPPT算法优化能量采集效率,存储在锂电池组中,最终通过STM32控制的Buck-Boost电路输出稳定的5V USB电压。这种设计特别适合户外旅行、应急供电等场景,解决了传统移动电源需要依赖市电充电的痛点。
我选择STM32F103C8T6作为主控芯片,主要看中其丰富的外设资源和低功耗特性。这颗Cortex-M3内核的MCU自带12位ADC和PWM输出,正好满足MPPT算法和充电管理的需求。实测在72MHz主频下运行,整体功耗可控制在25mA左右,配合STM32的睡眠模式,系统待机电流能降到1mA以下。
2. 硬件系统设计详解
2.1 光伏发电模块选型
单晶硅光伏板在转换效率(18-22%)和弱光性能上优于多晶硅,我们选用20W/18V规格的折叠式面板,其开路电压21.5V,峰值工作电压17.8V。关键参数匹配需注意:
- 光伏板Vmp(17.8V) > 电池组满电电压(12.6V)
- 光伏板Imp(1.12A) < 电池最大充电电流(2A)
重要提示:切勿将光伏板直接连接锂电池!必须通过充电管理电路,否则会导致过充危险。
2.2 锂电池管理电路设计
采用二串锂电池组(7.4V标称电压),搭配TI的BQ25895充电IC和DW01保护芯片。BQ25895支持最大3A充电电流,集成I2C接口便于STM32监控充电状态。保护电路需要实现:
- 过充保护(单节>4.25V切断)
- 过放保护(单节<2.75V切断)
- 短路保护(响应时间<200ms)
c复制// STM32读取电池电压的代码示例
HAL_ADC_Start(&hadc1);
uint32_t adcValue = HAL_ADC_GetValue(&hadc1);
float batteryVoltage = adcValue * 3.3 / 4096 * (R1+R2)/R2; // 分压计算
2.3 电压转换电路
使用TPS63060升降压芯片,实现4-17V输入到5V/2A输出的稳定转换。布局时需注意:
- 输入输出电容尽量靠近芯片引脚
