STM32ベースの同期整流降圧昇圧デジタル電源のオープンソース

STM32G474ベースの4スイッチBuck-Boostデジタル電源、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ベースの同期整流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$$\n\nインダクタ電流リップルを定義します(最大定格電流リップルの25%、最大定格電流を10Aに設定):

$$\n\Delta I_L = 25\% \cdot I_{out\_nom} = 25\% \times 10A = 2.5A\n$$\n\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$$\n

電源がBOOST昇圧モードで動作する場合、定格入力電圧24Vを計算ポイントとして取り、PWMデューティ比を計算します:

$$\nD_{Bo} = 1 - \frac{V_{in\nom}}{V{out\_max}} = 1 - \frac{24V}{48V} = 50\%\n$$\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$$\n

式から得られた計算結果に基づいて、所定のリップル電流要件を満たすために必要な最小インダクタンス値が決定されます。この条件を満たすために、計算値よりわずかに高いインダクタンス値を持つインダクタを選択する必要があります。同時に、選択されたインダクタの飽和電流が、回路内の最高電流ピークを耐えられることを確認する必要があります。計算プロセスでは効率要因が考慮されていないため、実際のデューティ比とピーク電流は理論計算値より低くなる可能性があります。そのため、選択を行う際には、実際の動作条件下でのさまざまな状況に適応するため、一定の安全マージンを考慮する必要があります。

上記の要因を総合的に考慮して、この設計では、1770 SMDパッケージで飽和電流10A以上の22μHインダクタをBUCK-BOOST回路のインダクタ部品として選択しています。

コンデンサ計算

良好な出力電圧リップルを得るために、設計された電圧リップルは50mVです。

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

上記で選択されたインダクタは22μHであるため、ここではこのインダクタンス値を使用して計算します:

$$\nL_{BB}=22\mu H\n$$\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$$\n

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

設計ではマージンを残し、より低い出力リップルのために、低ESRの220μF固体コンデンサと470μFの通常の電解コンデンサを選択し、合計690μFとしています。

MOS選択と計算

定格入出力電圧範囲内で、入力MOS電流の実効値を計算します:

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

MOSFET選択では、MOSトランジスタの定格電流値$I_D$は、MOSトランジスタを流れる最大電流の2倍以上である必要があります(故障または短絡条件下での過大な電流衝撃による損傷を防ぐため)。

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

MOSFET選択のための定格電圧耐圧値$V_{DS}$は、最大入力電圧の1.5倍以上である必要があります(スパイクブレークダウンを防ぐため)。

$$\n1.5×Vin\max=72V\n$$\n前回の計算を参考に、従来のアプリケーションシーンにおいては、定格電流15アンペア(A)を超え、耐圧100ボルト(V)のMOSFETを選択できる。下側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電源のメインパワー回路図である。左側が入力である。MOS管Q2、Q4およびインダクタL1で構成される同期BUCK降圧回路と、MOS管Q3、Q5およびインダクタL1で構成される同期BOOST昇圧回路がある。各MOS管のゲート・ソース間には10kΩの抵抗を並列に接続し、MOSのゲートがフローティングにならないようにし、誤導通を防止している。

メインパワー回路は全体として左右対称構造である。入力端および出力端の両方に、470μF/63Vのアルミ電解コンデンサと220μF/63Vの固体アルミ電解コンデンサを配置している。そのほか、10μF/50Vのパラメータを持つ小型SMD MLCC(積層セラミックコンデンサ)を2個配置し、ポートにおける高周波ノイズ干渉をフィルタリングしている。R9およびR10は入出力ポートのダミーロードであり、電源が遮断された際に回路内の残留エネルギーを迅速に消散させる。R13およびR14は高精度5mΩ抵抗であり、電流サンプリング用であり、後段は差動増幅回路に接続され、入出力電流信号を増幅する。CNT1およびCNT2は出力端子である。L1およびL2はそれぞれSMD 1770パッケージおよびスルーホール磁気リングインダクタパッケージであり、どちらか一方のみはんだ付けする。両方を描画しているのは、異なるインダクタの効果および性能をテストしやすくするためである。

電源入力および急速充電プロトコル回路

下図は、電源入力インターフェースおよびPD急速充電プロトコル通信の回路図である。

電源入力は、DC5.5*2.5mmメスポートとType-Cメスポートの2つのインターフェースを採用している。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の駆動には通常トランス絶縁駆動方式が採用されるが、この方式は回路の複雑さを増し、基板サイズを大きくする。

