
基于STM32G474的数字电源
简介
本项目是一套基于 STM32G474 的双向四管升降压数字电源 设计输入: 5V - 40V 10AMAX 输出范围: 0.5V - 40V 功率拓扑: 四开关同步整流
简介:本项目是一套基于 STM32G474 的双向四管升降压数字电源 设计输入: 5V - 40V 10AMAX 输出范围: 0.5V - 40V 功率拓扑: 四开关同步整流开源协议
:GPL 3.0
(未经作者授权,禁止转载)描述
UF4 数字电源:四开关同步整流 Buck-Boost 可调电源
一套从功率硬件、实时控制固件、本地显示上位机到 PC 调试/烧录软件都开源的数字电源项目。
UF4 数字电源是一套基于 STM32G474CBT6 的四开关同步整流 Buck-Boost 数字电源方案,目标是做成一台可调、可监控、可升级、可二次开发的实验室电源。项目不仅提供功率板硬件,还配套了下位机控制固件、基于 STM32H743 的本地显示/旋钮上位机,以及基于 Python/PyQt 的 PC 上位机 F4CP。
如果你正在学习数字电源、HRTIM、Buck-Boost 多模式控制、STM32 图形界面、串口通信协议,或者想复刻一台可玩性更高的数控电源,这个项目可以作为一个完整参考。
开源代码链接 觉得不错的话点个follow和star吧
QQ 交流群:871340927
项目亮点
- 四开关同步整流 Buck-Boost 拓扑,可覆盖降压、升压和输入输出接近时的 Mix 过渡区。
- 输入范围
5V - 40V,输出范围0.5V - 40V,目标电流0 - 10A。 - 支持正反向电流硬件能力,后续可继续扩展 UPS / 双向能量流等玩法。
- 下位机基于
STM32G474,使用 HRTIM 做高频互补 PWM 控制。 - 固件包含 ADC 采样、双闭环控制、软启动、保护逻辑、Buck/Mix/Boost 模式切换和参数存储。
- 板载
STM32F103DAPLink,可配合 PC 上位机进行固件烧录和调试。 - 统一通信协议
UF4COM V3,支持 READ / WRITE / REPORT / STREAM,适配 USB CDC、UART、RS485、TCP 透传等链路。 - PC 上位机
F4CP提供参数设置、实时曲线、状态监控、固件版本管理和 DAPLink 烧录功能。 - 独立硬件上位机基于
STM32H743 + LTDC + DMA2D + SDRAM,带 2.8 寸横屏 GUI、旋钮、按键和波形界面。
实物与界面
功率板实物



PC 上位机 F4CP


硬件上位机



