基於STM32的同步整流升降壓數位電源開源專案

基于STM32G474的四开关Buck-Boost数字电源,支持Type-C接口PD诱骗输入和DC5.5接口输入,最大输入/输出48V10A。这是我的毕业设计,现已开源,包括原理图、PCB、程序源码、外壳3D模型等资料。

作品水平一般,轻喷。欢迎友好交流。

作品演示视频:https://www.bilibili.com/video/BV1Ui421y7ip/

基于CH32V307的智能电子负载开源,嵌入式设计大赛作品:https://blog.zeruns.com/archives/785.html

本项目在立创开源平台的开源链接:https://url.zeruns.com/noGf0

电子/单片机技术交流QQ群:2169025065

资料下载链接在文章末尾。

硬件电路使用立创EDA设计,确实很好用。

简介

本文设计了一款基于STM32的同步整流Buck-Boost数字电源。该电源电路由MOSFET驱动电路、4开关Buck-Boost电路、信号调理电路、PD快充协议电路、辅助电源电路、单片机控制电路等部分组成。

该电源可通过DC接口或Type-C接口供电,Type-C接口支持与充电器通过PD快充协议通信,自动申请获取最高20V工作电压。电源采用STM32G474单片机实时监测输入输出电压电流,通过PID控制算法调节输出PWM占空比,实现过压过流保护,还可采样主板温度实现过温保护。此外,可通过OLED屏查看电源实时参数,通过旋转编码器和按键设置输出电压电流,还可通过另一个Type-C接口与上位机通信,通过上位机软件查看电源实时参数和波形。

设计性能参数

电源的设计性能参数如下:

项目 参数指标
输入电压范围 12Vdc~48Vdc
输入电流范围 0~10A
最大输出功率 450W
输出电压范围 0.5Vdc~48Vdc
输出电流范围 0~10A
输出电压纹波 峰峰值 ≤ 200mV
开关频率 181.333kHz

实物图片

上位机软件使用VOFA+,可实时查看电源各项参数(输入电压电流、输出电压电流、主板温度、MCU温度、电源转换效率等)及波形变化,如下图所示。

系统框图

硬件电路设计

元件选型与计算

电感计算

在同步BUCK-BOOST电源中,电感计算需考虑BUCK模式与BOOST模式下的工作条件,以确保在两种模式下均能满足电路要求。通常,电感选择依据两种模式中对电感要求更高的模式进行。

当电源工作在BUCK降压模式时,假设最大输入电压为48V,最小输出电压为5V,计算最小PWM占空比:

$$\nD_{min} = \frac{V_{out\min}}{V{in\_max}} = \frac{5V}{48V} = 10.417\%\n$$

定义电感电流纹波(最大额定电流纹波的25%,设定最大额定电流为10A):

$$\n\Delta I_L = 25\% \cdot I_{out\_nom} = 25\% \times 10A = 2.5A\n$$

计算BUCK所需最小电感:

$$\nL_{minBuck} = \frac{V_{out\min} \cdot (1 - D{min})}{\Delta I_L \cdot f_{switch}}\n= \frac{5V}{2.5A \times 181333Hz} \times (1 - 10.417\%) \n\approx 9.88\mu H\n$$

当电源工作在BOOST升压模式时,取额定输入电压24V为计算点,计算PWM占空比:

$$\nD_{Bo} = 1 - \frac{V_{in\nom}}{V{out\_max}} = 1 - \frac{24V}{48V} = 50\%\n$$

在Boost模式下,取1A($I_{minb}$)时,Boost进入连续导通模式(CCM),计算电感:

$$\nL_{minBoost} = \frac{V_{out\max} \cdot D{Bo}(1-D_{Bo})^2}{2 \cdot I_{minb} \cdot f_{switch}} \n= \frac{48V \times 50\% \times (1 - 50\%)^2}{2 \times 1A \times 181333Hz} \n= 16.544\mu H\n$$

