想请教一下关于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输出也正常了
想请教下这是什么原因导致的呢?