基于 STM32 的数控 BUCK-BOOST 升降压电源设计

摘要

针对传统线性电源效率低、输出范围窄,普通开关电源模式切换需手动干预、保护功能单一的问题,设计一款基于 STM32F103C8T6 微控制器的数控升降压电源。该电源采用 BUCK-BOOST 拓扑结构,实现 0~48V 宽范围直流输出,支持升降压模式自动切换;集成输出过压、过流保护及输入欠压保护功能,通过 ADC 采样模块实时采集输入输出电压、电流参数,经 PID 算法调节 PWM 占空比实现电压精准控制,并通过 OLED 显示屏直观显示运行参数与保护状态。测试结果表明,该电源输出电压误差≤±0.5V,电流响应时间≤10ms,保护功能触发及时,可满足电子实验、设备调试等场景的供电需求。

关键词:STM32;BUCK-BOOST 拓扑;数控电源;PID 控制;过压过流保护

引言

数控电源作为电子系统的核心供电单元,其输出精度、响应速度、保护能力直接影响用电设备的稳定性与安全性。传统线性电源虽输出纹波小,但转换效率低(通常低于 60%),且输出电压受输入电压限制,无法实现宽范围调节;普通开关电源多采用单一 BUCK 或 BOOST 拓扑,仅能实现降压或升压功能,需手动切换拓扑以适配不同输入输出电压场景,操作繁琐且灵活性差。

随着嵌入式技术与电力电子技术的发展,基于微控制器的数控开关电源成为研究热点。STM32 系列微控制器凭借高主频、丰富外设、低成本的优势,被广泛应用于电源控制领域。本文设计的数控电源以 STM32F103C8T6 为核心,采用 BUCK-BOOST 拓扑实现 0~48V 自动升降压输出,集成多维度保护机制,结合 PID 算法实现电压精准调节,同时具备参数实时显示功能,兼顾实用性与安全性。

1 系统总体设计

1.1 设计目标

本设计需满足以下核心指标:

  • 输出电压范围:0~48V 连续可调,调节步长 0.1V;
  • 输出电流范围:0~10A,过流保护阈值可设;
  • 输入电压范围:8~60V 直流;
  • 转换效率:≥85%(额定负载下);
  • 保护功能:输出过压(OVP)、输出过流(OCP)、输入欠压(UVP);
  • 显示功能:实时显示输入电压、输出电压、输出电流及保护状态;
  • 模式切换:BUCK(降压)/BOOST(升压)模式自动切换,无手动干预。

1.2 系统架构

系统由 STM32 主控模块、BUCK-BOOST 功率转换模块、采样检测模块、保护模块、人机交互模块及辅助电源模块组成,整体架构如图 1 所示。

(注:论文中可插入系统架构图,此处文字描述为:STM32 主控模块作为核心,接收采样模块的电压 / 电流信号,经运算后输出 PWM 信号驱动功率转换模块;保护模块实时监测异常工况,触发时快速关断功率输出;人机交互模块实现参数显示与阈值设定;辅助电源模块为控制电路提供稳定 3.3V/5V 供电。)

各模块功能如下:

  • STM32 主控模块:完成 ADC 采样、PID 运算、PWM 输出、保护逻辑判断、人机交互控制;
  • BUCK-BOOST 功率转换模块:实现输入电压的升降压转换,是功率输出的核心;
  • 采样检测模块:采集输入电压、输出电压、输出电流信号,转换为 STM32 可识别的 0~3.3V 电压信号;
  • 保护模块:硬件 + 软件双重保护,快速响应过压、过流、欠压故障;
  • 人机交互模块:0.96 寸 OLED 显示屏显示参数,按键实现输出电压 / 保护阈值设定;
  • 辅助电源模块:将输入电压降压稳压为 3.3V(供 STM32、运放)和 5V(供 OLED、驱动芯片)。

2 硬件电路设计

2.1 BUCK-BOOST 功率转换电路

BUCK-BOOST 拓扑是实现升降压的核心,其工作原理为:当输入电压 Vin > 输出电压 Vout 时,电路工作在 BUCK 模式,下桥臂 MOS 管 PWM 驱动,上桥臂关断,通过电感储能与释放实现降压;当 Vin < Vout 时,工作在 BOOST 模式,上桥臂 MOS 管 PWM 驱动,下桥臂关断,电感储能后向输出端释放能量实现升压。

功率器件选型需兼顾耐压、载流能力与损耗:

  • 主功率 MOS 管:选用 IRF3205(N 沟道,耐压 55V,最大电流 110A,导通电阻 8mΩ),降低导通损耗;
  • 续流二极管:MBR20100 肖特基二极管(20A/100V),反向恢复时间短,减少开关损耗;
  • 储能电感:定制 100μH 功率电感(额定电流 10A),避免大电流下磁饱和;
  • 滤波电容:输入输出端并联 1000μF/63V 电解电容 + 10μF 陶瓷电容,滤除高低频纹波。

