本人在使用中需要四路APWM,分别用ECAP1,ECAP2,ECAP4,ECAP5做,四路pwm之间又需要移相,用于控制四路boost电路,其中ECAP1和ECAP2,ECAP4和ECAP5移相都没问题,但是ECAP1和ECAP4之间没法移相,出来的波形一直都是同步的。不知道为什么,是不是他们之间没法移相?
下面是我的代码:
ECap1Regs.TSCTR = 0x0;
ECap1Regs.ECCTL2.bit.APWMPOL = 0;
ECap1Regs.ECCTL2.bit.CAP_APWM = 1;
ECap1Regs.ECCTL2.bit.SYNCI_EN = 0;//0; //1 Ecap1 同步信号使能 跟随Epwm1。 0不同步
ECap1Regs.ECCTL2.bit.SYNCO_SEL = 1;
ECap1Regs.ECCTL2.bit.TSCTRSTOP = 1;
ECap2Regs.TSCTR = 0x0;
ECap2Regs.ECCTL2.bit.APWMPOL = 0;
ECap2Regs.ECCTL2.bit.CAP_APWM = 1;
ECap2Regs.ECCTL2.bit.SYNCI_EN = 1; // Eca2 同步信号使能 跟随Ecap1
ECap2Regs.ECCTL2.bit.SYNCO_SEL = 0;
ECap2Regs.ECCTL2.bit.TSCTRSTOP = 1;
ECap4Regs.TSCTR = 0x0;
ECap4Regs.ECCTL2.bit.APWMPOL = 0;
ECap4Regs.ECCTL2.bit.CAP_APWM = 1;
ECap4Regs.ECCTL2.bit.SYNCI_EN = 0;
ECap4Regs.ECCTL2.bit.SYNCO_SEL = 1;
ECap4Regs.ECCTL2.bit.TSCTRSTOP = 1;
ECap5Regs.TSCTR = 0x0;
ECap5Regs.ECCTL2.bit.APWMPOL = 0;
ECap5Regs.ECCTL2.bit.CAP_APWM = 1;
ECap5Regs.ECCTL2.bit.SYNCI_EN = 1;
ECap5Regs.ECCTL2.bit.SYNCO_SEL = 0;
ECap5Regs.ECCTL2.bit.TSCTRSTOP = 1;
//BUCK
ECap1Regs.CAP1 = 12000; //Set period value
ECap1Regs.CTRPHS = 0;
ECap1Regs.CAP2 = 3000; //Set Duty cycle
ECap2Regs.CAP1 = 12000; //Set period value
ECap2Regs.CTRPHS = 6000;
ECap2Regs.CAP2 = 3000; //Set Duty cycle
ECap4Regs.CAP1 = 12000; //Set period value
ECap4Regs.CTRPHS = 3000; /*ECAP4这里设置移相值没有任何变化*/
ECap4Regs.CAP2 = 3000; //Set Duty cycle
ECap5Regs.CAP1 = 12000; //Set period value
ECap5Regs.CTRPHS = 6000;
ECap5Regs.CAP2 = 3000; //Set Duty cycle
