为什么会产生瞬间导通?
1. 硬件开关延迟不对称
MOSFET/IGBT的开通延迟(t_d(on)) 和关断延迟(t_d(off)) 通常不相等:
text
上管关断延迟:100ns
下管开通延迟:50ns
↓
如果同时发送"上管关断、下管开通"信号
↓
由于关断更慢,可能出现:
上管还没完全关断,下管已经开通
↓
直通短路!
2. PWM突然停止时的状态不确定性
当BKIN突然触发时:
text
正常状态:上管开,下管关
BKIN触发 → 立即关闭所有输出
理论上:两个管子都应该关断
实际上:
- 驱动器响应时间不同
- 栅极电荷泄放速度不同
- 可能产生短暂的两个管子都部分导通
个人注:这个短暂的时间是指,上管还没来及的完全关闭,下管由于干扰因素导致意外导通,例如下一条所说的寄生电容
3. 寄生参数引起的振铃效应
plaintext
快速关断时:
电感能量释放 → 电压尖峰 → 通过米勒电容耦合
→ 可能意外开通另一个管子
具体场景分析:
场景1:没有死区,突然关闭互补PWM
text
初始状态:CH1=高(上管开),CH1N=低(下管关)
BKIN触发:CH1=低,CH1N=低(理想情况)
实际时序:
t0: BKIN触发
t1: CH1开始下降(上管关断)
t2: 上管实际关断(有延迟)
t3: CH1N维持低电平
风险:如果CH1N有任何毛刺或振铃
可能在下管栅极产生正向电压
导致下管意外开通
场景2:关闭过程中的米勒效应
text
高速开关时:
上管关断 → Vds快速上升
通过Cgd(米勒电容)耦合到下管栅极
→ 下管栅极电压被"抬升"
→ 可能超过阈值电压而意外开通
实际波形示例:
text
没有死区保护的错误情况:
_________
CH1 ______| |__________
↑
CH1N ____________| |______
↑
这个瞬间两个管子可能同时导通!
(由于关断延迟和信号传播差异)
死区如何防止这个问题?
死区在关断时的作用:
text
安全关闭序列:
1. 首先关闭当前导通的管子(如上管)
2. 插入死区时间(确保上管完全关断)
3. 然后才允许另一个管子开通(但BKIN时不会开通)
个人注:这个允许是指硬件允许,死区时间设置的也是硬件
BKIN触发时的保护:
BKIN → 硬件强制:
CH1立即变低 + CH1N立即变低
↓
但死区控制器会:
1. 确保CH1和CH1N不会同时有有效电平
2. 即使软件错误配置,硬件也保证安全
验证实验建议:
如果你有示波器,可以测试:
测试1:正常开关的死区观察
c
// 设置很小的死区
bdtr.TIM_DeadTime = 0x01; // 最小死区
观察:正常PWM切换时可能已经有风险
测试2:BKIN触发的瞬间
c
// 设置死区为0
bdtr.TIM_DeadTime = 0x00;
// 触发BKIN,用示波器同时抓:
// 1. CH1和CH1N引脚电压
// 2. 电源电流(可能看到尖峰)
可能观察到:电流尖峰,表明有直通发生
工程实践经验:
必须加死区的情况:
-
任何H桥/半桥电路
-
即使有BKIN保护
-
即使PWM频率很低
-
即使使用"软关断"技术
死区时间计算参考:
text
最小死区时间 =
MAX(t_d_off(上管) - t_d_on(下管),
t_d_off(下管) - t_d_on(上管))
+ 安全裕量(通常20-50%)
例如:
上管:t_doff=120ns, t_don=60ns
下管:t_doff=110ns, t_don=55ns
差值:120-55=65ns, 110-60=50ns
取最大值:65ns
加30%裕量:≈85ns
结论:
是的,没有死区时突然关闭PWM确实可能产生瞬间导通,原因包括:
-
开关管延迟时间不对称
-
驱动器响应时间差异
-
寄生参数引起的耦合
-
信号传播路径不同
死区时间 不仅是正常PWM切换时的保护,在紧急关断(BKIN触发)时同样重要,它确保即使在最紧急的故障情况下,关断过程也是安全的。这就是为什么STM32将这两个功能放在同一个寄存器(BDTR)中配置------它们共同构成了完整的硬件级安全保护体系。