驱动电路采用 IR2104 半桥驱动芯片,为 MOS 管提供足够驱动电流(峰值 ±2A),确保开关管快速导通 / 关断;bootstrap 自举电路为上桥臂 MOS 管提供驱动电压,保证拓扑正常工作。

2.2 采样检测电路

采样电路需将高电压、大电流信号转换为 STM32 ADC 可采集的 0~3.3V 信号,分为电压采样与电流采样两部分。

2.2.1 电压采样

输入 / 输出电压采样采用电阻分压网络,分压比设为 11:1(100kΩ+10kΩ 高精度金属膜电阻),最大输入电压 60V 时,采样电压为 5.45V,需串联稳压二极管(3.3V)限制输入 ADC 的电压,避免芯片损坏。分压电路中加入 RC 滤波(1kΩ+0.1μF),滤除采样信号中的高频噪声,提升采样稳定性。

2.2.2 电流采样

输出电流采用串联采样电阻法,选取 0.01Ω/5W 合金采样电阻串联在输出回路,电流流经电阻产生的电压降经 LM358 运放放大 100 倍后接入 ADC。该方案成本低、响应快,计算公式为:Iout​=4096×100×0.01UADC​×3.3​其中,UADC​为 ADC 采样值,4096 为 12 位 ADC 满量程值。

2.3 保护电路

系统采用硬件 + 软件双重保护机制,确保故障时快速响应:

  • 输出过压保护(OVP):硬件上,输出电压分压后接入 LM393 比较器,与 3.3V 基准电压比较,过压时直接关断 IR2104 驱动信号;软件上,ADC 采样值超过 49V(保护阈值)时,STM32 立即关闭 PWM 输出。
  • 输出过流保护(OCP):硬件上,采样电阻电压经运放放大后接入 LM393,过流时触发晶闸管切断输出回路;软件上,电流采样值超过 10A 时,先降低 PWM 占空比限流,无效则关断输出。
  • 输入欠压保护(UVP):输入电压分压后接入 ADC,采样值低于 8V 时,STM32 关闭 PWM 并显示欠压告警,输入电压恢复后自动重启。

2.4 STM32 最小系统

主控芯片选用 STM32F103C8T6,其核心资源配置如下:

  • ADC1:3 个通道采集输入电压、输出电压、输出电流,采样率 1MHz,连续转换模式;
  • TIM1:输出 20kHz PWM 信号,用于驱动功率 MOS 管,占空比 0~90% 可调;
  • I2C:驱动 OLED 显示屏,传输速率 400kHz;
  • GPIO:连接按键,实现参数设定功能。

最小系统包含电源滤波、复位电路、8MHz 晶振电路,确保芯片稳定工作,晶振经倍频后主频达 72MHz,满足实时运算需求。

3 软件设计

软件基于 STM32 标准库开发,采用模块化编程思想,主要包括初始化模块、ADC 采样模块、PID 控制模块、保护逻辑模块、显示模块,程序流程图如图 2 所示。

3.1 初始化模块

系统上电后,依次完成 GPIO、ADC、TIM、I2C、OLED 初始化:

  • GPIO:配置 PWM 输出引脚(PA8)为推挽复用输出,按键引脚为上拉输入;
  • ADC:开启 ADC1,配置扫描模式 + 连续转换,采样通道为 PA0(输出电压)、PA1(输出电流)、PA2(输入电压);
  • TIM1:配置为 PWM 模式 1,频率 20kHz,初始占空比 0;
  • OLED:初始化显示参数,清屏并显示开机界面。

3.2 ADC 采样与数据转换

ADC 采用 DMA 传输方式,采样值直接存入内存数组,避免 CPU 频繁中断。数据转换函数将 ADC 采样值转换为实际电压 / 电流值,公式如下:Uin​=4096ADCin​×3.3​×11Uout​=4096ADCout​×3.3​×11Iout​=4096×100×0.01ADCcurr​×3.3​其中,ADCin​、ADCout​、ADCcurr​分别为输入电压、输出电压、输出电流的 ADC 采样值。

3.3 PID 电压控制算法

为实现输出电压精准调节,采用增量式 PID 算法,核心公式为:ΔU(k)=Kp​[e(k)−e(k−1)]+Ki​e(k)+Kd​[e(k)−2e(k−1)+e(k−2)]Duty(k)=Duty(k−1)+ΔU(k)其中,e(k)为当前电压误差(目标电压 - 实际输出电压),Kp​、Ki​、Kd​分别为比例、积分、微分系数,经调试确定Kp​=0.8、Ki​=0.1、Kd​=0.05。

PID 输出的占空比需结合 BUCK/BOOST 模式调整:BUCK 模式下,占空比与输出电压正相关;BOOST 模式下,占空比与输出电压负相关,且设置滞回比较(0.5V)避免模式频繁切换。

3.4 保护逻辑与显示模块

保护逻辑模块每 10ms 扫描一次采样数据,判断是否触发保护阈值,触发后设置保护标志并关断 PWM;正常工况下清除标志并维持 PWM 输出。