根据公式计算所得结果,确定满足预定纹波电流要求所需的最小电感值。为确保该条件得以满足,应选取电感值略高于计算值的电感器。同时,必须确保所选电感的饱和电流能够承载电路中最高的电流峰值。由于计算过程中未考虑效率因素,实际占空比与峰值电流可能低于理论计算值。因此,在进行选择时,应留有一定的安全裕量,以适应实际工况下可能出现的各种情况。

综合考虑上述因素,本设计选用22μH、1770贴片封装、饱和电流10A以上的电感作为BUCK-BOOST电路的电感元件。

电容计算

为获得良好的输出电压纹波,设计电压纹波为50mV。

$$\n\Delta V_{out} = 0.05V\n$$

上面所选电感为22μH,因此这里计算采用该电感值:

$$\nL_{BB}=22\mu H\n$$

分别计算在BUCK降压模式和BOOST升压模式工作时所需的最小电容$C_{minBuck}$和$C_{minBoost}$:

$$\nC_{minBuck}=\frac{V_{out\min}\cdot(1-\frac{V{out\min}}{V{in\max}})}{8\cdot L{BB}\cdot \Delta V_{out}\cdot {f_{switch}}^2}=15.48\mu F\n$$

$$\nC_{minBoost}=\frac{I_{out\_nom}\cdot(1-\frac{Vin\_min}{Vout\_max})}{\Delta Vout\cdot fswitch}=413.6\mu F\n$$

设计需留有一定裕量,且为获得更低输出纹波,故选用低ESR的220μF固态电容与470μF普通电解电容,共690μF。

MOS选型与计算

在额定输入输出电压范围内,计算输入MOS电流有效值:

$$\ni_{mos\_rms}=7.098A\n$$

MOSFET选型时,MOS管的额定电流值$I_D$应大于流过MOS管最大电流的2倍(防止故障或短路时电流冲击过大造成损坏)。

$$\n2×i_{mos\_rms}=14.196A\n$$

MOSFET选型时的额定耐压值$V_{DS}$应大于最大输入电压的1.5倍(防止尖峰击穿)。

$$\n1.5×Vin\max=72V\n$$参考前述计算,对于常规应用场景,可选择额定电流超过15安培(A)、耐压等级为100伏(V)的MOSFET。下管MOSFET的选型与上管一致。为降低导通与开关过程中的能量损耗,应优先选用导通电阻($R{DS(on)}$)低、输出电容(Coss)小的MOSFET。

本设计选定的MOSFET型号为CJAC80SN10,由江苏长晶科技有限公司生产的国产MOSFET,其漏源耐压($V_{DS}$)为100V,最大漏源电流($I_D$)为80A,导通电阻($R_{DS(on)}$)仅6.2mΩ,有利于降低器件导通时的功率损耗;同时,该器件的输出电容Coss典型值为420pF,有利于降低开关瞬态的动态损耗。因此,CJAC80SN10不仅满足项目所需的电气特性,还能有效降低能量损耗,提高系统整体效率。

电源板电路设计

主功率电路

下图所示为同步BUCK-BOOST电源的主功率电路图,左侧为输入端。同步BUCK降压电路由MOS管Q2、Q4与电感L1构成;同步BOOST升压电路由MOS管Q3、Q5与电感L1构成。每只MOS管栅源之间并联10kΩ电阻,确保MOS栅极不浮空,防止误导通。

主功率电路整体呈左右对称结构,输入、输出端均各放置470μF/63V铝电解电容与220μF/63V固态铝电解电容各1颗,另加2颗10μF/50V小贴片MLCC,用于端口高频噪声干扰滤波。R9、R10为输入、输出端口假负载,可在断电时快速泄放回路残余能量。R13、R14为5mΩ高精度采样电阻,后级接差分放大电路,对输入、输出电流信号进行放大。CNT1、CNT2为输出端子。L1、L2分别为贴片1770封装与穿孔磁环电感封装,仅需择一焊接,均引出,便于测试不同电感的效果与性能。

电源输入与快充协议电路

