Hi Champs,
My customer use F280049M and test EPWM function. When he enable global load, TBPRD update is one cycle delay than disable global load function.
Test condition
1. First PWM period is 20us, EPWM1A turn off /EPWM1B turn on
2. Second PWM output period is 50us, EPWM1A&EPWM1A turn off
3. Third PWM output period is 5us,10us alternately, EPWM1A/EPWM1B output is 50% duty. complementary output
Test procedure
[Global Reload disable/Local reload] :
Set PWM1 interrupt triggered when TBCTR=0 and local reload TBPRD in ISR.
PWM register setting in background loop :GLDCTL[GLD] = 0, TBCTL[PRDLD] = 0, TBCTL2[PRDLDSYNC] = 0, AQSFRC[RLDCSF] = 0
Test waveform (CH2:EPWM1A, CH3:EPWM1B, CH4:EPWM1 interrupt signal)
[Global Reload enable]
Set PWM1 interrupt triggered when TBCTR=0 and global reload TBPRD in ISR.
PWM setting in back loop: GLDCTL[GLD] = 1, GLDCTL[GLDMODE] = 0, GLDCTL[GLDPRD] = 1, GLDCFG[TBPRD_TBPRDHR] = 1, GLDCFG[AQCSFRC] = 1,
TBCTL[PRDLD] = 0, TBCTL2[PRDLDSYNC] = 0, AQSFRC[RLDCSF] = 0
it looks like TBPRD didn't update on time, but AQCSFRC can be updated on time.
Test waveform:
Could you please tell me does any register setting wrong to cause this issue ? Or do you have any suggestion ? Thank you!

