
什麼是 Buck 降壓電路?
先講一句話版本:Buck 就是拿開關把輸入電壓切碎,再用電感跟電容把它拼回一個比較低的電壓。Buck 降壓電路(也稱降壓轉換器、Step-Down Converter)是嵌入式系統中最核心的電源架構 —— 從 Arduino、ESP32 到 STM32 開發板,板子上那顆黑色電感配著電容濾波的電路,十之八九就是 Buck Converter。
我自己第一次拆電源模組時最納悶的是:輸入明明 12V,為什麼過了一顆電感、一顆二極體,輸出就乖乖變成 3.3V?後來才想通,重點不在「降」這個字,而在開關導通的時間佔多少比例。這個比例叫工作週期(Duty),整篇文章都會用到它。
Buck 轉換器是一種切換式降壓電源(Switching Regulator),透過高速開關 MOSFET 和電感儲能,把較高的輸入電壓轉換為較低的穩定輸出電壓。與傳統的線性穩壓器(LDO)不同,Buck 電路的效率可達 90% 以上,幾乎不發熱 —— 這就是為什麼只要碰到「壓差」,我幾乎都直接選它。

核心元件只有四個:
- Q1:MOSFET 開關 — 由 PWM 訊號控制,高頻切換(通常 100kHz~2MHz)
- D1:續流二極體(Schottky) — 開關關閉時提供電感電流路徑
- L1:儲能電感 — 在開關導通時儲存能量,關斷時釋放
- Cout:輸出濾波電容 — 平滑輸出電壓漣波
四個裡面我會說 L1 與 D1 是靈魂。沒有 D1 這條續流路徑,電感上的電流一被切斷就會自己生出高壓,回頭把開關打穿。
Buck vs LDO:為什麼要用切換式電源?
每次有人問我「12V 轉 3.3V 可不可以直接用 AMS1117」,我都會先請他算一件事:壓差 8.7V 乘上電流,那些瓦數最後全部變成熱。
| 特性 | Buck 降壓電路 | LDO 線性穩壓 |
|---|---|---|
| 效率 | 80%~95% | 30%~60%(壓差大時) |
| 發熱量 | 低(需散熱但遠低於 LDO) | 高(P = (Vin-Vout) × I) |
| EMI/雜訊 | 較高(開關噪聲) | 極低(線性) |
| 電路複雜度 | 中(需電感/二極體) | 低(只需輸入/輸出電容) |
| 成本 | 較高(多顆被動元件) | 低 |
| 12V→3.3V 應用 | ✅ 適合(效率 ~87%) | ❌ 不適合(73% 能量變熱) |
簡單經驗法則:壓差 > 2V 且電流 > 100mA → 用 Buck。壓差小或對雜訊極敏感 → 用 LDO。很多設計會採用 Buck + LDO 的級聯方案:先用 Buck 把 12V 降到 3.6V,再用 LDO 穩到 3.3V 給類比電路。
Buck 降壓轉換器工作原理
Buck 電路的工作分為兩個階段,講白了就是「充電」跟「放電」:
Ton 階段(開關導通)
- MOSFET Q1 導通,Vin 連接到電感 L1
- 電感兩端電壓:VL = Vin − Vout(正值)
- 電感電流線性上升,斜率 = (Vin − Vout) / L
- 二極體 D1 反向偏壓(截止)
- 輸出電容 Cout 提供負載電流
Toff 階段(開關關斷)
- MOSFET Q1 關斷,電感電流不能瞬間中斷
- 電感透過 D1 續流(Freewheeling),D1 導通
- 電感兩端電壓:VL = −Vout(負值)
- 電感電流線性下降,斜率 = −Vout / L
- 電感釋放能量給負載和輸出電容充電

把兩段接起來看就清楚了:開關 ON 時電感電流往上爬,OFF 時往下滑,它從來不是一條直線,而是一直繞著某個平均值在擺動。這個擺動幅度就是漣波 ΔI_L,後面選電感其實就是在控制它的大小。

