站内搜索
发作品签到
专业版

手撕buck-boost电源

工程标签

6.4k
0
0
21

简介

本项目基于HC32F334 MCU实现了buck-boost数字电源最小系统,从PD协议到电源控制算法全部手搓!!

简介:本项目基于HC32F334 MCU实现了buck-boost数字电源最小系统,从PD协议到电源控制算法全部手搓!!
星火计划2025

开源协议

GPL 3.0

创建时间:2025-02-07 09:45:57更新时间:2025-12-02 13:54:29

描述

重要更新及注意事项

———————————————————————————————————————————————————————————

 1. 2025-2-7

     开始PCB 布局,

2. 2025-10-27

    第一次正式发布软硬件,

    B站完整的制作过程和演示操作:【手撕USB可调电源-V5】 

项目简介

———————————————————————————————————————————————————————————

  • 本项目是一个自主可控性较强的一个开源项目,从输入端的PD协议到buck-boost电源

             和上位机显示部分的功能实现全部是我个人“手搓”实现,耗时差不多快一年了!,有极高的学习研究价值

             可作为电源相关的学习研究基础平台底座

  • 支持USB PD3.0,QC2.0等协议(后期可修改软件适配其他的适配器协议), 可诱骗USB电源适配器输出

             5V,9V,12V,15V,20V电源给系统供电

  • 宽范围的输出电压,从0.4V ~ 36V可调,最大5A的带载能力,10mA~5A限流连续可调(最低输出电压受输入

            电压高低影响,因为PWM最小占空比4%影响)

  • 输入电压,输出电压电流实时监测,通过2.8寸320X240的TFT或者上位机反馈给用户
  • 简洁的交互方式,仅仅通过一个旋转编码器或者上位机输出电压电流限制进行调节
  • 硬件支持蓝牙和wifi通信,未来更新软件,可拓展其他的一些上位机功能
  • 上位机微信小程序(待后续更新软件支持!)
  • 软硬件全部开源
  • 后续会持续更新软件,加入蓝牙和wifi的应用,大家敬请期待吧。。。。。。。。。

项目背景

———————————————————————————————————————————————————————————

由于个人的兴趣爱好,在做之前几个电源项目时萌生了一个想法,想更系统的学习研究一下buck-boost开关电源,

于是就有了这个项目,希望本项目能够帮助像我一样对电源感兴趣的小伙伴们,为他们提供一个案例和研究方向。

由于本人基础薄弱,难免会有很多设计不合理的地方,希望小伙伴们指出讨论,希望大佬多多指点!!

 

PD与QC协议实现

———————————————————————————————————————————————————————————

 利用CH543实现QC和PD协议,CH543D是一颗充电接口协议MCU,他集成了PD的Phy,协议部分需用户自己实现,

PD和QC协议部分代码由本人自行实现,这样可以保持一定的自主性,可以深度定制一些客制化的功能需求。

如下CH543系统框架,有小伙伴感兴趣的,可以阅读源代码,文章最后会把所有的源代码仓库例举出来,供大家学习交流

希望大佬们多多指教!!:

我把PD和QC协议实现部分,分为了如上几个层分别实现,最下面是物理层,已经有芯片厂商实现,

  • 物理层
    • D+/D-接口部分

                        主要是产生QC协议交换时的一些输出电压和读取D+/D-上面的电平,如下表是一些基于USB BC标准之上的

                        一些协议交互电压

               

    •  CC1,CC2接口部分

                         为PD协议提高物理通信接口,这部分同时还包含了BMC(Bi-phase Mark Code)编解码器通信接口,BMC是one-wire

                        传输接口。在TYPE-C PD传输速度被规定在300K±10%,传输格式如下图,每一个bit都需要在准位上先做一次转向,

                       当DATA为1时需要在一个单位时间内高低准位各转向一次,当DATA为0时则转向后需保持一个单位时间长度。

                       

  • 协议层

            协议层分为两部分:1.是QC协议部分,2.是PD协议部分

  • 应用层

           应用层主要实现了I2C通信的处理逻辑,和上位机Buck-boost控制器进行信息的交互

Buck-Boost实现

———————————————————————————————————————————————————————————

如下是Buck-Boost控制系统的框图,分别有输入电压采样、输出电压\电流采样、HRPWM控制单元、增量式PI控制器、

DMA控制器和Buck-Boost模式处理几部分构成。

  • 输入电压采样

