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

基於STM32G474的四開關升降壓數位電源,支援Type-C介面PD誘騙輸入與DC5.5介面輸入,最大輸入/輸出48V10A。這是我的畢業設計,現已開源,包含原理圖、PCB、程式原始碼、外殼3D圖等資料。

作品一般,輕噴,歡迎友善交流。

作品展示影片:https://www.bilibili.com/video/BV1Ui421y7ip/

基於CH32V307的智慧電子負載開源,嵌入式競賽作品:https://blog.zeruns.com/archives/785.html

本專案在LCSC開源平台開源連結:https://url.zeruns.com/noGf0

電子/單片機技術交流QQ群:2169025065

資料下載連結在文章末尾。

硬體電路使用LCSC EDA設計,這個軟體真的很好用。

簡介

本文設計了一款基於STM32的同步整流升降壓數位電源。電源電路由MOSFET驅動電路、4開關升降壓電路、訊號調理電路、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管最大電流的兩倍(防止故障或短路時電流衝擊過大造成損壞)。

$$\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}$)為 100 V,最大漏源電流($I_D$)為 80 A,導通電阻($R_{DS(on)}$)僅 6.2 mΩ,有利於降低元件導通損耗;同時該元件輸出電容 Coss 典型值為 420 pF,可降低開關轉換時的動態損耗。因此 CJAC80SN10 不僅滿足專案所需的電氣特性,也能有效降低能量損耗,提升系統整體效率。

電源板電路設計

主功率電路

下圖為同步 BUCK-BOOST 電源的主功率電路圖,左側為輸入端。同步 BUCK 降壓電路由 MOS 管 Q2、Q4 與電感 L1 組成;同步 BOOST 升壓電路由 MOS 管 Q3、Q5 與電感 L1 組成。每顆 MOS 管的閘極與源極之間並聯 10 kΩ 電阻,確保閘極不浮空,防止誤導通。

主功率電路整體呈左右對稱結構,輸入與輸出端均配置 470 μF/63 V 鋁電解電容與 220 μF/63 V 固態鋁電解電容各一顆,另加 2 顆 10 μF/50 V 小型貼片 MLCC(多層陶瓷電容)濾除埠口高頻雜訊。R9、R10 為輸入與輸出埠的假負載,可在斷電時快速釋放殘餘能量;R13、R14 為 5 mΩ 高精度取樣電阻,後級接差動放大電路放大輸入/輸出電流訊號。CNT1、CNT2 為輸出端子。L1、L2 分別為 1770 封裝貼片電感與穿孔磁環電感,僅需擇一焊接,便於測試不同電感的效果與性能。

電源輸入與快充協議電路

下圖為電源輸入介面與 PD 快充協議通訊電路圖。

電源輸入採用 DC5.5*2.5 mm 母座與 Type-C 母座雙介面。Type-C 介面支援 BC1.2、PD3.0/2.0 等多種快充協議,快充協議晶片型號為 CH224K,可與快充充電器通訊,使充電器最高輸出 20 V,支援最大 100 W 功率。

二極體 D1、D3、D4 用於防止 DC 介面電壓倒灌至 Type-C 介面,設計不允許兩介面同時接入。D5 為反接保護二極體。FH1 為電源輸入保險絲座,內置 12 A 保險絲。

驅動電路

同步 BUCK-BOOST 電源中,BUCK 與 BOOST 電路均包含高側 N-MOSFET。傳統上高側 N-MOSFET 驅動常採用變壓器隔離方式,但會增加電路複雜度與板面積。

本設計選用兩顆內建自舉電路功能的 MOS 管驅動晶片 EG3112,分別驅動 BUCK 與 BOOST 電路的 MOS 管。EG3112 為非隔離互補雙通道驅動晶片,2 A 輸出驅動電流可確保 MOSFET 快速導通,內建死區時間控制防止輸出直通,提升系統穩定性。具體電路如下圖所示。

以 BOOST 升壓電路 MOS 管驅動為例,PWM2L、PWM2H 為 STM32G474 微控制器輸出的 PWM 訊號,分別送入 EG3112 的 LIN、HIN 腳。LO 為下管驅動輸出,串聯 10 Ω 驅動電阻;HO 為上管驅動輸出,同樣串聯 10 Ω。D7 為上管自舉二極體,D9、D11 用於快速釋放閘極電荷、加快 MOS 管關斷,C14 為自舉電容。

驅動電阻的作用在於:MOSFET 開關過程中,驅動訊號可能在 PCB 走線、分布電容與電感上產生反射與振盪,串聯電阻可抑制振盪,提升系統穩定性與可靠性。

輔助電源

下圖為電源板輔助電源電路原理圖。

第一級 12 V 輸出輔助電源採用整合高側 MOSFET 的 BUCK 型電源晶片 TPS54360B。依據晶片手冊,RT 腳接下拉電阻可設定開關頻率,此處選用 110 kΩ,對應 876.5 kHz。較高頻率可選用更小電感以節省空間,依此頻率計算電感值需大於 9.75 μH,故選用 10 μH 電感,續流二極體選 SS310。C26、C27 為輸入濾波電容;回授分壓電阻 R19、R25 將輸出分壓至 0.8 V 送至 FB 腳,確保輸出 12 V。C18、C19 為第一級 12 V 輸出濾波電容,該 12 V 主要供第二級 6 V 降壓電路、MOSFET 驅動電路及散熱風扇使用。

第二級 6 V 輸出輔助電源採用整合 MOSFET 的同步整流 BUCK 型電源晶片 SY8205,晶片固定開關頻率 500 kHz,電感同樣選用 10 μH。C21、C22 為輸入濾波電容;回授分壓電阻 R23、R26 將輸出分壓至 0.6 V 送至 FB 腳,確保輸出 6 V。C24、C25 為第二級 6 V 輸出濾波電容。若直接用線性穩壓器將 12 V 降至 5 V 損耗較大,故先以開關電源降至接近 5 V,再用線性穩壓器降至目標電壓,兼顧高效率與低輸出漣波。

第二級輸出的 6 V 經線性穩壓晶片 AMS1117-5 降壓至 5 V,作為第三級輔助電源,並以電壓基準晶片 REF3033 供應訊號調理、OLED 顯示、USB 通訊等功能電路。

5 V 直流電再經線性穩壓晶片 AMS1117-3.3 降壓至 3.3 V,作為第四級輔助電源,供 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,以防止馬達產生的反電動勢(back EMF)造成損壞。當馬達斷電時,由於轉動慣性,馬達轉子不會立即停止旋轉,而會繼續旋轉並產生電動勢,此電動勢可能損壞電路中的電晶體或積體電路,特別是當馬達透過半導體開關(如 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 度:

UNI-T UTi261M 熱成像儀開箱評測:https://blog.zeruns.com/archives/798.html

元件購買連結

本專案使用的大部分元件購買連結如下:- 0805 電阻與電容樣本書:https://s.click.taobao.com/begdskt

建議在 立創商城 購買元件:https://activity.szlcsc.com/invite/D03E5B9CEAAE70A4.html

在 LCSC 開源連結的 BOM 清單中點選「立即在 LCSC 商城購買」,即可一鍵將所需元件匯入購物車。

資料下載連結

以下連結包含 LCSC EDA 專案、原理圖 PDF 檔案、各晶片資料手冊、原始碼專案壓縮包以及部分參考程式碼等資料。

123 雲盤不限速下載連結: 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