本設計では、ブートストラップ回路機能を内蔵した2つの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トレース、分布容量、インダクタンスなどの要素で反射および振動を引き起こす可能性があることである。直列抵抗はそのような振動を軽減し、システムの安定性および信頼性を向上させることができる。

補助電源

下図は、電源基板の補助電源回路の回路図である。

第1段12V出力補助電源回路は、ハイサイドMOSFETを統合したBUCK型電源チップTPS54360Bを使用して設計されている。チップデータシートによれば、RTピンにプルダウン抵抗を接続することでスイッチング周波数を設定できる。ここでは110kΩ抵抗を選択しており、これに対応するスイッチング周波数は876.5kHzである。より高いスイッチング周波数により、より小型のインダクタを選択してスペースを節約できる。この周波数に基づいて計算されたインダクタンス値は9.75μHより大きくする必要がある。ここでは10μHのインダクタを選択し、フリホイールダイオードにはSS310を選択している。C26およびC27は入力フィルタコンデンサである。フィードバック電圧分圧抵抗R19およびR25は、電圧を分圧して0.8Vの基準電圧をチップのFBピンに出力し、出力電圧が12Vになるようにする。C18およびC19は第1段12V出力補助電源のフィルタコンデンサである。第1段12V出力は、主に第2段6V降圧回路の入力、ならびにMOSFET駆動回路および冷却ファンに使用される。

第2段6V出力補助電源回路は、MOSFETを統合した同期整流BUCK型電源チップSY8205を使用して設計されている。チップデータシートによれば、チップのスイッチング周波数は500kHzに固定されており、補助電源BUCK回路のインダクタは10μHとして選択されている。C21およびC22は入力フィルタコンデンサである。フィードバック電圧分圧抵抗R23およびR26は、電圧を分圧して0.6Vの基準電圧をチップのFBピンに出力し、出力電圧が6Vになるようにする。C24およびC25は第2段6V出力補助電源のフィルタコンデンサである。12Vから5Vにリニア電圧レギュレータで直接降圧すると損失が比較的大きくなるため、まずスイッチング電源を使用して5Vに近い電圧に降圧し、その後リニア電圧レギュレータで目標電圧に降圧する。この方法により、より高い効率とより低い出力リップルを確保できる。

第2段で出力される6V電圧は、リニア電圧レギュレータチップAMS1117-5によって5Vに降圧され、第3段補助電源として機能し、電圧基準チップREF3033は信号調整、OLEDディスプレイ、USB通信などの機能回路に使用される。

5V DC電源は、リニア電圧レギュレータチップAMS1117-3.3によって3.3Vに降圧され、第4段補助電源として機能し、MCU、ブザー、Flashチップなどの回路に使用される。電圧リファレンスIC「REF3033」は3.3Vの基準電圧をMCUのVREF端子に出力し、MCU内蔵ADCの基準電圧として動作し、ADCのサンプリング精度を向上させます。

信号調整回路

上図のように、本設計の入出力電圧サンプリング・信号調整回路は差動増幅技術を採用しています。差動増幅トポロジは、スイッチング電源の高周波ノイズが信号調整回路に与える干渉を効果的に低減し、信号の安定性と信頼性を向上させます。本回路では、変換精度を高めるため、低オフセット演算増幅器「GS8558-SR」を選択しています。GS8558-SRオペアンプは優れたDC精度と低バイアス電流特性を持ち、信号調整回路全体の性能向上に重要です。

差動増幅回路のフィードバック抵抗:

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

差動増幅ゲインを計算:

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

MCUのADC最大サンプリング電圧は電圧リファレンスICが出力する3.3Vであるため、サンプリング可能な最大入出力電圧は:

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

つまり、1Aの電流につき310mVの電圧を出力します。

MCUのADC最大サンプリング電圧は電圧リファレンスICが出力する3.3Vであるため、サンプリング可能な最大入出力電流は:

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

MCU制御回路

