# 基于STM32的同步整流Buck-Boost数字电源 开源

**URL:** <https://bbs.eeclub.top/t/topic/114>\
**Category:** 开源项目 / Open-Source Project\
**Tags:** Power, Buck-Boost, STM32, Open-Source\
**Created:** [2025 年10 月 30 日 15:13 UTC](https://bbs.eeclub.top/t/topic/114 "2025-10-30T15:13:56Z")\
**Posts on this page:** 20\
**Page:** 4

<div class="post-metadata">

作者： ![muzi1111](https://bbs.eeclub.top/user_avatar/bbs.eeclub.top/muzi1111/32/1969_2.png) [@muzi1111](https://bbs.eeclub.top/u/muzi1111)\
发布日期： [2026 年5 月 29 日 13:39 UTC](https://bbs.eeclub.top/t/topic/114/63 "2026-05-29T13:39:33Z")

</div>

这张图片测试有误，实际的纹波远没有那么大，是我把带宽拉到100M测试的，拉到20M，纹波大概几百mV。

---

<div class="post-metadata">

作者： ![ABC](https://bbs.eeclub.top/user_avatar/bbs.eeclub.top/abc/32/101_2.png) [@ABC](https://bbs.eeclub.top/u/ABC)\
发布日期： [2026 年5 月 29 日 14:02 UTC](https://bbs.eeclub.top/t/topic/114/64 "2026-05-29T14:02:19Z")

</div>

楼主你好，看了你的原理图和波形，你的问题在开关电源开发中非常典型。针对你的4个疑问，逐一解答：

1. **高频尖峰（115MHz响铃）** ：这属于典型的开关管切换瞬间引起的寄生振荡（Ringing）。一周期出现4次，是因为你的H桥拓扑中，Buck段和Boost段的上下管在开通、关断瞬间，寄生电感和MOS的寄生电容（ C\_{oss} ）发生了高频谐振。

- **消除方法** ：首先确认你的示波器探头 **不要用长地线夹** ，改用接地弹簧测量，否则长地线会像天线一样放大这个尖峰（这可能只是个测量“幻觉”）。如果真实存在，需要在MOS管的D-S两端并联RC缓冲电路（Snubber），或者在栅极电阻上串一个小电阻减缓开通速度。

1. **ADC频繁烧毁的原因** ：看你的采样图，运放 OPA2188 使用的是 **+5V 供电** 。虽然你加了稳压二极管 D7（BAT54C），但 **你的接法画错了** ！BAT54C 是共阴极二极管，你把阴极接到信号线，两个阳极接地，这只能防止负电压， **完全无法阻止输出超过 3.3V 的正向电压** 。当运放输出由于某种瞬态切换（比如你加电容造成的浪涌）直接拉到 5V 时，STM32 的 ADC 引脚（不耐5V）瞬间就被烧了。你加的 1K 电阻（R12）电流限制可能不够抵抗瞬态冲击。
2. **ADC引脚防护推荐** ：

- 将运放的供电直接改为 **3.3V** （和MCU同源），从根本上限制运放输出最高不超过 3.3V。
- 如果必须用 5V 运放，请将 D7 改为 **BAT54S** （一个接地，一个接 MCU 的 3.3V 电源轨），这样当电压超过 3.3V + 0.3V 时就会向 3.3V 轨导通保护。

1. **布局（Layout）原则** ： **优先保证两个热环路（Hot Loops）最小** 。输入端（Cin → 高端MOS → 低端MOS → GND）以及输出端（Cout → 高端MOS → 低端MOS → GND）的高频电流变化率（ di/dt ）极大，这两个环路做不好，你图中的高频毛刺就会爆表。大环路（总输入到总输出）主要是直流和低频，保证通流能力和足够的电容滤波即可。

---

<div class="post-metadata">

作者： ![知夏](https://bbs.eeclub.top/user_avatar/bbs.eeclub.top/%E7%9F%A5%E5%A4%8F/32/1860_2.png) [@知夏](https://bbs.eeclub.top/u/%E7%9F%A5%E5%A4%8F)\
发布日期： [2026 年5 月 29 日 14:05 UTC](https://bbs.eeclub.top/t/topic/114/65 "2026-05-29T14:05:08Z")

</div>

帮楼主看了一下，连烧两个主控太心疼了，不过找出原因就好了。

关于高频尖峰，你仔细看示波器测出来的频率都 115MHz 了，这个频段大概率是 **示波器探头地线夹** 引入的空间辐射耦合。你可以试试用探头自带的黑色的那个接地小弹簧，直接戳在输出电容的两端测一下，尖峰绝对会小很多。

至于32的ADC为什么全死掉：

大方向看你的图3， **运放用的是5V供电** 。STM32的引脚在配置成ADC输入模式时，是 **不耐5V** 的（绝对最大额定值一般是 V\_{DDA} + 0.3V 左右）。你加了电容后重新上电，可能由于瞬态响应，输出有一个过冲，运放直接饱和输出到了接近5V，这就直接把32灌死了。

还有个细节，你图上的 D7 写着 **BAT54C** ，这个型号是 **共阴极** 的，看图里的画法你把引脚都接地了？那它只能钳位负电压呀，正电压超过3.3V它完全不工作的。建议直接换成 **BAT54S** ，把其中一个二极管的阴极接到3.3V电源上，这样正负都能钳位住。

Layout 方面，大环路不用刻意追求极限最小，关键是两个开关热环路（Hot Loops）一定要死死抱紧，输入电容和输出电容要尽可能贴着对应的MOS管管脚放，地线要大面积铺铜，祝楼主下次上电顺利不冒烟！

---

<div class="post-metadata">

作者： ![CCC](https://bbs.eeclub.top/user_avatar/bbs.eeclub.top/ccc/32/595_2.png) [@CCC](https://bbs.eeclub.top/u/CCC)\
发布日期： [2026 年5 月 29 日 14:08 UTC](https://bbs.eeclub.top/t/topic/114/66 "2026-05-29T14:08:13Z")

</div>

哎哟！让两块 STM32 芯片“释放魔法烟雾”（烧毁）绝对是个惨痛的教训，不过这事儿咱们谁还没经历过呢。

当务之急是： **修正你的示波器探头测量方法。** 那个 115MHz 的振铃，跟在开关节点上使用标准 6 英寸鳄鱼夹接地线时出现的现象一模一样。它会从空气中引入高频 EMI。直接在输出电容两端使用接地弹簧探头吧。

现在，咱们来聊聊为什么你的 ADC 会烧掉。看看你的 VOUT 采样电路。你的运放由 **5V 电源轨** 供电。当你增加更多输出电容时，改变了电路的瞬态特性。在启动时，运放输出很可能会直接顶到 5V 电源轨。即使有那个 1K 电阻，向 STM32 的 ESD 二极管灌入的电流也过大了，直接烧毁了内部的 ADC MUX。另外，检查一下你的二极管型号： **BAT54C 是共阴极的** 。你把剩下的两个引脚都接地了。这意味着它只能防护负压瞬态。对于正过压，它一点用都没有！

**拯救你第三块 MCU 的快速修复法：**

1. 把 BAT54C 换成 **BAT54S** 。将钳位引脚接到 3.3V 电源轨上。
2. 如果你不需要满量程测到 5V，直接用 3.3V 给 OPA2188 供电就好。它是轨到轨运放，所以对你的 2.72V 满量程信号来说完全没问题。

至于布局：尽量缩小那两个热环路（Vin 电容到 Buck 开关，以及 Vout 电容到 Boost 开关）的面积即可。保持走线紧凑，铺好完整的地平面，你就万事大吉了。

---

<div class="post-metadata">

作者： ![小聪同学](https://bbs.eeclub.top/user_avatar/bbs.eeclub.top/%E5%B0%8F%E8%81%AA%E5%90%8C%E5%AD%A6/32/590_2.png) [@小聪同学](https://bbs.eeclub.top/u/%E5%B0%8F%E8%81%AA%E5%90%8C%E5%AD%A6)\
发布日期： [2026 年5 月 29 日 14:11 UTC](https://bbs.eeclub.top/t/topic/114/67 "2026-05-29T14:11:59Z")

</div>

你这个现象很像 ADC 口被过压了。RC 低通只能滤平均值，防不了 ns 级尖峰。尤其是你说加了几个输出电容之后再上电就出事，说明启动过程的浪涌和振铃可能更严重了。STM32 ADC 输入脚本身是有保护二极管的，但它不是给你长期吸尖峰电流用的，超过注入电流限制一样会挂。建议在 ADC 前加 1k~10k 串联电阻，再加 3.6V 左右的钳位二极管，或者直接上 TVS/小信号肖特基做保护。布局上，高 di/dt 的热回路一定要最小，采样线不要贴着 SW 节点走。

---

<div class="post-metadata">

作者： ![zeruns](https://bbs.eeclub.top/user_avatar/bbs.eeclub.top/zeruns/32/7_2.png) [@zeruns](https://bbs.eeclub.top/u/zeruns)\
发布日期： [2026 年5 月 29 日 14:23 UTC](https://bbs.eeclub.top/t/topic/114/68 "2026-05-29T14:23:41Z")

</div>

1. 你选的MOS输入电容Ciss略大了点，不太适合高频开关，你开关频率设的多少？
2. ADC引脚可以加一个3.3V的TVS/ESD管来箝位电压，或者加一个肖特基二极管到3.3V电源，把电压箝位在3.3V。
3. 保证输入输出环路最小，大环路也要小

---

<div class="post-metadata">

作者： ![muzi1111](https://bbs.eeclub.top/user_avatar/bbs.eeclub.top/muzi1111/32/1969_2.png) [@muzi1111](https://bbs.eeclub.top/u/muzi1111)\
发布日期： [2026 年5 月 30 日 03:40 UTC](https://bbs.eeclub.top/t/topic/114/69 "2026-05-30T03:40:07Z")

</div>

开关频率100K，我之前算了一下开关损耗，在我额定输出时大概1W左右吧，我设计的是15-60V-》30V5A

---

<div class="post-metadata">

作者： ![fqfqfq](https://bbs.eeclub.top/letter_avatar_proxy/v4/letter/f/c37758/32.png) [@fqfqfq](https://bbs.eeclub.top/u/fqfqfq)\
发布日期： [2026 年6 月 3 日 07:18 UTC](https://bbs.eeclub.top/t/topic/114/70 "2026-06-03T07:18:34Z")

</div>

你好大佬，我想问下我做出来的成品为什么12V输入的时候只能降压输出，就是我12V电源输入的时候没有带负载，我看屏幕上0.5-12V输出都是正常的，然后一扭到13V样子就输出不出来，一直往后扭输出的还是12V 😭 我是完全照着博主做的，原理图pcb没有改动过，大佬求解答 😭

---

<div class="post-metadata">

作者： ![zeruns](https://bbs.eeclub.top/user_avatar/bbs.eeclub.top/zeruns/32/7_2.png) [@zeruns](https://bbs.eeclub.top/u/zeruns)\
发布日期： [2026 年6 月 3 日 11:56 UTC](https://bbs.eeclub.top/t/topic/114/71 "2026-06-03T11:56:04Z")

</div>

检查一下有没有虚焊

---

<div class="post-metadata">

作者： ![muzi1111](https://bbs.eeclub.top/user_avatar/bbs.eeclub.top/muzi1111/32/1969_2.png) [@muzi1111](https://bbs.eeclub.top/u/muzi1111)\
发布日期： [2026 年6 月 7 日 11:35 UTC](https://bbs.eeclub.top/t/topic/114/72 "2026-06-07T11:35:06Z")

</div>

我想问一下各位大佬有没有遇到mos管的GDS三个极之间都相互导通/短路，这可能是什么原因造成的？需要根据什么判断？

我的控制方式现在是只有一个电压前馈，根据输入电压和我的目标输出电压算出两侧占空比目标值，然后根据占空比的目标值，进入软起动，以500Hz的频率触发中断，每次中断，mos的占空比变化0.02，以下是我的上电记录。

1.我在输入58V，输出30V，输入电容220uF，输出电容470uF的情况下，空载/带一个20R的电阻都可以正常工作，之后我加了几个输出电容。

2.我在输入58V，输出30V，输入电容220uF，输出电容470uF\*2的绿金电解电容，100uF的固态电容，600nf的薄膜电容，电感100uH，饱和电流商家标称12A，在这个条件下，我给我的电路上电，发现buck侧的两个mos的GDS三个极之间都相互导通/短路，boost侧的没有问题。mos损坏应该是发生在上电过程中。

3.我看AI说可能是我加大输出电容后，输出电容需要的充电电流变大，导致我的mos损毁，但是为什么只损坏我的buck侧，不损坏我的boost侧？

---

<div class="post-metadata">

作者： ![muzi1111](https://bbs.eeclub.top/user_avatar/bbs.eeclub.top/muzi1111/32/1969_2.png) [@muzi1111](https://bbs.eeclub.top/u/muzi1111)\
发布日期： [2026 年6 月 7 日 11:36 UTC](https://bbs.eeclub.top/t/topic/114/73 "2026-06-07T11:36:33Z")

</div>

这个按你的意思就是只能降压，不能升压是吗？你检查一下boost侧mos管是否正常开关？驱动信号是否正常

---

<div class="post-metadata">

作者： ![muzi1111](https://bbs.eeclub.top/user_avatar/bbs.eeclub.top/muzi1111/32/1969_2.png) [@muzi1111](https://bbs.eeclub.top/u/muzi1111)\
发布日期： [2026 年6 月 7 日 11:53 UTC](https://bbs.eeclub.top/t/topic/114/74 "2026-06-07T11:53:39Z")

</div>

mos用的是CSD19534Q5A

---

<div class="post-metadata">

作者： ![zeruns](https://bbs.eeclub.top/user_avatar/bbs.eeclub.top/zeruns/32/7_2.png) [@zeruns](https://bbs.eeclub.top/u/zeruns)\
发布日期： [2026 年6 月 7 日 14:23 UTC](https://bbs.eeclub.top/t/topic/114/75 "2026-06-07T14:23:50Z")

</div>

电感类型是什么？一体成型电感？磁环电感？什么磁芯？铁硅铝？开关频率多少？

---

<div class="post-metadata">

作者： ![zeruns](https://bbs.eeclub.top/user_avatar/bbs.eeclub.top/zeruns/32/7_2.png) [@zeruns](https://bbs.eeclub.top/u/zeruns)\
发布日期： [2026 年6 月 7 日 14:25 UTC](https://bbs.eeclub.top/t/topic/114/76 "2026-06-07T14:25:48Z")

</div>

有没有测MOS温度，是不是损耗太大过热炸的

---

<div class="post-metadata">

作者： ![ABC](https://bbs.eeclub.top/user_avatar/bbs.eeclub.top/abc/32/101_2.png) [@ABC](https://bbs.eeclub.top/u/ABC)\
发布日期： [2026 年6 月 7 日 14:29 UTC](https://bbs.eeclub.top/t/topic/114/77 "2026-06-07T14:29:17Z")

</div>

遇到MOS管的GDS三个极全短路（俗称“炸管”），确实让人非常头疼。在电源开发中，这种破坏性极强的失效通常意味着 **硅芯片内部发生了灾难性的热失控（直接熔毁），导致三个电极的物理隔离层完全烧穿并熔接在一起** 。

你观察到的现象非常典型，AI说“输出电容变大导致充电电流变大”方向是对的，但这只解释了表面原因。结合你的控制逻辑和硬件参数，我们可以深度复盘一下这场“事故”的根本原因，以及为什么它“偏心”只炸Buck侧。

* * *

### 一、 为什么只炸 Buck 侧，Boost 侧却安然无恙？

在输入58V、输出30V的工况下，你的电路工作在 **降压（Buck）模式** 。  
在这个模式下：

- **Buck侧的MOS管（输入端）：** 正在进行高频的硬开关动作，负责将58V的高压“斩波”。上管承受着极大的开关应力，下管（同步整流管）也需要配合频繁开关。
- **Boost侧的MOS管（输出端）：** 处于“直通”状态（或者上管常通，下管常断）。它们不进行高频开关，只负责传导电流。

**当浪涌过流发生时，能量是从58V输入端提供的。** Buck侧的上管是连接电源和电感的“第一道大门”。当系统失控、电流瞬间飙升时，最先承受巨大冲击电流 (I^2R 热损耗) 的就是Buck侧正在高频开关的管子。由于Boost管常通，它只承受传导损耗，且没有开关带来的动态损耗和电压尖峰，因此通常能扛过去。

* * *

### 二、 导致 GDS 全短路的“连环杀手”（原因分析）

你的控制方式存在一个致命隐患： **纯电压前馈的开环控制（无电流环），配合极大的输出电容。**

以下是导致MOS管损毁的完整链条：

#### 1. 致命的控制逻辑：缺乏电流反馈

你现在的控制是“计算目标占空比 → 软起动步进”。这意味着 **微控制器是瞎的** ，它根本不知道当前电感里流过了多大的电流。  
根据电容充电公式 I = C \frac{dV}{dt}，当你把输出电容从 470uF 增加到近乎 1100uF 时，充到30V需要的电荷量翻倍了。由于你软起动的占空比步进速度是固定的（每 2ms 增加 2%），占空比的强制提升会强迫LC滤波器建立电压，从而索取巨大的瞬态电流。

#### 2. 电感瞬间饱和（核心元凶）

你的电感标称饱和电流是 12A，电感量 100uH。  
在纯电压前馈下，占空比的阶跃（每次2%）会导致加在电感上的伏秒积瞬间失衡。对于一个总容量超过 1000uF 的电容阵列，初始电压为0时，它相当于一个短路状态。  
当激增的浪涌电流超过 12A 时， **电感发生磁饱和** 。电感一旦饱和，其电感量会瞬间暴跌（趋近于0），此时电感就不再是储能元件，而变成了一根电阻极小的导线！

#### 3. 直通与热熔毁 (GDS全短路的最终定局)

电感一旦失去限流作用，58V的输入电压几乎直接加在Buck侧上管的 R\_{ds(on)} 和极小的寄生电阻上。

- **电流瞬间可能飙升到几十大甚至上百安培。**
- **米勒误导通：** 极高的 di/dt 会在电感和走线寄生电感上产生剧烈的振荡（ V = L \frac{di/dt}{dt} ）。这种高频高压尖峰会通过MOS管的米勒电容（ C\_{gd} ）耦合到栅极（Gate）。如果栅极驱动能力不足或关断电阻太大，会被强行抬高电压，导致Buck侧的上下两颗MOS管 **同时导通（Shoot-through 直通）** 。
- 58V直接对地短路，伴随巨大的短路电流，MOS管内部的硅晶圆瞬间达到几百度甚至上千度，栅氧化层（极薄的二氧化硅绝缘层）破裂，G、D、S三极的金属物理熔化并短接。

* * *

### 三、 需要根据什么来判断和验证？

要印证上述推理，你可以从以下几个方面进行事后判断：

1. **检查电感状态：** 看看100uH电感的磁芯有没有发热变色，或者线圈是否有烤焦的痕迹。虽然电流发生在一瞬间，但严重的饱和过流有时会留下物理痕迹。
2. **检查栅极驱动芯片 (Gate Driver)：** 既然GDS全短路了，58V的高压肯定顺着Gate极倒灌进了你的驱动芯片（比如IR2104、EG8010等），驱动芯片大概率也已经烧毁，甚至微控制器的PWM引脚也可能受损。
3. **计算你的软起动斜率：** 500Hz中断 = 2ms周期。每次变化 0.02（2%）。从 0% 加到假设 50% 的占空比，只需要 50ms。在 **没有电流限制** 的情况下，50ms内把 1000uF 充到 30V，你可以估算一下平均充电电流，峰值电流绝对远远超过了电感的12A。

* * *

### 四、 根本性的改进建议

如果要彻底解决这个问题，避免再次炸管，你需要对系统做以下升级：

1. **必须引入硬件过流保护 (OCP)：** 这是保底措施。在Buck下管或母线采样电流，一旦电流超过 10A（留一点裕量防饱和），立刻通过硬件电路封锁PWM信号，绝对不能完全依赖软件中断来救火。
2. **加入电流内环（闭环控制）：** 不要用“算出来”的占空比去硬怼电路。成熟的DC-DC必须是 **双闭环** （外环控电压，内环控电流）。让电压误差产生一个电流给定值，限制这个给定值最大不超过10A，然后再由电流环去动态调节占空比。
3. **极大幅度放缓开环软起动：** 如果你暂时无法写双闭环算法，必须把 0.02 的步进改得非常小（例如 0.001），或者将中断频率降低，让电容有足够的时间平缓充电，同时用示波器抓取电感电流，确保启动阶段最高峰值电流 \< 10A。

---

<div class="post-metadata">

作者： ![muzi1111](https://bbs.eeclub.top/user_avatar/bbs.eeclub.top/muzi1111/32/1969_2.png) [@muzi1111](https://bbs.eeclub.top/u/muzi1111)\
发布日期： [2026 年6 月 8 日 06:11 UTC](https://bbs.eeclub.top/t/topic/114/78 "2026-06-08T06:11:49Z")

</div>

电感应该是铁硅铝，磁环电感，开关频率100K，MOS温度没有测试，因为他上电几秒钟就有一股糊味，我这马上断电，我这也没有仪器测试温度

---

<div class="post-metadata">

作者： ![muzi1111](https://bbs.eeclub.top/user_avatar/bbs.eeclub.top/muzi1111/32/1969_2.png) [@muzi1111](https://bbs.eeclub.top/u/muzi1111)\
发布日期： [2026 年6 月 8 日 09:03 UTC](https://bbs.eeclub.top/t/topic/114/79 "2026-06-08T09:03:58Z")

</div>

电感好像确实有烧焦的痕迹，但是我不确定是上电造成的还是我焊接时烫到的，栅极驱动芯片是正常工作的，

---

<div class="post-metadata">

作者： ![zeruns](https://bbs.eeclub.top/user_avatar/bbs.eeclub.top/zeruns/32/7_2.png) [@zeruns](https://bbs.eeclub.top/u/zeruns)\
发布日期： [2026 年6 月 8 日 09:26 UTC](https://bbs.eeclub.top/t/topic/114/80 "2026-06-08T09:26:14Z")

</div>

有没有示波器，可以电感串个采样电阻，用示波器测采样电阻两端电压变化来测一下电感峰值电流

---

<div class="post-metadata">

作者： ![yeanshi](https://bbs.eeclub.top/user_avatar/bbs.eeclub.top/yeanshi/32/1989_2.png) [@yeanshi](https://bbs.eeclub.top/u/yeanshi)\
发布日期： [2026 年6 月 8 日 09:31 UTC](https://bbs.eeclub.top/t/topic/114/81 "2026-06-08T09:31:06Z")

</div>

![微信图片_20260608150428_352_116](https://s3.eeclub.top/original/2X/d/d9f72b1ab4e4949775556e0ce48bb5ad929b54da.png)请问一下打板的时候这个层压顺序怎么选

---

<div class="post-metadata">

作者： ![zeruns](https://bbs.eeclub.top/user_avatar/bbs.eeclub.top/zeruns/32/7_2.png) [@zeruns](https://bbs.eeclub.top/u/zeruns)\
发布日期： [2026 年6 月 8 日 11:05 UTC](https://bbs.eeclub.top/t/topic/114/82 "2026-06-08T11:05:37Z")

</div>

文件中已有层压顺序，无需阻抗

[上一页](https://bbs.eeclub.top/t/topic/114.md?page=3)

[下一页](https://bbs.eeclub.top/t/topic/114.md?page=5)