關鍵公式快速參考
以下是 Buck 電路設計中最常用的幾個公式。我的習慣是不背,直接開這張表對照著算 —— 反正來來去去就這五、六條:
| 參數 | 公式 | 說明 |
|---|---|---|
| 工作週期 (Duty) | D = Vout / Vin | 忽略二極體壓降時的近似值 |
| 實際 Duty | D = (Vout + Vd) / (Vin − Vsw) | 考慮二極體 Vd 和開關壓降 Vsw |
| 電感值 | L ≥ (Vin−Vout)×D / (ΔIL×fsw) | ΔIL 通常取 30%~40% Iout |
| 電感電流峰值 | Ipeak = Iout + ΔIL/2 | 確保電感不飽和 |
| 輸出電容 | Cout ≥ ΔIL / (8×fsw×ΔVout) | ΔVout 為允許的輸出漣波 |
| 效率 | η = (Vout × Iout) / (Vin × Iin) × 100% | 實際效率受導通/切換損耗影響 |
直接拿實例走一遍最快。Vin=12V、Vout=3.3V、Iout=1A、f_sw=500kHz:
- D = 3.3/12 = 0.275(27.5%)
- ΔI_L 取 0.35A:L ≥ (12−3.3)×0.275 / (0.35×500k) ≈ 13.7μH → 選 15μH
- I_peak = 1 + 0.175 = 1.175A → 電感飽和電流需 > 1.5A
- Cout 若 ΔVout=30mV:Cout ≥ 0.35 / (8×500k×0.03) ≈ 2.9μF → 選 10μF MLCC

這裡有個新手常踩的坑:算出來的 13.7µH 不是「去買 13.7µH」,而是「至少要 13.7µH」,然後從標準值裡挑大一級的 15µH。原因跟漣波有關 —— 電感值只影響擺動幅度,但一旦選小,電流可能在每個週期都掉到零,那就掉出連續導通模式(CCM)了。

常用 Buck IC 推薦
| IC | Vin 範圍 | Iout | 頻率 | 特色 |
|---|---|---|---|---|
| LM2596 | 4.5V~40V | 3A | 150kHz | 經典入門、容易買到模組 |
| MP1584 | 4.5V~28V | 3A | 1MHz | 體積小、效率高 |
| TPS5430 | 5.5V~36V | 3A | 500kHz | TI 方案、有 Enable 腳 |
| SY8303 | 4.5V~40V | 3A | 500kHz | 內建 MOSFET、低價國產 |
| LMR14030 | 4V~40V | 3.5A | 2.1MHz | 低 IQ、輕載高效率 |
對於 ESP32 專案,MP1584 或 SY8303 是 CP 值最高的選擇 —— 體積小、效率高、容易買到成品模組。
ESP32 電源設計實例:12V→3.3V
以 MP1584 為例,設計一組給 ESP32 使用的降壓電源:
規格需求
- 輸入:12V DC(工業現場常見電源)
- 輸出:3.3V / 1A(ESP32 峰值約 500mA,留餘量)
- 漣波:< 50mVpp(ESP32 WiFi 發射時對電源敏感)
- 效率目標:> 85%
元件選擇
- IC:MP1584EN(SOP-8 封裝)
- 電感 L1:15μH / 2A 飽和電流(CD54 屏蔽型)
- 輸入電容 Cin:10μF + 0.1μF MLCC(靠近 IC 腳位)
- 輸出電容 Cout:22μF + 10μF MLCC(低 ESR)
- 續流二極體 D1:SS34(Schottky,3A/40V)
- 回授分壓:R1=10kΩ、R2=3.09kΩ(Vout=0.8×(1+R1/R2))
- 補償網路:Type II 補償(參考 datasheet)
補充一個容易被忽略的選擇題:D1 這顆蕭特基二極體,是「非同步整流」的作法。它便宜、最單純,代價是那個順向壓降 Vd 會直接吃掉一點效率 —— 這也是為什麼公式裡的實際 Duty 要寫成 (Vout+Vd)/(Vin−Vsw)。

