示波器上DRAIN引脚的波形明明在以60kHz稳定跳变,可万用表显示的输出电压只有0.5V。这是我在调试一块基于VIPER16LDTR的非隔离Buck电源时遇到的情况:输入220V整流后供给芯片,目标输出12V,结果上电之后COMP引脚被死死压在0.75V,占空比小到几乎看不见,输出端只有500mV。如果只看开关频率,芯片似乎“工作正常”,也正是这个“正常”,让我一开始走了不少弯路。
VIPER16LDTR是ST的离线高压转换器,L后缀代表固定60kHz开关频率版本,内部集成800V功率MOSFET。用它搭Buck转换器很常见,但这类芯片的调试坑也不少。这篇记录会把整个排查过程完整拆开,从振荡器、误差放大器、反馈分压网络三层逻辑入手,逐步定位到反馈下臂电阻虚焊这个真凶,同时把VIPER16的COMP引脚行为、占空比控制原理讲清楚。如果你正在调VIPER16、VIPER22这类固定频率PWM芯片,或者卡在“频率正常但输出异常”的故障上,这篇应该能帮你少走几圈弯路。
1. 现象确认:频率正常的三个信号与一个隐藏陷阱
1.1 实测数据和“看起来正常”的假象
这块板子的拓扑很典型:交流220V经整流桥得到约310V直流母线,接到VIPER16LDTR的DRAIN引脚,开关节点通过一个电感加续流二极管组成Buck,反馈由输出端分压电阻网络送到FB引脚。目标输出12V/0.5A,开关频率设计为60kHz。
上电后的实测数据如下:
| 测试点 | 实测值 | 期望值 | 初步判断 |
|---|---|---|---|
| DRAIN引脚开关频率 | 60kHz,稳定 | 60kHz | 正常 |
| VCC引脚电压 | 14.5V,稳定 | 12V~18V | 正常 |
| COMP引脚电压 | 0.75V DC | 1.5V~3.5V | 异常 |
| PWM占空比 | 接近1% | 30%~40% | 异常 |
| 输出电压 | 0.5V | 12V | 异常 |
当时第一反应是:频率完全正确、VCC也稳定,芯片应该在正常工作,问题可能出在输出二极管或者电感上。但仔细一想,输出500mV说明几乎没有能量传递到次级侧,占空比被压缩到接近零,而COMP引脚又是一个非常低的电压——这两者其实是同一个问题的表里两面。
1.2 为什么“频率正常”最容易误导人
固定频率PWM芯片内部,振荡器模块和误差放大器模块在物理和功能上都是独立的。只要VCC电压达到芯片启动阈值,振荡器就会以设计频率自由运行,产生固定周期的锯齿波或方波。这个模块不关心输出是否正常,不关心反馈信号是否正确,它只是自顾自地产生触发脉冲。
你可以把振荡器理解为发动机的曲轴转速,PWM占空比则是变速箱实际传递到轮子上的动力。发动机转速表显示3000转,不代表车在正常行驶——离合器打滑或者挡位不对,照样可以转速正常但车不走。
在VIPER16这类芯片里,振荡器只决定“开关频率”,而占空比由内部的PWM比较器根据COMP电压和电流检测信号共同决定。所以DRAIN引脚上出现60kHz方波,只能说明两件事:VCC供电没问题,振荡器在工作。至于环路是否收敛、反馈是否正常、占空比是否合理,完全不能从“频率正常”推导出来。这也是这类故障排查时最容易让人迷失方向的地方。
1.3 排除测量假象:别急着怀疑芯片
调试过程中我还犯过一个低级错误:一开始用万用表去量COMP引脚,读数是0.75V,我下意识认为这是芯片内部问题。后来换了示波器DC耦合,带宽限制到20MHz再测,发现COMP电压确实稳定在0.75V,没有明显纹波,这才确认不是测量工具造成的假象。
COMP引脚是高阻节点,万用表内阻虽然通常有10MΩ,但在某些工作状态下仍然可能改变节点工作点。更稳妥的做法是:
- 用示波器DC耦合测量COMP,探头衰减比调正确
- 打开20MHz带宽限制,滤掉开关噪声干扰
- 探头接地弹簧尽量短,避免地线环路引入振铃
- 对比万用表读数和示波器读数,两者偏差大就要怀疑测量方式
如果COMP引脚电压在测量时被探头拉低,那可能是探头的输入阻抗不够或者探头补偿不正确。确定测量无误后,再开始往芯片内部逻辑排查。
2. COMP=0.75V的背后:VIPER16内部环路与保护逻辑
2.1 控制环的基本结构:振荡器、误差放大器、PWM比较器
要理解COMP引脚为什么是0.75V,先要理清VIPER16内部控制环的工作方式。芯片内部主要有三块核心电路:
振荡器产生固定频率的时钟信号,每个周期开始时置位PWM锁存器,让功率MOSFET导通。FB引脚接收反馈电压,与内部基准电压(VIPER16系列典型值为2.5V左右,具体以数据手册为准)在误差放大器中进行比较,误差放大器的输出就是COMP引脚。
COMP电压和电流检测信号同时送入PWM比较器,当电流检测信号达到COMP电压对应的阈值时,PWM比较器翻转,复位锁存器,关闭功率MOSFET。
这就是典型的电流模式控制:COMP电压越高,允许的峰值电流越大,占空比越大;COMP电压越低,允许的峰值电流越小,占空比被压缩。换句话讲,COMP引脚是全片能量管理的“油门踏板”。油门踩得深,能量给得多;油门收到底,能量几乎不给出。
2.2 0.75V代表什么:误差放大器进入低饱和
多数PWM控制芯片内部误差放大器的输出级,低端饱和电压在0.7V到0.8V之间。实测0.75V,说明误差放大器已经输出到最低点,处于“全力拉低”的饱和状态。
这一步很关键。COMP被压到0.75V不是在正常工作范围,而是误差放大器在向PWM比较器发出一个非常明确的指令:反馈电压远高于内部基准,输出侧能量太多了,立刻减小占空比。
这就出现了一个很矛盾的现象:输出明明是0.5V,远低于目标12V,误差放大器为什么认为“输出太高”?输出电压低,FB也应该低,误差放大器应该给高COMP、请求更大占空比才对。这个逻辑矛盾就是整个排查的核心线索——反馈链路一定在哪里出了问题,导致FB引脚读到的信号与实际输出电压不一致。
2.3 内部保护还是外部反馈:第一个分叉点
COMP被压到低饱和,可能是内部保护触发,也可能是外部反馈异常。VIPER16内部有逐周期过流保护、过压保护、过热保护、VCC欠压保护。如果是过流保护触发,芯片会限制峰值电流,COMP也会被压低。如果是过压保护触发,芯片可能进入锁存或打嗝模式。
但从现象上看,开关频率保持60kHz稳定,既没有打嗝也没有锁存,说明芯片没有进入典型的保护重启序列。逐周期过流保护在轻载时也不太可能持续触发。
排除了内部保护这条线之后,注意力就集中到外部反馈网络。接下来要做的,就是通过测量FB引脚电压,来验证“反馈读数错误”这个猜想。
3. 逐级排查实录:从FB引脚到分压网络
3.1 第一步:测FB引脚电压,判断反馈是否异常
FB引脚是误差放大器的反相输入端,正常工作时应该稳定在内部基准电压附近,即2.5V左右。如果反馈分压网络正确,输出电压12V经过分压后,FB应该精确等于2.5V。
我当时用示波器去测FB引脚,读数约3.9V,明显偏高。这个数字说明两件事:
- 分压网络的输出电压换算关系已经不成立,FB处出现了不该有的电压
- FB高于内部基准,误差放大器输出被压到饱和——和COMP 0.75V完全吻合
到这里,前面的逻辑推演已经闭环了:FB=3.9V → 误差放大器反相输入端高于基准 → 输出COMP被拉到低饱和 → PWM占空比被压到最小 → 输出只有500mV。
但还有一个问题没解决:为什么输出只有0.5V,FB反而有3.9V?如果分压网络正常,0.5V经过分压后FB应该远低于2.5V才对。FB电压能高于2.5V,说明它并不是单纯由输出电压分压得到的。
3.2 第二步:在FB对地并联电阻的临时实验
为了进一步确认芯片本身是否正常,我在FB引脚对地临时并联了一个10kΩ电阻。这个操作的逻辑是:如果原有反馈分压网络下臂开路,并联电阻就等于临时补上下臂,给FB引脚提供一条对地泄放通路。
并联之后,COMP电压立刻从0.75V开始回升,几秒钟内升到2V以上,同时输出端电压开始爬升,最终稳定在接近12V的位置。这个实验非常直接地证实了两点:
- 芯片内部误差放大器和PWM逻辑完全正常,COMP能被正确拉高
- 问题就出在原有的反馈分压网络上,FB引脚缺少对地通路,才会被异常抬高
需要注意的是,做这个实验时要在输入侧串联限流电阻或使用调压器慢慢升压,防止输出突然恢复后失控。我当时是在60V低压输入下做的验证,确认输出稳定后再逐步升到220V。
3.3 第三步:断电测量分压电阻
断开输入电源,等待母线电容放电到安全电压以下,用万用表电阻档测量反馈分压网络。
反馈网络通常是一个电阻从输出电压节点接到FB引脚(上臂Rupper),另一个电阻从FB引脚接到GND(下臂Rlower)。正常的输出电压设定关系是:VFB = Vout × Rlower / (Rupper + Rlower),其中VFB应等于内部基准2.5V。
实测结果如下:
| 元件 | 标称值 | 实测值 | 状态 |
|---|---|---|---|
| Rupper(输出到FB) | 100kΩ | 99.6kΩ | 正常 |
| Rlower(FB到GND) | 10kΩ | 开路(OL) | 异常 |
Rlower两个焊盘之间电阻无穷大,用放大镜观察发现其中一个焊盘存在典型的冷焊裂纹,焊锡没有完全浸润电阻端头,属于典型的虚焊问题。这种情况下,分压网络在电路板上形同断路,FB引脚成为一个没有对地泄放回路的高阻悬浮节点。
3.4 第四步:顺带检查补偿网络和续流二极管
即使锁定分压电阻,我还是顺手检查了COMP引脚外接的补偿网络和输出续流二极管。
COMP引脚外接的是一组RC串联网络,用于设置误差放大器增益和环路带宽。检查方法是用万用表量电容两端是否短路或漏电,同时用示波器观察补偿节点在开关瞬间的波形。补偿电容如果漏电,等效于在COMP对地加了一条低阻通路,也会把COMP电压拉低,但通常不会拉得这么精准地接近低饱和值。
续流二极管的检查则更简单:用二极管档量正向压降,然后确认反向不导通。Buck拓扑中续流二极管必须用快恢复或肖特基管,如果用了普通整流管,反向恢复时间过长会导致开关节点波形异常,但一般不会单独造成COMP被压到0.75V。
这两个元件检查结果都在正常范围,排除了它们的影响,最终将故障锁定在反馈分压下臂电阻虚焊。
4. 根因落地:一个虚焊焊盘如何引发连锁反应
4.1 从虚焊到0.75V的完整因果链
现在把整个故障重新梳一遍,你会发现每一步都符合电路逻辑:
Rlower虚焊开路后,FB引脚失去对地电阻。上电瞬间输出电压从0开始爬升,Rupper把输出端的电压向FB引脚注入电流,但FB引脚没有泄放通路,只能靠芯片内部和PCB上的微小漏电流来平衡。这些微弱电流不足以把FB拉回正常范围,反而让FB节点电压一路被抬高。
当FB电压超过内部基准2.5V的那一瞬,误差放大器的反相输入端高于同相输入端,输出COMP立刻被拉向低饱和。PWM比较器收到的阈值电压被压到最低,每个开关周期内允许的峰值电流小到接近零,占空比急剧收缩。输出负载只能靠极短的导通时间和续流二极管的漏电来维持极低电压,最终稳定在0.5V。
在整个过程中,振荡器模块始终没有停止工作,60kHz的开关频率一直存在,因此示波器上看到的DRAIN波形“完全正常”。这就是为什么那么多工程师会在这种故障上卡很久——频率正常这个信号太有迷惑性,让人忽略了反馈环已经断开的真相。
4.2 修复与验证
修复方法很简单:给Rlower的虚焊焊盘补焊,重新处理焊点。补焊后再次测量各个关键点:
| 测试点 | 修复前 | 修复后 |
|---|---|---|
| FB引脚电压 | 3.9V | 2.5V |
| COMP电压 | 0.75V | 2.1V |
| 占空比 | 约1% | 约30% |
| 输出电压 | 0.5V | 11.9V |
| 开关频率 | 60kHz | 60kHz |
补焊后系统完全恢复正常。为了验证环路的动态特性,我接了电子负载做加载测试:空载时输出电压12.1V,200mA负载时12.0V,500mA满载时11.9V,负载调整率在正常范围内。COMP电压随负载增加略有上升,从空载的1.9V变化到满载的2.6V,符合电流模式控制的典型行为。
4.3 分压电阻四种失效形态的故障特征
这次排查给了我很深的一个印象:反馈分压电阻的每个失效模式,表现出来的故障特征都不一样,而且都很有辨识度。
| 失效形态 | FB引脚电位 | COMP状态 | 输出表现 |
|---|---|---|---|
| Rupper开路 | FB=0V,低于基准 | COMP饱和高 | 占空比最大,输出飙升,可能触发OVP |
| Rupper短路 | FB≈Vout,远高于基准 | COMP饱和低 | 占空比被压制,输出很低 |
| Rlower开路 | FB悬空,被异常抬高 | COMP饱和低 | 输出接近0V,就像这次故障 |
| Rlower短路 | FB=0V,低于基准 | COMP饱和高 | 占空比最大,输出过冲 |
这张表对快速定位同类故障非常有用。看到COMP饱和高就查为什么FB低于基准,看到COMP饱和低就查为什么FB高于基准,看到输出异常飙升先怀疑反馈开路,看到输出趴地先怀疑反馈下臂开路。排查方向被大大压缩。
5. 调试VIPER16类芯片的几个高频坑与排查顺序
5.1 VCC打嗝和固定频率低占空比的区别
VIPER16如果VCC供电不足,会进入反复重启的打嗝模式:VCC电压上升到启动阈值后芯片开始开关,但因为没有足够的辅助供电维持VCC,VCC跌落至欠压阈值后芯片关闭,然后重新启动。用示波器看VCC波形是锯齿状,输出电压表现为周期性起伏。
而这次故障中,VCC稳定在14.5V,说明辅助供电正常。这一点在排查初期就排除了打嗝和欠压保护这条路径。实测中如果看到DRAIN引脚不是持续稳定的60kHz,而是间歇性的一簇簇脉冲,优先查VCC供电链路,包括启动电阻、辅助绕组的