对输入电压进行AD转换,能够提供最快2.5Msps的采样率。转换完成后触发DMA搬运数据

  • 输出电压\电流采样

和输入采样AD转换一样。

  • HRPWM控制单元

HRPWM控制单元主要功能是实现PWM控制波形的产生,他能提供13pS的高分辨率PWM脉宽调节能力

  • 增量式PI控制器

PI控制器是整个Buck-Boost处理的核心,他主要通过读取输出电压\电流和设置参考电压\电流,计算出一个误差信号,并产生一个控制量,

然后将这个控制量信息映射为对应的PWM占空比,驱动PWM输出波形,实现恒压和限流的目的,本设计中,使用了两个PI控制器,一个

用于恒压控制,另外一个用于限流控制。

 

  • DMA控制器

DMA控制器部分主要实现ADC处理模块的数据自动搬运到指定内存中的目的,为CPU分担数据搬运的工作,提高系统的数据处理效率  

  • Buck-Boost模式处理

在本项目中Buck-Boost的各个工作模式的切换是一个不小的挑战,这部分也花了我大部分的时间,本设计将他们分为了4个工作模式,

分别是:Buck模式、Buck-Boost-Mix-UP模式、Boost模式和Buck-Boost-Mix-DW模式。

  • Buck模式

这个模式为传统的降压模式,当输入电压大于输出电压1V时,系统将切换到这个模式,这个模式的工作方式是:

固定Boost端的PWM输出4%的最小PWM占空比,维持高侧mos管的自举电容充电,通过调整Buck的PWM占空比来稳定输出电压,

如下图:

  • Buck-Boost-Mix-UP模式

这个模式为Buck和Boost的一种混合模式,当输入电压小于输出电压在1V以内时,系统将切换到这个模式,这个模式的工作方式是:

固定BUCK端的PWM输出85%的PWM占空比,通过调整BOOST的PWM占空比来稳定输出电压,

如下图:

  • Boost模式

这个模式为传统的升压模式,当输入电压小于输出电压1.2V左右时,系统将切换到这个模式,这个模式的工作方式是:

固定Buck端的PWM输出4%的最小PWM占空比,维持高侧mos管的自举电容充电,通过调整Boost的PWM占空比来稳定输出电压,

如下图:

  • Buck-Boost-Mix-DW模式

这个模式为Buck和Boost的一种混合模式,当输入电压大于输出电压在0.2V~1V以内时,系统将切换到这个模式,这个模式的工作方式是:

固定Boost端的PWM输出14%的PWM占空比,通过调整Buck的PWM占空比来稳定输出电压,

如下图:

 

 

硬件介绍

———————————————————————————————————————————————————————————

硬件分为两块板子,分别是功率板和显示板如下

  • 硬件资源与尺寸标注                                            

     

 

  • 硬件原理框图

    

用户UI介绍

———————————————————————————————————————————————————————————

  • LCD显示描述

-------

 

  • 多功能旋转编码器描述

如下是本设计中使用到的旋转编码器,分别是逆时针旋转,顺时针旋转和中间向下按下,

它们分别代表了3个不同的按键。本项目中把逆时针旋转定义为CCW,顺时针旋转定义为CW,

中间按键定义为中间键(CENTER)。

 

下表是本项目中使用到的按键事件

按键事件 描述
DOWN 按键按下
UP 按键抬起
SINGLE_CLICK 单击
MULTI_CLICK
多击,如:双击,三击,四击等
LP 长按
VLP 长长按
VVLP 超长按
HOLD 按下不放
CW 顺时针旋转
CCW 逆时针旋转

按键功能描述

按键名称

前提条件

按键事件

触发功能

备注

CENTER

开机状态

MULTI_CLICK=2

使能输出电压、输出限流的设定

当此功能触发后,对应可调节的选项会有一个外框

CENTER

输出电压/限定流设定使能

MULTI_CLICK=2

切换选定输出电压和电流

 

         

CCW

输出电压使能

逆时针旋转

减少输出电压

 
CCW 限定电流设定使能 逆时针旋转 减少输出限流  

CW

输出电压使能

顺时针旋转

增加输出电压

 

CW

限定电流设定使能

顺时针旋转

增加输出限流

 
CENTER 开机状态 SINGLE_CLICK 循环地打开/关闭电源输出  
         
         

                                                                                  

软件介绍

———————————————————————————————————————————————————————————

