📺 项目说明视频: 在哔哩哔哩观看
QQ交流群:582594264
Caution
本项目涉及致命高压。设备断电后,输出端及电容仍可能储存大量能量。调试和使用前,请确保绝缘保护措施齐备;请勿在缺乏高压操作经验或无人监护的情况下使用。
HVCCPS V1.4 是一款基于 STM32G474CBT6 的数控高压 DC-DC 电源,功率级采用 PSFB(Phase-Shifted Full Bridge,移相全桥) 拓扑。它可用于高压电容充电及实验室高压供电,公开版固件支持 CV(恒压)、CC(恒流)和 CP(恒功率) 控制。
在推荐工作条件下,电源输入为 18–28 V DC,公开固件输出限制为 0–2200 V、0–200 mA、0–400 W。项目功率密度约为 40 W/in³。
PCB 使用 EasyEDA(立创 EDA 专业版)设计,仓库提供完整的 EasyEDA 工程文件、Gerber 制板文件和 BOM,便于复刻与二次开发。
为预防闭源商用或闭源抄袭,公开仓库目前仅提供编译后的固件,固件源码不直接放在公开分支中。如需源码,请加入 QQ 群 582594264,或发送邮件至 Lanyyontop@gmail.com 后免费获取。
本仓库公开内容采用 GPL-3.0 许可证。获取、修改或再分发源码及衍生作品时,请遵守许可证条款。
以下参数适用于默认 1:100 变压器及公开发布版固件。
| 参数 | 最小值 | 典型值 | 最大值 | 单位 | 说明 |
|---|---|---|---|---|---|
| 输入电压(DC) | 18 | 24 | 28 | V | 额定输入电压 |
| 输入电流(DC) | — | — | 20 | A | 额定输入电流 |
| 输出电压(DC) | 0 | 可调 | 2200 | V | — |
| 输出电流(DC) | 0 | 可调 | 200 | mA | — |
| 输出功率(DC) | 0 | 可调 | 400 | W | — |
| 开关频率 | 11 | 35 | 45 | kHz | 默认自动变频,35 kHz 为基准频率 |
| 栅极驱动死区 | — | 200 | — | ns | — |
| 变换效率 | — | — | 96 | % | 实测峰值;见效率测试数据 |
| 输出电压步进 | — | 1 | — | V | — |
| 输出电流步进 | — | 1 | — | mA | — |
| 输出电压精度 | — | — | ±0.5 | % | — |
| 输出电流精度 | — | — | ±1 | % | — |
| 功率密度 | — | 40 | — | W/in³ | 按整机有效体积计算 |
| 整机重量 | — | 292 | — | g | — |
Note
表中的 28 V 是推荐工作范围上限,母线电容耐压为 35 V,切勿超过 35 V。
| 项目 | 参数 | 说明 |
|---|---|---|
| 控制模式 | CV / CC / CP | 三环 PI 自动仲裁 |
| 固定占空比模式 | 0–100% | 仅用于调试,仍受软启动约束 |
| 软启动 | 每个控制周期最多增加 10% 占空比 | 默认值,可通过上位机配置管理器调整 |
| 运行定时 | 连续或 1–65534 s | 到时自动关闭输出 |
| 供电 UVLO / OVP | 母线 >32 V;12 V、5 V、3.3 V 窗口保护 | 下位机内部抑制实际输出,软件 enable 与通讯保持 |
| 硬件过流保护(OCP) | 原边 SW 节点交流峰值约 60 A | COMP1 → HRTIM FAULT4 异步关断;不是 60 A 输入额定值 |
| 软件过温保护(OTP) | 70 °C | MOS NTC 或 MCU 内部温度任一路超过阈值即关断 |
| 独立看门狗(IWDG) | 约 200 ms | 主循环或控制 ISR 异常时触发复位 |
| 按键 | A / B 两组预设 | 可保存 CV、CC、CP 和运行时间,支持脱机运行及停机 |
OCP 和 OTP 触发后均会锁存停机状态。再次启动时固件会清除锁存;如果故障条件仍然存在,保护会立即再次触发。
| 项目 | 参数 |
|---|---|
| MCU | STM32G474CBT6 |
| 外部晶振 | 8 MHz HSE |
| 系统主频 | 170 MHz |
| 通信接口 | USART3,PB10(TX)/ PB11(RX) |
| 串口格式 | 115200 baud,8N1 |
| 上位机接口 | WebSerial |
| 输入连接器 | XT30 |
| 高压输出连接器 | M3 |
高压副边的 PCB 电气间隙均 ≥ 9.5 mm,如有需求可以适当改版增加输出电压。
如需更高输出电压,必须重新核算并验证变压器匝比、整流二极管、输出电容和反馈网络,同时修改固件参数。
PCB 采用 4 层、1.6 mm 板厚、1 oz 铜厚设计,常用阻容器件全部采用 0805 封装,便于焊接。顶层主要布置主功率变压器,底层主要布置驱动、控制和采样电路。
| 顶层 | 底层 |
|---|---|
![]() |
![]() |
功率级采用 PSFB 移相全桥拓扑,通过改变两组桥臂之间的相移调节传输功率。
控制器负责电压、电流、温度和辅助电源采样,并通过 HRTIM 产生带固定死区的四路全桥驱动信号。独立比较器和 HRTIM Fault 通路用于硬件过流关断。
%%{init: {"flowchart": {"htmlLabels": true, "nodeSpacing": 70, "rankSpacing": 95}, "themeVariables": {"fontSize": "18px"}} }%%
flowchart LR
Host["上位机 / A-B 按键<br/>CV、CC、CP、运行时间"] --> Cmd["运行目标与 active 配置<br/>PI 参数、软启动、变频策略"]
ADC["同步 ADC 采样<br/>VSEC / ISEC / VPRI / IPRI_DC<br/>AUX12 / AUX5 / VCC / 温度"] --> Filter["全周期聚合与滤波<br/>24 点高速均值/峰值<br/>辅助电源滑动平均"]
Filter --> Protect{"保护判断"}
Protect -->|"UVLO/OVP 或 OTP"| GateOff["实际输出关断<br/>duty = 0"]
Protect -->|"OCP"| Fault["HRTIM FAULT4<br/>硬件异步关断"]
Protect -->|"正常"| Fb["反馈量<br/>Vout、Iout、Pin/Pout"]
Cmd --> PI["三环 PI 并行计算<br/>CV:电压误差<br/>CC:副边电流误差<br/>CP:功率误差"]
Fb --> PI
PI --> Min["min(CC, CV, CP)<br/>低占空比者接管"]
Min --> Slew["软启动限速<br/>只限制 duty 上升"]
Slew --> Duty["移相 duty → HRTIM CMP3"]
Duty --> PSFB["PSFB 功率级<br/>固定约 200 ns 死区"]
PSFB --> ADC
Duty --> Freq["TIM7 自动变频监督<br/>按 duty 计分与前馈"]
Freq --> Duty
控制器本质上是 三环并联的占空比限制器:CV、CC、CP 三个 PI 同时给出允许的移相占空比,固件取其中最小值作为实际控制量,再经过软启动限速后写入 HRTIM。
使用仓库中的 Gerber 制板文件下单,推荐参数如下:
- 层数:4 层
- 板厚:1.6 mm
- 外层铜厚:1 oz
- 内层铜厚:0.5 oz
| 项目 | 参数 |
|---|---|
| 磁芯 | EC49,40 材 |
| 匝数 | 初级 9 匝,次级 900 匝 |
| 匝数比 | 1:100 |
| 初级绕组引脚 | 2–3 |
| 次级绕组引脚 | 5–8 |
| 次级线径 | 0.3 mm |
| 气隙 | 不需要 |
| 其他要求 | 尽量减小漏感,完成后灌胶密封 |
初级绕组应尽量选用较粗导线,载流能力需 ≥ 30 A。灌胶前裁掉 1、4、6、7 脚及中间两个多余引脚;绕线方向正反均可。
当前项目的变压器是在淘宝店铺“祥润电子磁芯骨架”定做打样的。
Note
变压器打样后漏感应小于10uH,励磁电感应大于300uH。
完整物料清单见 Docs/BOM.xlsx。以下器件在采购时需要特别留意:
| 位号 | 器件/建议 | 注意事项 |
|---|---|---|
| L1 | 参考链接 | — |
| R8 | 10 kΩ NTC,B = 3450 K(参考链接) | — |
| Q1–Q4 | CSD18540 或 CSD19531 | 注意管子来源 |
| R24–R28 | Viking(光颉)高压电阻,2 MΩ、2512、3000 V(参考链接) | — |
| U7、U8 | UCC27211;可替换为 SLM27211 | 市面上 UCC27211 假货较多,SLM27211 可 Pin-to-Pin 替换 |
| U9 | EE8.3 1:200电流互感器(参考链接) | — |
其余元器件请按照 BOM 采购。
推荐使用锡膏和加热台或回流焊完成贴片焊接。这里就不过多赘述了,相信复刻本项目的同学都是焊接老手了。
作为通用高压电源使用时,可外接 4000 V、0.2 µF 薄膜电容作为输出滤波电容(购买链接);作为高压电容充电器使用时,可以不安装该电容。
连接电容的时候先在引脚上焊接端子,再使用螺丝固定到输出端。
发布固件由两个 Intel HEX 文件组成,可从 GitHub Releases 下载:
| 固件 | 起始地址 | 作用 |
|---|---|---|
| Bootloader HEX | 0x08000000 |
启动检查及串口 IAP 更新 |
| App HEX | 0x08004000 |
电源控制、保护、遥测和上位机通信 |
准备以下设备:
- ST-Link V2
- USB 转 TTL 模块
- SH1.0 转 2.54 mm 转接板
- SH1.0 接口连接线
在电脑中下载安装 STM32 ST-LINK Utility,并建议先下载当前工程(ZIP)或使用在线烧录器或在线上位机。
完整操作过程见:固件烧录视频教程。
板上通信接口依次为 SWCLK、SWDIO、TX、RX、GND、3.3 V、SDA 和 SCL。烧录分为以下两个阶段:
| 阶段 | 需要连接的引脚 | 连接设备 |
|---|---|---|
| 首次烧录 Bootloader | SWCLK、SWDIO、GND、3.3 V |
ST-Link V2 |
| IAP 烧录 App | TX、RX、GND、3.3 V |
USB 转 TTL 模块,TX/RX 交叉连接 |
Warning
操作前必须断开高压输出负载。确保安全。
-
将板卡的
SWCLK、SWDIO、GND和3.3 V与 ST-Link V2 对应连接。 -
打开 STM32 ST-LINK Utility,选择 Bootloader HEX 文件并执行烧录。
-
烧录完成后复位板卡;若
LED_A点亮,说明 Bootloader 已正常启动。 -
断开 ST-Link,改用 USB 转 TTL 模块连接板卡的
TX、RX、GND和3.3 V,其中 TX 与 RX 需要交叉连接。 -
推荐在已下载的工程中打开
BootLoaderHostUI/index.html;也可以直接使用在线 IAP 烧录页面。请使用最新版 Chrome 或 Edge。 -
在页面中连接串口并选择 App HEX 文件,点击烧录后按下板卡的 RST 键。
-
等待传输和校验完成。再次复位板卡后,若
LED_A持续闪烁,说明 App 已成功启动。
推荐下载工程后打开 AppHostUI/index.html 离线使用;也可以直接打开在线电源控制上位机。页面通过 WebSerial 提供以下功能:
首次使用建议先观看:上位机连接与控制视频教程。
- 启停控制及 CV、CC、CP 目标设置
- 固定占空比调试
- 电压、电流、功率、温度和保护状态遥测
- 实时曲线及单周期采样波形
- PI、开关频率、自动变频及软启动参数配置
- 前面板 A/B 按键预设管理
连接参数为 115200 baud、8N1。建议使用最新版 Chrome 或 Edge,并一次只打开一个占用该串口的页面。
输出 V/I 校准需要使用 V0.0.3 或更新版本 App 固件。校准表会写入 App 独立保留的 flash 区,IAP 更新 App 时不会擦除;但写表和启用校准都会操作 flash,必须在输出关闭时进行。
Caution
校准时仍然会接触高压输出。接线、测量、换挡和改负载前必须关闭输出并确认输出端已经充分放电。不要在无人监护或绝缘措施不足的情况下校准。
- 烧录或更新到 V0.0.3 App 固件,连接电源控制上位机,确认串口通讯正常。
- 打开上位机顶栏的 Calibrate 面板,先保持 Apply calibration to the control loop 关闭。
- 在目标电压、电流和负载点下运行电源,用外部万用表或高压表记录实际输出。
- 停止输出并放电,在校准面板中填写采样点:
- 电压点填写上位机显示的 RAW VSEC 和外部表测得的电压。
- 如果该电压点对应固定负载电流,可同时填写外部表测得的电流,用于负载相关的二维电压修正。
- 电流点填写上位机显示的 RAW ISEC 和外部表测得的电流。
- 建议先采 2–5 个覆盖常用工作区的电压点;如果只关心某个工作点,也可以先采单点。电流校准可按常用负载电流范围补充 1–3 个点。
- 点击 Compile & Preview,检查预览表中的修正量是否合理。固件会把电压修正钳位在 ±50 V、电流修正钳位在 ±50 mA,超出这个范围说明采样点或外部测量可能有误。
- 确认输出仍为关闭状态后,点击 Write Table to Flash,等待上传进度完成。
- 勾选 Apply calibration to the control loop,上位机会把启用开关写入并保存到配置 flash。
- 重新低功率启动,使用外部表复测输出。如果误差仍偏大,保持校准关闭重新采集 RAW 点,或补充新的采样点后再次写表。
校准点应始终使用校准关闭时的 RAW 值作为输入。不要把已经应用校准后的普通 VSEC / ISEC 读数再次填入 RAW 列,否则会把修正量重复叠加。
本地页面 BootLoaderHostUI/index.html 和在线 IAP 烧录页面均支持 Intel HEX 解析、地址范围校验、串口握手、分块传输、进度显示和错误日志,仅用于更新 App 固件。
本项目的教程及测试视频统一收录在 HVCCPS V1.4 视频教程与测试 Release 中。
测试仪器:
- SDS804X 示波器
- VC980D 万用表
实测主功率管能够实现 ZVS 零电压开通:开关节点电压先降至 0 V 附近,随后栅极驱动信号到来并使 MOSFET 导通。移相全桥利用变压器漏感续流实现软开关,以降低高频开关损耗。
示波器探头连接方式如下:
测试重点观察较难实现 ZVS 的滞后桥臂下管;当滞后桥臂满足 ZVS 条件时,超前桥臂通常也能实现 ZVS。
| ZVS 波形 1 | ZVS 波形 2 | ZVS 波形 3 |
|---|---|---|
![]() |
![]() |
![]() |
图中蓝色波形为滞后桥臂 SW,红色波形为超前桥臂 SW,黄色波形为滞后桥臂下管的栅极驱动信号。
Note
本项目属于升压电源,原边电流显著大于副边电流,因此能够在较宽的输入范围内实现 ZVS,而不是仅在重载条件下实现。
| 波形 1 | 波形 2 |
|---|---|
![]() |
![]() |
图中蓝色波形为滞后桥臂 SW,红色波形为超前桥臂 SW,黄色波形为电流互感器信号经整流采样后转换得到的电压信号。
| 波形 1 | 波形 2 |
|---|---|
![]() |
![]() |
图中蓝色波形为滞后桥臂 SW,红色波形为超前桥臂 SW,黄色波形为 AMC1301 采样信号经差分放大后反馈至原边的电压信号。
| 副边电压波形 1 | 副边电压波形 2 |
|---|---|
![]() |
![]() |
图中蓝色波形为滞后桥臂 SW,红色波形为超前桥臂 SW,黄色波形为 AMC1311B 采样信号经差分放大后反馈至原边的电压信号。
Note
由于电压采样分压器的回路面积较大,且采样回路位于变压器正下方,反馈信号受到了一定干扰。固件中因此加入了针对性的数字滤波算法,以改善采样效果。
启动波形在 3 kΩ 阻性负载下测得;150 V 输出时负载电流约为 50 mA,230 V 输出时负载电流约为 77 mA。测试用于观察闭环启动过程中的输出电压建立情况。
| 150 V / 50 mA | 230 V / 77 mA |
|---|---|
![]() |
![]() |
输出电压纹波同样在 3 kΩ 阻性负载下测得;下图分别对应 150 V / 50 mA 和 230 V / 77 mA 两组工况。
| 150 V / 50 mA | 230 V / 77 mA |
|---|---|
![]() |
![]() |
Note
由于没有高压探头,所以先在较低压范围测试。
测试使用两个 1100 µF 电容串联,等效容量约为 550 µF;上位机设置目标电压为 2000 V、限流为 200 mA。整个充电过程约耗时 5.6 s,电容电压基本呈线性上升,峰值输出功率约为 390 W。根据电容储能公式计算,平均充电功率约为 195 W。
测试将 5 kΩ 铝壳电阻连接至输出端,并将输出电压设定为 800 V。测试过程中输出电压保持稳定,用于验证恒压环路及持续输出能力。
拉弧测试用于直观展示高压输出效果。电弧测试具有极高危险性,必须采取可靠的绝缘、接地、限流、放电及外部急停措施,请勿模仿或在无人监护的情况下操作。






