硬件参数
| 项目 | 参数 |
|---|---|
| 主功率控制 MCU | STM32G474CBT6 |
| 功率拓扑 | 四开关同步整流 Buck-Boost |
| 输入范围 | 5V - 40V |
| 输出范围 | 0.5V - 40V |
| 目标电流 | 0 - 10A |
| PWM 外设 | STM32G4 HRTIM |
| 栅极驱动 | UCC27211 |
| 板载调试 | STM32F103C8T6 DAPLink |
| 外部参数存储 | W25Q64 |
| 采样量 | VIN / IIN / VOUT / IOUT / 板载温度 / MCU 温度 |
| 通信接口 | USB CDC / UART |
| 通信协议 | UF4COM V3 |
辅助电源部分包含:
LMR36520F:VIN 转 5V,用于运放、基准电压和风扇供电。LM1117-3.3:5V 转 3.3V,用于 MCU 与外设逻辑供电。SY7304DBC:5V 升压到约 11.1V,用于栅极驱动供电。
系统组成
本项目不是单独一块 PCB,而是一套完整数字电源系统:
| 模块 | 本地工程 | 主要作用 |
|---|---|---|
| 功率板 / 下位机固件 | UF4DigitalPower | 采样、PWM、闭环控制、保护、参数存储、通信 |
| 硬件上位机 | UF4UpperPower | 本机显示、旋钮设定、按键菜单、波形查看 |
| PC 上位机 | F4CP | 串口连接、参数配置、实时曲线、固件下载、DAPLink 烧录 |
| 通信协议 | UF4COM V3 | 统一数据 ID、帧格式、CRC、读写和流数据 |
| 固件下载网址 | update.hepi.ng | 在线下载对应固件 |
整体关系可以理解为:
PC 上位机 F4CP
| USB CDC / UART / DAPLink
v
功率控制板 STM32G474
| HRTIM / ADC / PID / 保护
v
四开关 Buck-Boost 功率级
硬件上位机 STM32H743
| USART1 + UF4COM V3
v
功率控制板 STM32G474
下位机固件架构
下位机固件面向实时数字电源控制,主要分为五层:
-
板级外设层
ADC、HRTIM、TIM、GPIO、SPI、USART、USB CDC、DMA、IWDG 等底层外设初始化。 -
采样与换算层
对 VIN、IIN、VOUT、IOUT、温度等采样值进行平均、校准和物理量换算。 -
状态机与保护层
包含 Init / Wait / Rise / Run / Err 主状态机,以及短路、过压、过流、过温等保护逻辑。 -
模式判定与切换层
根据输入输出电压关系在 Buck / Mix / Boost 之间切换,并加入回差、软启动、占空注入和平滑过渡。 -
快速闭环控制层
HRTIM 快环中断内执行电压环、电流环、anti-windup、模式对应 duty 计算和 PWM 比较值刷新。
主要实时节拍:
TIM6 1 ms 毫秒计数、喂狗
TIM7 5 ms ADC 平均、保护、状态机、模式判定、通信流 tick
TIM16 10 ms 采样值换算成上报物理量
HRTIM 200kHz 快速闭环控制与 PWM 刷新
PC 上位机 F4CP
F4CP 是面向 Windows 的桌面上位机,使用 Python 3.11 + PyQt5 + qfluentwidgets + pyqtgraph + pyOCD 开发。
主要功能:
- 自动连接 USB CDC / 串口设备。
- 设置输出电压、电流限制、OVP、OCP、OTP、风扇等参数。
- 开启 / 关闭输出。
- 实时读取 VIN、IIN、VOUT、IOUT、温度、风扇、工作模式和故障状态。
- 显示实时曲线和运行状态。
- 通过 UF4COM V3 执行读写、上报和流数据传输。
- 管理固件版本、下载推荐版本或测试版本。
- 调用 DAPLink / pyOCD 完成固件烧录和复位。
- 保留通用协议调试入口,方便开发时排查通信问题。
F4CP 软件结构:
F4CP/
├─ app/
│ ├─ controllers/ 页面控制器
│ ├─ core/ 数据中心、常量和基础对象
│ ├─ protocol/ UF4COM 协议编解码
│ ├─ session/ 串口、电源设备、DAPLink 会话
│ ├─ widgets/ PyQt 页面和控件
│ └─ window/ 主窗口和导航
├─ config/
├─ Resources/
├─ script/
├─ tests/
├─ start.py
└─ pyproject.toml
硬件上位机
硬件上位机基于 STM32H743ZITx,定位是一个不依赖 PC 的本机控制和显示终端。
主要特性:
STM32H743ZITx,Cortex-M7,主频480 MHz。- 2.8 寸横屏 GUI,逻辑分辨率
640 x 480。 ST7701LCD,LTDC + RGB565 framebuffer输出。DMA2D负责矩形填充、图片搬运和字体 blit。FMC SDRAM用于双 framebuffer、字体缓存和绘图 scratch。- 两个旋转编码器分别用于 VSET / ISET。
- 五个面板按键用于菜单、保护参数、输出控制和波形页面操作。
USART1通过UF4COM V3与功率控制板通信,当前波特率921600。
硬件上位机支持主界面和波形界面:
- 主界面显示 VIN / IIN / PIN / EFF / FAN、VO / IO / PO、VSET / ISET、保护值、输出状态、通信状态和故障状态。
- 波形界面支持 CH1 / CH2 双通道趋势查看,可选择 VOUT、IOUT、POUT、VIN、IIN、PIN、VSET、ISET、EFF、FAN 等数据源。
当前硬件上位机成本较高,更适合作为进阶参考;只想先复刻电源本体的话,可以优先使用 PC 上位机 F4CP。
通信协议 UF4COM V3
UF4COM V3 是项目统一通信协议,目标是在 UART、USB CDC、RS485、TCP 透传等链路上复用同一套帧格式、CRC、流式解析和命令调度逻辑。
协议特点:
- 固定帧头
AA 55。 - CRC16-CCITT 校验。
- 支持 ACK 和错误响应。
- 支持批量 READ / WRITE。
- 支持 STREAM_DATA 主动上传。
- 数据项采用固定 TV 格式:
ID + 16bit VALUE。 - 温度、电压、电流、状态量、保护阈值、风扇、PWM 调试量等都有统一 ID。
典型数据 ID:
| ID | 名称 | 单位 | 说明 |
|---|---|---|---|
0x0A | INPUT_VOLTAGE | mV | 输入电压 |
0x0B | INPUT_CURRENT | mA | 输入电流 |
0x0C | OUTPUT_VOLTAGE | mV | 输出电压 |
0x0D | OUTPUT_CURRENT | mA | 输出电流 |
0x11 | SET_VOLTAGE_LIMIT | mV | 电压设定 |
0x12 | SET_CURRENT_LIMIT | mA | 电流设定 |
0x15 | POWER_STATE | - | 输出状态 |
0x16 | FAULT_STATE | - | 故障状态 |
0x1E | OTP_SET_VALUE | 0.01 degC | 过温保护设定 |
0x20 | OVP_SET_VALUE | mV | 过压保护设定 |
0x22 | OCP_SET_VALUE | mA | 过流保护设定 |
0x27 | FAN_SET_VALUE | % / permille | 风扇设定 |
Git 地址
| 工程 | 说明 | Git 地址 |
|---|---|---|
| F4CP PC 上位机 | Python / PyQt 桌面上位机 | https://github.com/UF4OVER/UF4DigitalPower.git |
| F4CP Gitee 镜像 | PC 上位机 Gitee remote | https://gitee.com/uf4/UF4DigitalPower |
| UF4DigitalPower 下位机 | STM32G474 功率控制固件 | https://github.com/UF4DigitalPower/UF4DigitalPower.git |
| UF4UpperPower 硬件上位机 | STM32H743 本地显示控制固件 | https://github.com/UF4DigitalPower/UF4UpperPower.git |
| UF4COM V3 | 通信协议核心 | https://github.com/UF4OVER/UF4COM |
| DAPLink 固件 | 板载 STM32F103 调试器固件 | https://github.com/UF4OVER/DAPLINK_STM32F103XB |
复刻提示
- 建议先按原 BOM 复刻,不要一开始就替换 MOS、采样电阻、运放或电感参数。
- 不同器件和 PCB 焊接质量会影响环路参数、动态响应、效率和稳定性。
- 如果更换 MOS、电感、采样电阻、输出电容或提高输入输出电压,需要重新评估采样比例、PID 参数、保护阈值和散热。
- 板载 DAPLink 需要烧录对应 DAPLink 固件,之后才能正常配合 PC 上位机烧录下位机。
- 上位机第一次启动可能较慢,可以等待一段时间。
- 功率板理论上可以通过更换器件支持更高输入输出电压,但当前辅助电源受
LMR36520F等器件限制,实际修改前必须重新核算。
构建与启动
PC 上位机 F4CP
git clone https://github.com/UF4OVER/UF4DigitalPower.git
cd UF4DigitalPower
uv sync
uv run python start.py
下位机固件
git clone https://github.com/UF4DigitalPower/UF4DigitalPower.git
cd UF4DigitalPower
git submodule update --init
cmake --build cmake-build-debug -- -j4
硬件上位机固件
git clone https://github.com/UF4DigitalPower/UF4UpperPower.git
cd UF4UpperPower
git submodule update --init
cmake --build cmake-build-debug
参考资料
UF4COM V3通信协议DAPLink_STM32F103XB板载调试器固件- TI: Multimode control for a four-switch buck-boost converter
- ST: Buck-boost converter using the STM32F334 Discovery kit
- Synchronous Rectification Buck-Boost Digital Power Supply Based on STM32
安全声明
数字电源涉及高电压、大电流、储能电容、发热器件和可能的瞬态冲击。复刻和调试前请务必做好限流、保险、散热、绝缘、防反接和应急断电措施。
由于焊接水平、器件批次、PCB 制造、负载环境和调试方式不同,作者不对使用本项目造成的任何直接或间接损失负责。请在充分理解风险后再进行上电测试。
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。










