大家好、
客户有问题需要您的帮助:
我想问一下在 ePWM 模块之间实现相移同步后计数增加和减少的问题。
关于这个问题、芯片手册很清楚:对于 PWM 的增加和减少计数模式、同步计数器增加还是减少计数是由 TBCTL->PHSDIR 来决定的、0表示减计数、反之亦然。
现在的问题是、我想使用 EPWM7的计数器过零生成同步信号、以触发 EPWM8的相移操作、因此将 EPWM8配置为如下形式:
EPWM_setTimeBasePeriod (EPWM8_BASE、500);
EPWM_setTimeBaseCounter (EPWM8_BASE、0);
EPWM_setTimeBaseCounterMode (EPWM8_BASE、EPWM_COUNTER_MODE_UP_DOWN);
EPWM_enablePhaseShiftLoad (EPWM8_BASE);
EPWM_setPhaseShift (EPWM8_BASE、300);
EPWM_setCountModeAfterSync (EPWM8_BASE、EPWM_COUNT_MODE_UP_AFTER_SYNC);
ePWM_setSyncOutPulseMode (EPWM8_BASE、EPWM_SYNC_OUT_PULSE_ON_EPWMxSYNCIN);
上述配置应相对简单明了。 但是、在测试时、读取 EPWM8周期寄存器和计数寄存器的数据、如下所示:

如您所见、周期寄存器数据为500、
但计数寄存器中的数据达到870、这超过了周期寄存器中的数据、为什么呢? 在这种情况下、EPWM8的输出始终为低电平,
但是、如果删除增加或减少计数的设置、或修改为减少计数 ePWM_setCountModeAfterSync (EPWM8_BASE、EPWM_COUNT_MODE_DOWN_AFTER_SYNC)、则计数器数据将再次正常、PWM 输出也是正常的
我想问一下造成这种情况的原因是什么?
谢谢。此致、
本
