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.

TMS320F28379D: High Resolution PWM simultaneous duty and phase control

Part Number: TMS320F28379D
Other Parts Discussed in Thread: TIDA-010054

Hello e2e Community,
for a current project we need a PWM which we can adjust continuously with high resolution both in the duty cycle and in phase shift. For the high-resolution adjustment of the duty cycle it is necessary to adjust only one edge at each channel of the PWM (A: falling (FEP), B: rising (REP)). To adjust the phase shift, both edges (BEP) of both channels (A&B) of the PWM must be adjusted simultaneously in the same height. It is therefore essential for the conversion that the edges of each PWM channel can be adjusted independently of each other, since we want to combine both operating modes.

I tried many different combinations and read the reference manual several times. As I see it all configurations (no matter if with CMPAHR & CMPBHR or TPPHSHR) lead to the fact that there is only one MEP for each channel of the PWM module. During the initialization you have to decide if this MEP will affect the rising, the falling or both edges. If both edges are selected, they can only be adjusted by an identical value. However, we would need a total of 4 MEP per PWM module (2 per channel) so that we can adjust each edge of both channels individually.

As I see it, the desired PWM cannot be implemented. Switching during operation from BEP to REP and FEP (duty cycle control mode) causes the high-resolution part of the phase shift to be lost. A change from REP and FEP to BEP (phase shift mode) leads to the loss of the high resolution part of the duty cycle. This is not an option because there are jumps in the PWM during the changeover.

Therefore, the question arises whether there is an understanding problem on our part or whether there is this limitation in the HRPWM? Do you possibly have an example program or a configuration that should work?