TMS320F280049: ePWM TBCTR counter dosen't change count direction when it reaches TBPRD.

Part Number: TMS320F280049

The ePWM4 operates in UP-DOWN mode, and count up after synchronization. The ePWM1 SYNCOUT has been chosen as the SYNCIN of ePWM4.

TBPRD=1000(0x3E8), TBPHS=690(0x2B2), EPWM_COUNT_MODE_UP_AFTER_SYNC. However, after synchronization, TBCTR counts up and just exceeds TBPRD without changing direction.

When interrupt is triggered, the ePWM4 TBCTR is 0x2D3(723), which is slightly larger than 690. This indicates a correct synchronization(I think).

Then the TBCTR counts up. It exceeded TBPRD and didn't count down.

When I switched to EPWM_COUNT_MODE_DOWN_AFTER_SYNC, or even disable the synchronization, this phenomenon never happened again.

What could be the cause?

  • 已经收到了您的案例,调查需要些时间,感谢您的耐心等待。

  • TBPRD=1000(0x3E8), TBPHS=690(0x2B2), EPWM_COUNT_MODE_UP_AFTER_SYNC. However, after synchronization, TBCTR counts up and just exceeds TBPRD without changing direction.

    We have not seen this issue before. This should not occur since your TBPHS value is less than your TBPRD value. So the counter should count up then back down to zero.

    Are you loading any other values of TBPHS to the EPWM or is TBPHS fixed? Is your TBPRD fixed?

    If possible can you provide a code snippet of the PWM configuration?