为什么会产生瞬间导通?
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)中配置——它们共同构成了完整的硬件级安全保护体系。