PD协议MCU软件开源仓库地址:https://gitee.com/Bryan_He/open-pd-ch543.git
显示MCU(BT/WiFi)软件开源仓库地址:https://gitee.com/Bryan_He/open-w800-bt-wifi.git
 
软件发行记录
 
HC32F334
------------------------------------------------------------------------------------------------------------------------------------
文件名称:buck-boost-HC32F334-V1.3.hex:
日期:2025/11/19
修复问题点:
1.加入EC11编码器防抖处理,解决数值调节时不稳定,来回跳动问题点;
2.修复电压大于大于等于10V时,小数部分显示错误问题;
 
文件名称:buck-boost-HC32F334-V1.2.hex:
日期:2025/11/05
修复问题点:
1. 优化软启动算法;
2.优化PI控制器算法;
3.修改最低输出电压为0.4V;
 
W800
------------------------------------------------------------------------------------------------------------------------------------
文件名称:w800_usr_app_v1.3.fls
日期:2025/11/19
修复问题点:
1.修改背景颜色为深黑色
 
 
 
 

固件下载

———————————————————————————————————————————————————————————

mcu固件下载

1. 下载小华半导体的ISP下载工具(如下附件“HC32F334-固件下载工具.zip”有,点击下载安装)

2. 按如下接线接好USB转串口工具和目标板子,给板子上电,下图中标号2的位置是短接这两个网络,标号3是

短接一下NRST和GND使MCU复位进入ISP下载模式,(NRST短接后需释放,才能复位芯片进入ISP下载模式)。

3. 依次完成如下6个步骤,完成固件的下载

第2步是设置波特率,根据你的串口速度来,如果你的串口速度不快,可以设置低一些的波特率,

第5步只是工具告诉你的一种接线方式,可以作为参考,按上图接线就好

 

PD协议mcu固件下载

1. 先安装CH543的ISP下载工具(如下附件“CH543-ISP-下载工具.zip”有,点击下载解压后就可以用)

2. 按如下短接下载扩展口3V3和PD_UPG(下载过程中一直短接,直到下载成功,

注意:如果是空片没有下载过程序,无需这一步,插上USB口就可用下载程序)

3. 通过USB-C链接电脑,这时下载工具端的“设备列表”处应该会看到CH543设备

按如下5步配置好下载端参数配置,如下第3步是需要选择需要下载的固件文件。

4. 点击下载

 

显示mcu(BT/WiFi)固件下载

1. 下载W800的固件下载工具(如下附件“W800-固件下载工具.rar”中有)

2. 按如下接入USB转串口工具到目标板,标号2是短接W_BOOT到GND,是W800具备进入boot模式的条件,

标号3是短接W_RST到GND,使W800复位进入ISP下载模式。(W_RST短接后需释放,才能复位芯片进入ISP下载模式

注意:如果是空片没有下载过程序,无需这一步,插上串口就可用下载程序)。

3. 电脑端按如下步骤进行操作,完成下载固件,如下第2步需根据自己的串口传输速率来选择,如果你的串口速度低,

选了快速的波特率,可能导致无法下载,如果你不知道你的串口速率的情况下,建议就设置为115200,只是下载比较慢而已。

 

结构部件

———————————————————————————————————————————————————————————

 

1. 亚克力面板:2片

规定请看附件3D文件和2D文件

 

2.铜柱1: 4颗

 

 

3.铜柱2: 4颗

 

 

4. 铜柱3: 4颗

 

5. 螺丝:8颗

 

6. FPC排序:1条

其他

———————————————————————————————————————————————————————————

 

-------

 

 

项目当前已知问题!!

———————————————————————————————————————————————————————————

-------

 

性能参数展示

———————————————————————————————————————————————————————————

-------

 

其他附件

———————————————————————————————————————————————————————————

 

B站完整的制作过程和演示操作:【手撕USB可调电源-V5】 

                                

 

 

视频演示

———————————————————————————————————————————————————————————

      •  

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
暂无数据

附件

序号文件名称下载次数
1
亚克力板.zip
74
2
2.8寸LCD-产品规格书.pdf
97
3
W800-固件下载工具.rar
68
4
CH543-ISP-下载工具.zip
76
5
HC32F334-固件下载工具.zip
70
6
CH543_PD3P0_V1.1.hex
61
7
buck-boost-HC32F334-V1.3.hex
33
8
w800_usr_app_v1.3.fls
37
克隆工程
添加到专辑
0
0
分享
Logo GIF0
侵权投诉
知识产权声明&复刻说明

本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。

请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。

评论

全部评论(1
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航