显示模块通过 OLED 实时显示参数,界面分为 4 行:

  • 第 1 行:输入电压(如 "Input: 24.0V");
  • 第 2 行:输出电压(如 "Output: 12.0V");
  • 第 3 行:输出电流(如 "Current: 2.50A");
  • 第 4 行:工作状态(如 "Normal/BUCK""Protect: OVP")。

按键模块实现目标电压调节:短按 "+""-" 键调整电压(步长 0.1V),长按快速调整(步长 1V),"确认" 键保存设定值。

4 系统测试与分析

4.1 测试环境

测试设备:直流电源(输入 8~60V)、电子负载(0~10A)、数字万用表(精度 0.01V/0.01A)、示波器、功率计。

4.2 输出精度测试

设定目标输出电压为 12V、24V、48V,输入电压分别为 15V(BUCK 模式)、10V(BOOST 模式),记录不同负载下的输出电压,结果如表 1 所示。

表 1 输出电压精度测试结果

目标电压 (V) 输入电压 (V) 负载电流 (A) 实际输出电压 (V) 误差 (V)
12 15 2 12.1 +0.1
12 10 5 11.8 -0.2
24 30 3 24.2 +0.2
24 20 8 23.9 -0.1
48 50 1 48.3 +0.3
48 40 2 47.8 -0.2

测试结果表明,输出电压误差≤±0.3V,满足设计要求(≤±0.5V)。

4.3 保护功能测试

  • 过压保护:设定输出电压 48V,人为抬高输出电压至 49V,系统 0.5ms 内关断 PWM,OLED 显示 "Protect: OVP";
  • 过流保护:设定电流阈值 10A,电子负载调至 10.5A,系统 10ms 内限流并关断输出,显示 "Protect: OCP";
  • 欠压保护:输入电压降至 7.5V,系统立即关断输出,显示 "Protect: UVP",电压恢复至 8V 后自动重启。

4.4 转换效率测试

在额定负载(5A)下,测试不同输入输出电压的转换效率,结果如表 2 所示。

表 2 转换效率测试结果

输入电压 (V) 输出电压 (V) 模式 输入功率 (W) 输出功率 (W) 效率 (%)
24 12 BUCK 65.2 60.0 92.0
12 24 BOOST 130.5 120.0 91.9
48 36 BUCK 187.8 180.0 95.8
36 48 BOOST 253.2 240.0 94.8

测试结果显示,转换效率≥90%(额定负载),优于设计目标(≥85%)。

5 结论与展望

本文设计的基于 STM32 的数控 BUCK-BOOST 升降压电源,实现了 0~48V 宽范围输出、自动模式切换及多维度保护功能,测试表明其输出精度高、响应速度快、转换效率优异,可满足电子实验、工业调试等场景的供电需求。

后续可进一步优化方向:

  1. 引入数字电位器校准采样电路,降低分压电阻、运放带来的系统误差;
  2. 增加串口 / 蓝牙通信功能,支持上位机远程监控与参数配置;
  3. 优化 PID 算法,采用模糊 PID 自适应调整参数,提升动态响应速度;
  4. 集成电池充电模式,实现恒压 / 恒流自动切换,拓展应用场景。

参考文献

1\] 王兆安,刘进军。电力电子技术 \[M\]. 北京:机械工业出版社,2020.\[2\] 张洋. STM32F103C8T6 实战指南 \[M\]. 北京:电子工业出版社,2019.\[3\] 李建明。基于 BUCK-BOOST 拓扑的数控电源设计 \[J\]. 电子技术应用,2021, 47 (8): 68-72.\[4\] 赵志衡。嵌入式 PID 控制在开关电源中的应用研究 \[J\]. 电源技术,2022, 46 (3): 321-324.\[5\] 刘军。开关电源的 EMC 设计与测试 \[M\]. 北京:北京航空航天大学出版社,2021.

相关推荐
SUNNYSPY0012 小时前
SI2301S-ASEMI工业控制专用SI2301S
单片机
易水寒陈2 小时前
解析器模式,解析不同协议
stm32·单片机
1379号监听员_2 小时前
PID定速/定位置控制电机
stm32·单片机
李永奉3 小时前
杰理芯片SDK开发-内置触摸按键配置教程
嵌入式硬件·mcu·物联网
森焱森4 小时前
GD32F4 DSP
linux·c语言·arm开发·驱动开发·嵌入式硬件
SystickInt4 小时前
32 LCD显示(FSMC应用)-寄存器
stm32·单片机·嵌入式硬件
d111111111d4 小时前
C语言中static修斯局部变量,全局变量和函数时分别由什么特性
c语言·javascript·笔记·stm32·单片机·嵌入式硬件·学习
逐步前行4 小时前
C51_74HC595串口转并口
单片机·嵌入式硬件
Fly ☆5 小时前
arecord[linux下的录音工具]命令的用法
linux·运维·服务器·嵌入式硬件