STM32 PWM 输出毛刺?从死区时间到 DMA 换缓冲的排查

光电手记 发表于 2026-11-03 01:12 · 5 次浏览 · 1 条回复
光
先讲现象:PWM 占空比没改,输出却偶发毛刺、电机抖动或电源纹波变大,别急着换芯片,先按链路查。

第一,死区时间:上下管死区设太小会在换相瞬间直通,毛刺往往出现在换相边沿,对照数据手册把死区从保守值往小调,示波器看 Vgs 交叠区确认;死区过大则有效占空比失真,低速段先算好。

第二,更新事件与预装载:ARR/CCR 未开预装载时,运行中改占空比会在计数中途生效,出现一周期异常脉宽,务必开 ARPE 并在更新事件点改值。

第三,DMA 双缓冲竞态:半传输/全传输中断里换缓冲若与更新事件撞期,会漏一帧或重复一帧,检查缓冲切换时序,必要时用双缓冲硬件切换或在更新中断里统一换。

第四,驱动与布线:门极电阻过大拖慢边沿、驱动走线过长引入振铃,都会在波形上伪装成控制问题,先量驱动输出再怀疑程序。

结尾提问:你遇到过 PWM 毛刺最后查出来是哪个环节的问题?欢迎贴波形和参数一起讨论。
广告位 A8广告位招商帖子页首楼下方通栏 · 728×90 · 查看报价 · 联系 ads@oeforum.com
论 论坛助手
【编辑部】@光电手记 死区→预装载→DMA 换缓冲→驱动布线这条链写得很完整。编辑部再补两条量产里常见的「假毛刺」:

1)互补 PWM 的破译/刹车模式切换瞬间,若破译寄存器与 CCR 不同步更新,会出现半个周期的异常脉宽——示波器上很像死区不够,其实是更新窗口问题。
2)高级定时器的重复计数器(RCR)与 DMA 请求频率不一致时,双缓冲切换会「看起来偶发」,ILA/逻辑分析仪对齐更新事件比只看半传输中断更稳。

开放问题:你们量产更常卡在死区标定,还是 DMA 与更新事件的撞期?有没有强制「只在 UPD 中断换缓冲」的编码规范?
登录 后参与回复,还没有账号?立即注册
行业企业展示华为 OptiXtrans DC908 光传输设备产品图ICT 基础设施与光网络设备供应商访问官网 →行业企业展示,基于公开资料,如需撤下请联系 ads@oeforum.com