这张图片测试有误,实际的纹波远没有那么大,是我把带宽拉到100M测试的,拉到20M,纹波大概几百mV。
楼主你好,看了你的原理图和波形,你的问题在开关电源开发中非常典型。针对你的4个疑问,逐一解答:
- 高频尖峰(115MHz响铃):这属于典型的开关管切换瞬间引起的寄生振荡(Ringing)。一周期出现4次,是因为你的H桥拓扑中,Buck段和Boost段的上下管在开通、关断瞬间,寄生电感和MOS的寄生电容( C_{oss} )发生了高频谐振。
- 消除方法:首先确认你的示波器探头不要用长地线夹,改用接地弹簧测量,否则长地线会像天线一样放大这个尖峰(这可能只是个测量“幻觉”)。如果真实存在,需要在MOS管的D-S两端并联RC缓冲电路(Snubber),或者在栅极电阻上串一个小电阻减缓开通速度。
- ADC频繁烧毁的原因:看你的采样图,运放 OPA2188 使用的是 +5V 供电。虽然你加了稳压二极管 D7(BAT54C),但你的接法画错了!BAT54C 是共阴极二极管,你把阴极接到信号线,两个阳极接地,这只能防止负电压,完全无法阻止输出超过 3.3V 的正向电压。当运放输出由于某种瞬态切换(比如你加电容造成的浪涌)直接拉到 5V 时,STM32 的 ADC 引脚(不耐5V)瞬间就被烧了。你加的 1K 电阻(R12)电流限制可能不够抵抗瞬态冲击。
- ADC引脚防护推荐:
- 将运放的供电直接改为 3.3V(和MCU同源),从根本上限制运放输出最高不超过 3.3V。
- 如果必须用 5V 运放,请将 D7 改为 BAT54S(一个接地,一个接 MCU 的 3.3V 电源轨),这样当电压超过 3.3V + 0.3V 时就会向 3.3V 轨导通保护。
- 布局(Layout)原则:优先保证两个热环路(Hot Loops)最小。输入端(Cin → 高端MOS → 低端MOS → GND)以及输出端(Cout → 高端MOS → 低端MOS → GND)的高频电流变化率( di/dt )极大,这两个环路做不好,你图中的高频毛刺就会爆表。大环路(总输入到总输出)主要是直流和低频,保证通流能力和足够的电容滤波即可。
帮楼主看了一下,连烧两个主控太心疼了,不过找出原因就好了。
关于高频尖峰,你仔细看示波器测出来的频率都 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管管脚放,地线要大面积铺铜,祝楼主下次上电顺利不冒烟!
哎呦!讓兩顆 STM32 晶片冒出魔法煙霧是個慘痛的教訓,但我們都是過來人。
首先最重要的一點:改善你的示波器探棒量測方式。 那個 115MHz 的振鈴看起來完全就是當有人在開關節點上使用標準的 6 英吋鱷魚夾接地線時會發生的狀況。它會從空氣中接收到高頻 EMI。請直接跨接在輸出電容上使用接地彈簧探針。
現在,我們來談談為什麼你的 ADC 會燒毀。看看你的 VOUT 取樣電路。你的運算放大器運行在 5V 電源軌上。當你加入更多輸出電容時,你改變了它的暫態行為。在開機期間,運算放大器的輸出可能直接頂到了 5V 電源軌。即使有那個 1K 電阻,它依然向 STM32 的 ESD 二極體灌入了過多的電流,把內部的 ADC 多工器給燒了。此外,檢查一下你的二極體型號:BAT54C 是共陰極的。你把剩下的兩隻腳都接地了。這意味著它只能防護負向突波。對於正向過壓,它一點用都沒有!
拯救你第三顆 MCU 的快速解法:
- 將 BAT54C 換成 BAT54S。將箝位腳接到你的 3.3V 電源軌上。
- 如果你不需要量測到 5V 那麼高,就直接用 3.3V 來供電給 OPA2188。它是個軌對軌運算放大器,所以對於你 2.72V 的滿量程訊號來說,它能完美運作。
至於 PCB 佈局方面:只要縮小那兩個熱迴路(Vin 電容到 Buck 開關,以及 Vout 電容到 Boost 開關)。讓它們保持緊湊,使用完整的接地平面,你就萬事大吉了。
你这个现象很像 ADC 口被过压了。RC 低通只能滤平均值,防不了 ns 级尖峰。尤其是你说加了几个输出电容之后再上电就出事,说明启动过程的浪涌和振铃可能更严重了。STM32 ADC 输入脚本身是有保护二极管的,但它不是给你长期吸尖峰电流用的,超过注入电流限制一样会挂。建议在 ADC 前加 1k~10k 串联电阻,再加 3.6V 左右的钳位二极管,或者直接上 TVS/小信号肖特基做保护。布局上,高 di/dt 的热回路一定要最小,采样线不要贴着 SW 节点走。
- 你选的MOS输入电容Ciss略大了点,不太适合高频开关,你开关频率设的多少?
- ADC引脚可以加一个3.3V的TVS/ESD管来箝位电压,或者加一个肖特基二极管到3.3V电源,把电压箝位在3.3V。
- 保证输入输出环路最小,大环路也要小
开关频率100K,我之前算了一下开关损耗,在我额定输出时大概1W左右吧,我设计的是15-60V-》30V5A
你好大佬,我想问下我做出来的成品为什么12V输入的时候只能降压输出,就是我12V电源输入的时候没有带负载,我看屏幕上0.5-12V输出都是正常的,然后一扭到13V样子就输出不出来,一直往后扭输出的还是12V
我是完全照着博主做的,原理图pcb没有改动过,大佬求解答 ![]()
检查一下有没有虚焊
我想问一下各位大佬有没有遇到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侧?
这个按你的意思就是只能降压,不能升压是吗?你检查一下boost侧mos管是否正常开关?驱动信号是否正常
mos用的是CSD19534Q5A
电感类型是什么?一体成型电感?磁环电感?什么磁芯?铁硅铝?开关频率多少?
有没有测MOS温度,是不是损耗太大过热炸的
遇到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三极的金属物理熔化并短接。
三、 需要根据什么来判断和验证?
要印证上述推理,你可以从以下几个方面进行事后判断:
- 检查电感状态: 看看100uH电感的磁芯有没有发热变色,或者线圈是否有烤焦的痕迹。虽然电流发生在一瞬间,但严重的饱和过流有时会留下物理痕迹。
- 检查栅极驱动芯片 (Gate Driver): 既然GDS全短路了,58V的高压肯定顺着Gate极倒灌进了你的驱动芯片(比如IR2104、EG8010等),驱动芯片大概率也已经烧毁,甚至微控制器的PWM引脚也可能受损。
- 计算你的软起动斜率: 500Hz中断 = 2ms周期。每次变化 0.02(2%)。从 0% 加到假设 50% 的占空比,只需要 50ms。在没有电流限制的情况下,50ms内把 1000uF 充到 30V,你可以估算一下平均充电电流,峰值电流绝对远远超过了电感的12A。
四、 根本性的改进建议
如果要彻底解决这个问题,避免再次炸管,你需要对系统做以下升级:
- 必须引入硬件过流保护 (OCP): 这是保底措施。在Buck下管或母线采样电流,一旦电流超过 10A(留一点裕量防饱和),立刻通过硬件电路封锁PWM信号,绝对不能完全依赖软件中断来救火。
- 加入电流内环(闭环控制): 不要用“算出来”的占空比去硬怼电路。成熟的DC-DC必须是双闭环(外环控电压,内环控电流)。让电压误差产生一个电流给定值,限制这个给定值最大不超过10A,然后再由电流环去动态调节占空比。
- 极大幅度放缓开环软起动: 如果你暂时无法写双闭环算法,必须把 0.02 的步进改得非常小(例如 0.001),或者将中断频率降低,让电容有足够的时间平缓充电,同时用示波器抓取电感电流,确保启动阶段最高峰值电流 < 10A。
电感应该是铁硅铝,磁环电感,开关频率100K,MOS温度没有测试,因为他上电几秒钟就有一股糊味,我这马上断电,我这也没有仪器测试温度
电感好像确实有烧焦的痕迹,但是我不确定是上电造成的还是我焊接时烫到的,栅极驱动芯片是正常工作的,
有没有示波器,可以电感串个采样电阻,用示波器测采样电阻两端电压变化来测一下电感峰值电流
文件中已有层压顺序,无需阻抗
