ePWM:当 PERCLKDIVSEL.EPWMCLKDIV = 1 时,ePWM TZFRC 和 TZCLR 事件可能会丢失
详细信息
TZFRC 位用于软件强制跳闸事件,而 TZCLR 位用于清除跳闸区事件。在具有 EPWMCLKDIV 的器件上,如果 PERCLKDIVSEL.EPWMCLKDIV 编程为 1,TZFRC 和 TZCLR 写入可能会丢失,并且输出不受影响。该位默认编程为 1(EPWMCLK 为 PLLSYSCLK/2)。
权变措施
- 配置 EPWMCLK = PLLSYSCLK (PERCLKDIVSEL.EPWMCLKDIV = 0)。
- 如果用户必须配置 EPWMCLK = PLLSYSCLK/2 (PERCLKDIVSEL.EPWMCLKDIV = 1),则使用以下 driverlib 软件序列,选择 EPWMXBAR 的一个保留的多路复用器输入,将其用于该跳闸。
PWMXBAR→ 数字比较 → 跳闸区
- 为 EPWMxA 上的数字比较输出 A 事件 1/2 操作以及 EPWMxB 上的数字比较输出 B 事件 1/2 操作配置跳闸区操作。
- 配置 TRIPIN1-15 的输入信号或 TRIPIN1-15 的“或”组合逻辑。
- EPWM_selectDigitalCompareTripInput()
- 为 DCAEVT1/2 和 DCBEVT1/2 配置数字比较条件。
- EPWM_setTripZoneDigitalCompareEventCondition()
- 将数字比较子模块的 PWMXBAR 输入配置为保留。
- XBAR_selectEpwmXbarInputSource()
应用代码
要触发 PWM,可以使用 XBAR_invertOutputSignal() 反转 PWMXBAR 状态。