電路接線
接線的相對位置我直接畫出來,照著它拉線,SW 節點那一小塊就不會東拉西扯:
MP1584 典型應用電路(12V → 3.3V / 1A):
Vin(12V) ─┬─ Cin(10μF) ─┬─ VIN ───── SW ─┬─ L₁(15μH) ─┬─ Vout(3.3V)
│ │ │ │
└─ Cin(0.1μF) ─┤ └─ D₁(SS34) ─┤
│ │ └─ Cout(22μF+10μF)
│ GND │
│ │
EN ── 10kΩ ─┬── Vout (Enable)
│
GND
回授分壓:
Vout ─┬─ R₁(10kΩ) ─┬─ FB
│ │
└─ R₂(3.09kΩ) ─┤
GND
PCB 佈局要點
Buck 電路的 PCB 佈局直接影響穩定性和 EMI。以下是關鍵原則:
- 高頻路徑最短化:Cin → IC → L1 → D1 → Cout 的迴路面積要最小
- SW 節點遠離敏感訊號:SW 節點(IC 到電感)是高 dv/dt 節點,不要靠近 FB 走線
- FB 走線要遠離電感:回授分壓電阻要靠近 IC 的 FB 腳,走線避開電感下方
- 接地平面:使用完整的 GND plane,頂層和底層都要
- 輸入電容靠近 VIN 腳:Cin 要離 IC 的 VIN 腳小於 5mm
- 電感屏蔽:選用屏蔽型電感(Shielded Inductor)減少磁場耦合
這六條如果要我只留一條,那就是第一條。迴路面積一大,漣波與 EMI 會一起變差,而且很難靠事後加電容救回來 —— 佈局是畫錯就沒救的那種錯誤。
常見問題與排錯
上電之後發現輸出怪怪的,先別急著換料,照這四類症狀分類,通常五分鐘就能鎖定方向:

1. 輸出電壓過低或不穩
- 檢查回授分壓電阻值是否正確
- 檢查電感是否飽和(飽和時電流急遽上升,IC 會進入限流)
- 檢查輸入電壓是否足夠
2. 輸出漣波過大
- 增加輸出電容值或選用更低 ESR 的 MLCC
- 檢查電感值是否足夠(電感值越小,漣波越大)
- 在輸出端加 LC 濾波(磁珠 + 10μF)
3. IC 過熱
- 檢查切換頻率是否過高(頻率高 → 切換損耗大)
- 確保 PCB 有足夠的銅箔散熱(IC 底下加 Thermal Via)
- 檢查電感是否工作在 CCM(連續模式)
4. ESP32 WiFi 連線時當機
ESP32 在發射 WiFi 時(802.11b 約 300mA 脈衝電流)會對電源產生瞬態壓降。解決方案:
- 在 ESP32 電源腳附近加 100μF 電解電容 + 0.1μF MLCC
- 確保 Buck 的頻寬足夠(Type II 補償)
- 必要時在 Buck 後面加一顆 LDO(如 AMS1117-3.3)作級聯
我自己遇過最多次的就是第 4 類:裸機跑得好好的,一連 WiFi 就重開。加了那顆 100μF 之後,症狀直接消失。
Buck vs Boost vs Buck-Boost
Buck 降壓電路屬於切換式電源三大拓撲之一。另外兩種常見的拓撲是 Boost(升壓)和 Buck-Boost(升降壓)。三者對比如下:
| 拓撲 | 輸出電壓 | 典型應用 |
|---|---|---|
| Buck(降壓) | Vout < Vin | 12V→3.3V/5V MCU 供電 |
| Boost(升壓) | Vout > Vin | 鋰電池 3.7V→5V USB 輸出 |
| Buck-Boost(升降壓) | Vout 可高可低 | 電池供電裝置(電壓跨 Vin 變化) |
實務上最常見的組合是 Buck + LDO 級聯:先用 Buck 從 12V 降到 3.6V(效率約 90%),再用 LDO 穩到 3.3V(漣波小於 10mV)。這樣既保留了 Buck 的高效率,又獲得了 LDO 的低雜訊。
在設計物聯網裝置的電源時,還需要考慮待機功耗。MP1584 在輕載時會自動進入跳脈衝模式(Skip Cycle),待機電流僅 100μA 左右,非常適合電池供電的 ESP32 感測器節點。
如果需要隔離式電源(輸入和輸出之間沒有電氣連接),可以考慮 Flyback 轉換器或推挽式轉換器,但它們的電路比 Buck 複雜得多,適合 AC-DC 或高壓應用場合。
總結
Buck 降壓電路是每一個嵌入式工程師都該掌握的電源設計基本功。從 12V 工業電源到 3.3V 的 MCU 供電,理解 Buck 的工作原理、元件選擇和 PCB 佈局,能讓你的專案更穩定、更高效。我自己會用三句話記住它:
- Vout = Vin × D:輸出電壓是被工作週期決定的,不是被元件決定的
- ΔI_L 決定漣波:抓 Iout 的 30%~40%,太大太小都出事
- 佈局決定 EMI:高頻迴路面積最小化,SW 節點閃遠一點
想深入了解電源設計?可以接著看隔離式電源或 PoE(Power over Ethernet)供電設計。
延伸閱讀:SPI 通訊教學 · MQTT 實戰教學 · RS485 通訊教學
文章評論