下图为电源输入接口与PD快充协议通信电路图。

电源输入采用DC5.5*2.5mm母座与Type-C母座双接口。Type-C接口支持BC1.2、PD3.0/2.0等多种快充协议,所用快充协议芯片型号为CH224K,可与快充充电器通信,使充电器最高输出20V电压,支持最大功率100W。

二极管D1、D3、D4用于防止DC接口电压反灌至Type-C接口,设计不允许两接口同时接入。D5为反接保护二极管。FH1为电源输入保险丝座,内插12A保险丝。

驱动电路

在同步BUCK-BOOST电源设计中,BUCK与BOOST电路均包含高侧N-MOSFET。传统高侧N-MOSFET驱动通常采用变压器隔离驱动方式,但会增加电路复杂度并扩大板尺寸。

本设计选用两颗内置自举电路功能的MOS管驱动芯片EG3112,分别驱动BUCK与BOOST电路的MOS管。EG3112为非隔离互补双通道驱动芯片,2A输出驱动电流能力确保MOSFET快速导通;芯片内置死区时间控制功能,防止输出驱动信号直通,提高系统稳定性。具体电路如下图所示。

以BOOST升压电路MOS管驱动为例,PWM2L、PWM2H为STM32G474单片机输出的PWM信号,分别送入EG3112驱动芯片的LIN、HIN引脚。LO为下管驱动信号输出,串联10Ω驱动电阻;HO为上管驱动信号输出,同样串联10Ω驱动电阻。D7为上管驱动自举二极管,D9、D11用于快速释放栅极电荷,加快MOS管关断速度,C14为自举电容。

驱动电阻的作用在于MOSFET开关过程中,驱动信号可能在PCB走线、分布电容、电感等元件上产生反射与振荡,串联电阻可抑制此类振荡,提高系统稳定性与可靠性。

辅助电源

下图为电源板辅助电源电路原理图。

第一级12V输出辅助电源电路采用集成高侧MOSFET的BUCK型电源芯片TPS54360B设计。根据芯片数据手册,RT脚接下拉电阻可设定开关频率,此处选用110kΩ电阻,对应开关频率876.5kHz,较高频率可减小电感体积。按此频率计算,电感值需大于9.75μH,此处选用10μH电感,续流二极管选用SS310。C26、C27为输入滤波电容;反馈分压电阻R19、R25将电压分压后输出0.8V基准电压至芯片FB脚,确保输出电压12V。C18、C19为第一级12V输出辅助电源的滤波电容。第一级12V输出主要用于第二级6V降压电路输入,以及MOSFET驱动电路与散热风扇供电。

第二级6V输出辅助电源电路采用集成MOSFET的同步整流BUCK型电源芯片SY8205设计。根据芯片数据手册,芯片开关频率固定为500kHz,辅助电源BUCK电路电感选用10μH。C21、C22为输入滤波电容;反馈分压电阻R23、R26将电压分压后输出0.6V基准电压至芯片FB脚,确保输出电压6V。C24、C25为第二级6V输出辅助电源的滤波电容。若直接用线性稳压器将12V降至5V,损耗较大,故先用开关电源降至接近5V,再用线性稳压器降至目标电压,可兼顾高效率与低输出纹波。

第二级输出的6V电压经线性稳压器芯片AMS1117-5降压至5V,作为第三级辅助电源,并采用电压基准芯片REF3033,为信号调理、OLED显示、USB通信等功能电路供电。

5V直流电源再经线性稳压器芯片AMS1117-3.3降压至3.3V,作为第四级辅助电源,为MCU、蜂鸣器、Flash芯片等电路供电。电压基准芯片 REF3033 为 MCU 的 VREF 引脚提供 3.3 V 基准电压,作为 MCU 内置 ADC 的参考电压,以提高 ADC 采样精度。

信号调理电路