本プロジェクトのデジタル電源設計では、コントローラとしてSTM32G474RET6チップを選択しています。周辺回路が簡単、制御方式が多様、拡張性に優れる特徴があります。正確なクロック信号を得るため、外部水晶発振器X1(25MHz石英水晶発振器)を採用しています。また、回路にはC45・C51・C56・C46・C52などの複数のフィルタコンデンサが含まれ、MCUの各デジタル電源ピンに使用され、電源の安定性を保ちノイズ干渉を低減します。抵抗R49とコンデンサC49は電源投入リセット回路を構成し、SW1はMCUリセットボタンです。U11はCH340CモデルのUSB-シリアル変換ICで、2番目のType-Cインターフェースに接続され、シリアルポートはMCUのUSART1インターフェースに接続されています。U10はW25Q64モデルのフラッシュメモリICで、パラメータ設定などの情報を保存し、MCUのSPI3インターフェースに接続されています。Q6はブザーの駆動用MOSFETで、MOSFETのゲートはMCUのPB5ポートに接続されています。H1端子はSWDプログラミングポートです。H2・H4はコントロールパネル接続用のPH2.0端子台です。端子台はUSART2インターフェースを予備しており、シリアル画面でコントロールパネル方式を簡単に置き換えたり、ESP32を追加してネットワークや無線制御などの機能を増やせたりします。D13は5V逆接保護ダイオードです。

冷却ファンドライブおよび基板温度サンプリング回路

基板温度サンプリング回路と冷却ファンドライブ回路の回路図を下図に示します。電源の基板温度サンプリングの原理は、NTCサーミスタR2とプルダウン抵抗R4を直列に接続して分圧し、MCUのADCポートに出力してサンプリングすることです。使用するNTCサーミスタは抵抗値10kΩ、B値3950Kです。

冷却ファンはAO3400モデルのNチャンネルMOSFETで駆動します。冷却ファンインターフェースに逆並列のダイオードD2を接続し、モーター発生の逆起電力(バックEMF)による損傷を防ぎます。モーター電源OFF時、回転慣性によりローターは直ちに停止せず回転を継続し起電力を発生させます。この起電力は、特にMOSFETなどの半導体スイッチでモーターが接続されている場合、回路内のトランジスタや集積回路を損傷する可能性があります。

コントロールパネル回路設計

コントロールパネル回路の回路図を下図に示します。SW1はロータリエンコーダで、パラメータ設定などに使用します。SW2・SW3はボタンです。SW2は設定項目の切り替え、SW3は電源出力のON/OFFに使用します。LED1はシステム動作ステータスインジケータで、正常動作時500mS間隔で点滅します。LED2は出力ステータスインジケータで、出力ON時点灯、OFF時消灯します。OLED1はOLED画面で、電源パラメータやステータスを表示します。

PCBスクリーンショット

電源基板トップ層

電源基板GND層

電源基板内層2

電源基板ボトム層

パネルトップ層

パネルボトム層

ユーザーマニュアル

出力電圧・電流値はボタンとロータリエンコーダで設定できます。下図のように、ハイライト表示されている値が現在設定中のビットで、エンコーダを回して増減できます。エンコーダを押すと次のビットの設定に切り替わり、SW2ボタンで設定項目を切り替えられます。設定データは自動的にフラッシュメモリICに保存され、次回電源投入時にメモリICから読み出されます。

SW3ボタンで電源出力のON/OFFを行います。

データ表示ページに切り替えることで、電源の現在の入出力電圧・電流や基板温度・MCU温度などを確認できます(下図参照)。

設定ページに切り替えることで、過熱/過電流/過電圧保護の閾値を設定できます(下図参照)。設定データは自動的にフラッシュメモリICに保存され、次回電源投入時にメモリICから読み出されます。

リップルテスト

電子負荷とオシロスコープを使用して電源出力性能と出力リップルをテストしました(下図参照)。36V入力、12V2A出力時、ピークツーピークリップルは約42mVでした(下図参照)。

変換効率テスト電力変換効率は、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

部品の購入はLCSCモールで行うことをおすすめします: https://activity.szlcsc.com/invite/D03E5B9CEAAE70A4.html

LCSCのオープンソースリンクのBOMリストにある「LCSCモールで今すぐ購入」をクリックすると、必要な部品をワンクリックで買い物カートにインポートできます。

データダウンロードリンク

以下のリンクには、LCSC EDAプロジェクト、回路図PDFファイル、各種チップのデータシート、ソースコードプロジェクトの圧縮パッケージ、および一部の参照プログラムコードなどの資料が含まれています。

123Pan無制限速度ダウンロードリンク: https://www.123pan.com/ps/2Y9Djv-8yevH.html

Baidu Netdiskダウンロードリンク: 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