☰
STM32 PWM互补输出模式--如果没有死区,突然关闭PWM有产生瞬间导通的可能吗
2026/9/29 6:19:26 网站建设 项目流程

为什么会产生瞬间导通?

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. 电源电流(可能看到尖峰)

可能观察到:电流尖峰,表明有直通发生

工程实践经验:

必须加死区的情况:

  1. 任何H桥/半桥电路

  2. 即使有BKIN保护

  3. 即使PWM频率很低

  4. 即使使用"软关断"技术

死区时间计算参考:

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确实可能产生瞬间导通,原因包括:

  1. 开关管延迟时间不对称

  2. 驱动器响应时间差异

  3. 寄生参数引起的耦合

  4. 信号传播路径不同

死区时间不仅是正常PWM切换时的保护,在紧急关断(BKIN触发)时同样重要,它确保即使在最紧急的故障情况下,关断过程也是安全的。这就是为什么STM32将这两个功能放在同一个寄存器(BDTR)中配置——它们共同构成了完整的硬件级安全保护体系。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询