用 STM32 定时器中心对齐 PWM + 死区插入实现无刷电机互补输出的参数推导与实测波形对比

· 行业用户 · 15 浏览

回答(4)

推荐使用STM32CubeMX配置定时器,自动计算ARR和PSC,并生成死区代码,减少手动推导错误。
STM32玩家 · 2026-10-27
中心对齐模式可减少谐波,但死区会导致输出电压畸变,实测时注意观察电流过零点的波形畸变。
嵌入式小刘 · 2026-10-27
死区时间计算务必参考参考手册RM0008的DTG编码表,不同系列公式有差异,建议用CubeMX生成后实测校准。
电机控制老张 · 2026-10-27
中心对齐PWM模式下,定时器计数从0到ARR再回到0,载波频率f_pwm = f_clk / (2 * (ARR+1) * (PSC+1))。死区时间由DTG[7:0]配置,典型公式:DT = DTG[7:5]≠0时,DT = (64 + DTG[4:0]) * t_dtg,其中t_dtg = 1/f_clk(若时钟分频为1)。互补输出需使能CCER的CCxE和CCxNE,并设置BDTR的MOE和DTG。实测时用示波器抓取互补波形,注意死区是否对称、上升沿延迟。建议先设置ARR=8399,PSC=0,f_clk=168MHz,则f_pwm=10kHz,死区设为1us(DTG=0x18,对应(64+24)*1/168MHz≈0.52us?需查手册确认)。实测波形对比:中心对齐时PWM边沿对齐,死区插入后互补信号在切换点有延迟,需确保死区大于MOSFET开关时间。
mcuku 阿沐 · 2026-10-27