如上图所示,本设计的输入输出电压采样及信号调理电路采用差分放大技术。差分放大拓扑可有效降低开关电源高频噪声对信号调理电路的干扰,提高信号稳定性与可靠性。该电路选用低零漂运算放大器 GS8558-SR,以提升转换精度。GS8558-SR 运放具有出色的直流精度和低偏置电流特性,这对整个信号调理电路的性能提升至关重要。

差分放大电路的反馈电阻:

R_{38}=4.7kΩ
R_{36}=75kΩ

计算差分放大增益:

K_V=\frac{R_{38}}{R_{36}}=0.062667

MCU 的 ADC 最大采样电压为电压基准芯片输出的 3.3 V,因此可计算最大可采样输入输出电压:

V_{max}=\frac{3.3V}{K_V}=52.66V

为更好地抑制开关电源高频噪声对差分放大电路的干扰,在运放电源引脚增加去耦电容 C40、C41 进行滤波。电容选用 MLCC(多层陶瓷电容),因其低 ESR 与 ESL,在高频噪声滤波方面效果更佳。同时在输出端增加由电阻 R35 与电容 C39 组成的 RC 低通滤波电路,滤除高频噪声。

如上图所示,输入输出电流调理电路同样采用差分放大。输出电流采样电阻:

R_{14}=5mΩ

差分放大电路反馈电阻:

R_{48}=6.2kΩ
R_{46}=100Ω

计算差分放大增益:

K_I=\frac{R_{48}}{R_{46}}=62

即每 1 A 电流输出 310 mV 电压。

MCU 的 ADC 最大采样电压为电压基准芯片输出的 3.3 V,因此可计算最大可采样输入输出电流:

I_{max}=\frac{3.3V}{K_I \times R_{14}}=10.65A

MCU 控制电路

本项目数字电源设计选用 STM32G474RET6 芯片作为控制器,其显著特点是外围电路简单、控制方式多样、扩展能力强。为获得精确时钟信号,控制器采用外部晶振 X1,为 25 MHz 石英晶体。此外,电路包含多个滤波电容:C45、C51、C56、C46、C52,分别用于 MCU 不同数字电源引脚,确保电源稳定并降低噪声干扰。电阻 R49 与电容 C49 构成上电复位电路,SW1 为 MCU 复位按键。U11 为 USB 转串口芯片,型号 CH340C,连接第二路 Type-C 接口,串口连接至 MCU 的 USART1 接口。U10 为 Flash 存储芯片,型号 W25Q64,用于存储参数设置等信息,连接至 MCU 的 SPI3 接口。Q6 为蜂鸣器驱动 MOS 管,用于控制蜂鸣器,MOS 管栅极连接 MCU 的 PB5 口。H1 端子为 SWD 编程口。H2、H4 为 PH2.0 接线端子,用于连接控制面板。端子预留 USART2 接口,可方便地更换为串口屏控制面板方案,也可增加 ESP32 实现联网、无线控制等功能。D13 为 5 V 反接保护二极管。

散热风扇驱动与主板温度采样电路

主板温度采样电路与散热风扇驱动电路原理图如下图所示。电源主板温度采样原理为:NTC 热敏电阻 R2 与下拉电阻 R4 串联分压,输出至 MCU 的 ADC 口采样。所用 NTC 热敏电阻阻值 10 kΩ,B 值 3950 K。

散热风扇采用型号 AO3400 的 N-MOS 管驱动。风扇接口反并二极管 D2,防止电机断电时产生的反电动势损坏器件。电机断电后,由于转动惯性,转子不会立即停止,而是继续旋转并产生电动势,该电动势可能损坏电路中的晶体管或集成电路,特别是当电机通过半导体开关(如 MOSFET)连接时。

控制面板电路设计

控制面板电路原理图如下图所示。SW1 为旋转编码器,用于参数设置等。SW2、SW3 为按键;SW2 用于切换设置项,SW3 用于控制电源输出开关。LED1 为系统运行状态指示灯,正常工作时以 500 ms 间隔闪烁。LED2 为输出状态指示灯,输出开启时点亮,关闭时熄灭。OLED1 为 OLED 屏,用于显示电源参数与状态。

