
[已验证]便携式数字可调电源
简介
一个PD协议的数字可调电源,可以使用电池供电
简介:一个PD协议的数字可调电源,可以使用电池供电开源协议
:MIT License
(未经作者授权,禁止转载)描述
便携式数字可调电源
简介
本项目为全国嵌入式芯片与系统设计大赛参赛项目。一个PD协议的数字可调电源,具有以下功能和特点
- CV/CC模式输出,0-18V 0-5A
- 模拟环路,带宽可达40kHz
- 集成电池供电,电池容量10000mAh
- 低输出纹波,空载低于10mVpp,带载低于20mVpp
- 集成过温、过流、浪涌保护
- 串口屏触摸操作,更加便捷
电源拓扑
主板为BUCK,直接接收PD 20V输入或接受电池BOOST升压后的20V输入。至于为什么不用BUCKBOOST,一开始想使用PL5501方案BUCKBOOST,后来焊接多次没有成功,我是QFN苦手。
环路实现
一般想要在集成BUCK芯片外部自行搭建误差放大器时,会将FB引脚拉低,然后从COMP注入信号从而禁用内部误差放大器。但是这样相当于芯片内部的误差放大器变成了一个低阻上拉源,这个源从芯片内部LDO取电,导致高侧驱动能用的电流变少。
为了解决这个问题,本电源从FB引脚直接注入信号。由于电路结构改变,对外部误差放大器的要求也有所变化,低频时需要高增益,同时高频时不能影响整个系统的相位裕度。因此不再采用2型补偿,而是使用一个纯积分环节。
但是这个积分环节也会带来一个问题,本来BUCK电路在经过补偿之后可以看做一个单极点系统,其极点位置在0频率。现在积分环节又带来一个频率很低的极点,因此整个系统在低频时相位更接近180°。反映在时域就是阶跃响应有一个小过冲。如果对此非常介意,可以自行在电压电流采样电路处增加一个电容构成零点。
电池管理
电池管理使用IP2368
单片机程序
单片机选择了STM32G431,主要是因为其UCPD、OPAMP等外设。单片机负责采集电压电流温度等数据,给电源参考电压,PD协议握手,和串口屏通信。
由于STM32的ADC输入阻抗较低,采集电压电流等数据时使用了G431内置的OPAMP做跟随器以获得更准确的数值。
给电源参考电压的部分使用DAC完成。理论上实际输出电压为参考电压的10倍,实际上由于各种误差,需要做一定的校准。
UCPD外设相较于现成PD协议芯片的优势是可以获取充电头的带载能力和精细调整输出电压电流,缺点是中间件不开源,很难调试。因此本设计中也添加了一个CH224K的焊接位,可以通过跳线选择使用CH224K或UCPD外设。
串口屏
串口屏型号为TJC4832T135,采用串口屏的原因是UI编写比较方便。实际上由于电源环路为模拟的,单片机时序要求并不高,直接用单片机刷屏性能也是足够的。
购买链接:https://m.tb.cn/h.gj7WWFEagqxhSPr?tk=skKH32a4ulq
外壳
整体使用亚克力,可拆卸的电池仓使用3D打印。
已知问题
- 电源环路缺一个零点,导致阶跃响应有过冲。
- 电池电量估计算法不完善,估计不准确
- 电池充电板和主板各自有个TypeC接口,可以合并为一个
- 电池对主板的供电走了单独的一个升压芯片,实际上可以使用IP2368的PD协议输出省掉这个芯片
附件
STM32源代码
digitalPower.HMI 串口屏源代码
外壳相关文件
digPWR.mlx MATLAB仿真文件
设计图

BOM


评论