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.

28335六路PWM都需要移相,请问这个功能如何实现?

现在需要设计一个比较复杂的电源,两个模块并联,使用PWM1,2,3 为一路控制,PWM1和PWM2固定相位180度,PWM3相对于PWM1作移相控制,希望是+-180度调节,目前好像只能实现PWM3滞后PWM1 0-360度,需要超前的话如何设置呢?

第二个模块用PWM4,5,6控制,必须实现交错并联,PWM4相对于PWM1固定移相90度,PWM5相对于PWM4固定移相180度,这都可以实现,那么同样的问题也来了,PWM6相对于PWM4移相+-180度,如何实现昵?因为都用PWM1作为统一时基,PWM6超前PWM4 90度或滞后270度都可以实现,

期待专家解答!

  • 或者说有没有什么方法,在PWM4的相位设置为0的情况下,让PWM4滞后PWM1 90度?使得PWM5,和PWM6就相对于PWM4产生各种相位。

    换句话说:PWM1和PWM4两个PWM模块能否在没有外部硬件同步信号的情况下,都设置成TBCTL.bit.SYNCOSEL =  TB_CTR_ZERO,却又可以实现

    PWM4滞后PWM1 90度?PWM1设置相位好像没什么用。

    想实现的参数功能如下:

    EPwm1Regs.BCTL.bit.SYNCOSEL =  TB_CTR_ZERO;

    EPwm2Regs.BCTL.bit.SYNCOSEL =  TB_SYNC_IN;

    EPwm3Regs.BCTL.bit.SYNCOSEL =  TB_SYNC_IN;

    EPwm4Regs.BCTL.bit.SYNCOSEL =  TB_SYNC_IN;

    EPwm5Regs.BCTL.bit.SYNCOSEL =  TB_SYNC_IN;

    EPwm6Regs.BCTL.bit.SYNCOSEL =  TB_SYNC_IN;

    EPwm1Regs.TBPHS.half.TBPHS=0;
    EPwm2Regs.TBPHS.half.TBPHS=PWM_PRD/2;
    EPwm3Regs.TBPHS.half.TBPHS=0;(这个值希望是+PWM_PRD/2 到 -PWM_PRD/2,但不可能为负值)

    EPwm4Regs.TBPHS.half.TBPHS=PWM_PRD/4;
    EPwm5Regs.TBPHS.half.TBPHS=PWM_PRD/2+PWM_PRD/4;;
    EPwm6Regs.TBPHS.half.TBPHS=(PWM_PRD/4)+PHS;  (PHS希望是+PWM_PRD/2 到 -PWM_PRD/2,但不可能为负值)