在 STM32F429(以及所有 STM32F4 “高级定时器”)中,死区时间由 TIMx_BDTR 寄存器的 8 位 “Dead‑Time Generator” 字段 DTG[7:0] 来配置。其计算分三步:
- 计算死区时钟周期 tDTS
TIM1 时钟源为 APB2 定时器时钟(PCLK2)。当 APB2 预分频≠1 时,定时器时钟 = PCLK2×2;否则 = PCLK2。
[例] 若系统时钟 168 MHz,APB2 预分频=2,则 PCLK2=84 MHz,TIM1 时钟 = 84 MHz×2 = 168 MHz,
不过,STM32F429芯片的TIM1时钟频率一般等于其系统频率:180MHz.
2. DTG 字段分区及死区时间公式
DTG[7:5] 共 3 位,根据其值可分为 4 个区间,不同区间死区增量和基数不同:citeturn3search3
区间 | DTG 值范围 | 死区时间 Δ | 备注 |
---|---|---|---|
区间 1 直接模式 | 0x00 … 0x7F | (DT = DTG x t_{DTS}) | 步长 (1 x t_{DTS}) |
区间 2 二倍延展模式 | 0x80 … 0xBF | (DT = (64 + DTG_{[5:0]}) x 2t_{DTS}) | 步长 (2 x t_{DTS}) |
区间 3 八倍延展模式 | 0xC0 … 0xDF | (DT = (32 + DTG_{[4:0]}) x 8t_{DTS}) | 步长 (8 x t_{DTS}) |
区间 4 十六倍延展模式 | 0xE0 … 0xFF | (DT = (32 + DTG_{[4:0]}) x 16t_{DTS}) | 步长 (16 x t_{DTS}) |
总结:
死区时间 = 区间映射后的 “索引值” × 对应倍数 × (t_{DTS})。
- 先算出定时器底层时钟周期 (t_{DTS})。
- 再由 DTG[7:5] 确定增量倍数和基数偏移,最后乘以 (t_{DTS}) 得到实际死区时间。
这样即可精确控制上、下桥臂在切换瞬间的互补死区,避免对管子造成短路风险。