MATLAB: How to synchronize the PWM signals on a c2833xx DSP

electric_motor_controlpower_conversion_controlpower_electronics_controlTarget Support Package TC2

I have three ePWM blocks in the model and I want to have their output synchronized. Currently they are not.

Best Answer

ePWM modules use different timers, therefore you can see a phase delay between modules. However, the ePWM blocks have synchronization capabilities, as there is a synchronization signal that goes along each PWM block.
Each ePWM block has "sync in" and "sync out" settings. ePWM1 can receive a "sync in" signal from an external pin. Its "sync out" signal can be connected to the ePWM2 "sync in", and likewise, ePWM2's "sync out" signal is connected to the ePWM3 "sync in". By doing this, you can synchronize ePWM 1, 2, and 3.
Attached is a model that demonstrates synchronization. In this model, ePWM2 and ePWM3 are synced based on ePWM1. It was arbitrarily decided that ePWM1 would send a sync signal to ePWM2 every time the counter reaches 0. ePWM2 resets its counter to 0 when receiving the sync signal and passes the sync signal to ePWM3 that resets its counter to 0 as well. This method is very robust as there is a guarantee that the timers will not shift along the way since they are resynchronized at every period of ePWM1.