PCB 截图

电源板顶层

电源板 GND 层

电源板内层 2

电源板底层

面板顶层

面板底层

用户手册

可通过按键与旋转编码器设置输出电压、电流值。如下图所示,高亮值为当前待设置位,旋转编码器即可增减数值;按下编码器可切换至下一位设置,通过 SW2 按键可切换待设置项。设置数据将自动保存至 Flash 存储芯片,下次上电时从存储芯片读取。

SW3 按键用于开启/关闭电源输出。

可切换至数据显示页面,查看电源当前输入输出电压、电流,以及主板温度、MCU 温度等信息,如下图所示。

可切换至设置页面,设置过温/过流/过压保护阈值,如下图所示。设置数据将自动保存至 Flash 存储芯片,下次上电时从存储芯片读取。

纹波测试

使用电子负载与示波器测试电源输出性能及输出纹波,如下图所示。输入 36 V、输出 12 V/2 A 时,测得峰峰值纹波约 42 mV,如下图所示。

转换效率测试功率转换效率在20V输入和12V10A输出测试时为92%,如下图所示。

下表展示了在不同输入和输出电压下的转换效率,最高效率为94.3%。

输入电压 (V) 输入电流 (A) 输入功率 (W) 输出电压 (V) 输出电流 (A) 输出功率 (W) 转换效率 (%)
20.003 4.035 80.712 15.010 5.000 75.050 92.985
47.999 5.335 256.075 24.040 9.900 237.996 92.940
48.000 7.875 378.000 36.020 9.900 356.598 94.338
48.000 9.860 473.280 45.030 9.900 445.797 94.193
23.998 8.835 212.022 48.070 4.000 192.280 90.689
23.998 9.830 235.900 35.998 6.001 216.024 91.574
12.099 9.166 110.899 24.070 4.000 96.280 86.817
20.008 2.645 52.921 4.970 9.000 44.730 84.522
20.008 10.550 211.084 24.030 8.000 192.240 91.073
36.000 6.418 231.048 24.010 9.000 216.090 93.526
36.000 10.540 379.440 35.950 9.800 352.310 92.850

MOSFET栅极波形

在输入20V、输出24V时测试各MOS的栅极波形。

BUCK电路上下管相对于地的电压波形:

BOOST电路上下管相对于地的电压波形:

发热测试

空载条件下的热成像图:

输出10A电流10分钟后的热成像图,MOS管温度约为100度:

优利德UTi261M热成像仪开箱评测:https://blog.zeruns.com/archives/798.html

元器件购买链接

本项目使用的大部分元器件购买链接如下:- 0805 电阻和电容样品册:https://s.click.taobao.com/begdskt

建议在LCSC商城购买元器件:https://activity.szlcsc.com/invite/D03E5B9CEAAE70A4.html

点击LCSC开源链接BOM列表中的“立即在LCSC商城购买”即可一键导入所需元器件到购物车。

资料下载链接

以下链接包含LCSC EDA工程、原理图PDF文件、各芯片数据手册、源码工程压缩包、部分参考程序代码等资料。

123Pan不限速下载链接: https://www.123pan.com/ps/2Y9Djv-8yevH.html

百度网盘下载链接:https://url.zeruns.com/MW2d1

项目程序Gitee开源链接: https://gitee.com/zeruns/STM32-Buck-Boost

项目程序GitHub开源链接:https://github.com/zeruns/Synchronous-Rectification-Buck-Boost-Digital-Power-Supply-Based-on-STM32

请给个Star和点赞。

已知问题

  1. 辅助电源的SY8205芯片在轻载时会进入PFM模式,频率较低,会有轻微响声。
  2. 恒流模式的PID控制程序写得不好,恒流仅在纯阻性负载下稳定。(恒压模式无问题)

推荐其他开源项目

推荐阅读- 性价比高的便宜VPS/云服务器推荐: https://blog.zeruns.com/archives/383.html