This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F280049C: ePWM phase offset

Part Number: TMS320F280049C


Hello,

I am using the TMS320F280049C. In an application three DC motors are current controlled by PWM (Motor1: PWM1 & PWM4 / Motor2: PWM2 & PWM3 / Motor3: PWM6 & PWM7). I want to run all PWMs synchronously with PWM1 defined as master.

// set PWM1 as master sync
EPWM_setSyncOutPulseMode( obj->pwmHandle[cnt], EPWM_SYNC_OUT_PULSE_ON_COUNTER_ZERO );

The SyncOuts of all PWMs are defined as follows;
EPWM_setSyncOutPulseMode( obj->pwmHandle[cnt], EPWM_SYNC_OUT_PULSE_ON_EPWMxSYNCIN );

the PWMs of motors 2 and 3 should receive a phase offest.

This works perfectly for motor 2, but no phase offset is added (loaded) for motor 3.

Is this caused by the interrupted "PWM chain" as PWM5 is not used, can I loop the sync signal through somehow?

best regards
Thomas

  • Hi Thomas,

    What EPWM sync scheme are you currently trying to use? The TRM notes that "when configuring the sync chain propagation path using the SYNCSEL registers, make sure that the longest path does not exceed four ePWM modules." 

    Did you check that phase shift is enabled for all the EPWMs (TBCTL.PHSEN) and that you are also configuring SYNCSELECT.EPWM4SYNCIN and SYNCSELECT.EPWM7SYNCIN accordingly (as seen Figure 18-7. Time-Base Counter Synchronization Scheme below)?

    Best Regards,

    Allison