单片机PWM为何抖?死区同步怎么配?
PWM 波形偶尔抖一下,后级电机或电源环路就可能把它放大成噪声和发热。单片机定时器虽然能自动翻转引脚,但更新时刻和死区配置不对,输出并不会天然稳定。
定时器更新时刻首先影响占空比是否在周期边界生效。很多外设提供影子寄存器,软件写入的新占空比要等更新事件才装载;若关闭影子机制,写寄存器刚好落在计数中途,就可能让当前周期被截短或拉长。控制算法若在不同任务时刻写 PWM,而没有和定时器更新对齐,波形会出现随机周期抖动。对三相电机、同步采样电源或调光系统,这种抖动不仅改变平均占空比,还会把采样点推离预期相位。
更可靠的方式是让计算、写入和装载形成固定节拍。ADC 由定时器触发,在电流纹波较低的窗口采样;控制律在转换完成后计算;新 PWM 值写入影子寄存器,统一在下一个周期或半周期更新。若使用 DMA 批量更新,也要确认缓冲切换与更新事件一致,避免某一路已换新值,另一路仍停留在旧值。单片机片上定时器功能很多,但只有把这些触发关系串成闭环,硬件自动化才会减少抖动,而不是制造更隐蔽的相位错位。多路互补输出还要确认预装载同时生效,否则三相之间会出现一个周期的错拍。
死区时间解决的是互补开关不能同时导通的问题。死区太短,驱动传播延迟、MOS 栅极电荷和米勒平台会让上下管出现交叉导通;死区太长,电流会更多走体二极管,带来额外压降、反恢复损耗和输出畸变。这个最优窗口会随温度、驱动电压、器件批次和负载电流变化而移动,不能只按室温空载波形定一个漂亮数值。低占空比或高占空比边界下,死区还可能吞掉有效脉冲,使控制器以为给了指令,功率级却没有真正输出。
配死区时要把单片机输出、隔离驱动和功率器件当成一条时序链。先量驱动输入到门极实际翻转的延迟,再看开关节点和电流零交越,最后确认最坏温度下不会重叠导通。若需要精细控制,可以用互补输出的独立延迟或自适应驱动,但仍要防止噪声把检测点误判。对电机控制,还应把死区补偿加入调制算法,否则低速小电流时转矩纹波会很明显。母线电压越高,开关沿越陡,测量探头和接地方式也越容易把真实死区看错。
验证 PWM 抖动不能只看单通道占空比。要同时观察定时器更新信号、ADC 触发点、三相输出和门极波形,并在最高中断负载、最低母线电压和最高温下复测。若抖动随软件负载变化,优先查装载时序;若发热随死区改变敏感,则要回到驱动延迟和器件开关过程。对闭环系统,还要看采样点是否避开开关尖峰,因为采样相位错了会让控制器把噪声当成真实电流修正。负载突变时也要复测,确认更新事件不会被保护逻辑临时推迟或跳过周期。
所以,PWM 质量取决于时间关系是否闭合。让占空比只在规定边界更新,再让死区覆盖真实开关延迟,输出才会稳而不互相硬撞。





