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.
嗯,硬件更换后,需要实现PWM1A与PWM2A同步,将PWM2的周期寄存器和占空比比较寄存器与PWM2相同(与下图的配置有不同,禁用了死区),上机不改变EPwm1Regs.TBPRD的值时(PWM2与PWM1周期寄存器1相等),PWM2脉冲有100ns左右的延迟,可以接受;刚改变周期寄存器的值时,延迟增加,改变多次后延迟就大于1us以上了,示波器查看的脉冲,不知道什么原因。
//PWM启动
EALLOW;
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0; // Stop all the TB clocks
EDIS;
InitEPwm1Example();//PWM1工作方式配置
InitEPwm2Example();//PWM1工作方式配置
EPwm1Regs.TBCTR = 0x0000; //时基计数器值清零
EPwm2Regs.TBCTR = 0x0000; //时基计数器值清零
EALLOW;
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1;
EDIS;
抱歉抱歉,我说错了,不是PWM2B与PWM2A的位置换一下。应该是由原来的:
PWM1A——PWM2A
PWM1B——PWM2B
换成:
PWM1A——PWM2B
PWM2A——PWM1B
这样从模块的角度讲,PWM1A和PWM1B是同一个ePWM模块,而PWM2A和PWM2B也是同一个模块。这样的话就不需要做模块间的同步