
1. 前言 STM32G474 中包含了针对数字电源应用的高精度定时器(HRTIMER),客户在应用该定时器 产生 PWM 时,发现 PWM 的输出出现了“丢波”现象,本文对该问题进行分析并给出解决方案。 2. 问题描述 客户使用高精度定时器产生 PWM, 其 PWM 产生的配置如下,Master Timer 的 period event 与 compare 1 event 分别作为 Timer A 与 Timer B 的复位源,Timer A 与 Timer B 产生的 180 度移 相的 PWM 输出,EEV4 作为外部事件来触发 PWM reset, 并且使用 blanking 功能过滤发生在 PWM set 点附近的 EEV4 事件,Timer compare 3 event 用来限制 PWM 的最大占空比,当 PWM 周期内没有 EEV4 发生或是发生的时间点晚于 compare 3 事件时,Timer compare 3 event 将触发 PWM reset。 Master Timer: Interleaved Mode:Half mode Timer A : Up-Down Mode : Up-counting Timer counter reset trigger source : Master timer period event PWM set source : Master timer period event PWM reset source : Timer compare 3 event + EEV4 Timer B : Up-Down Mode : Up-counting Timer counter reset trigger source : Master timer compare 1 event PWM set source : Master timer compare 1 event PWM reset source : Timer compare 3 event + EEV4 EEV4 : Source: EE source 2 – COMP1 Sensitivity:Falling edge Fast Mode:re-sync mode Filtering : Blanking from counter reset/roll-over to compare 1 Latch : Ignored if happens during a blank 使用以上的配置,正常情况下产生的 PWM 如下所示,C1/C2 分别为 TA1 与 TB1,C3 为 EEV4,下降沿触发事件,使 PWM reset。 ![]() 但是当外部事件发生的点接近于 PWM 周期值时,就会出现 “丢波”,如下图所示。 展开其中的部分波形观察如下。 ![]() 完整版请查看:附件 ![]() |