求助,请教各位大虾,有关DSP28335同频率不同相位pwm输出问题

2019-07-25 16:48发布

我想将ePWM3和ePWM4作为同频率的PWM波输出,但之前错开一个角度。寄存器配置应该没有问题,但是两个相位还是相同。在网上查找说,因为ePWM3和ePWM4不在同一个同步链。请问各位大虾,是这样的么。我在28335的资料里看到,ePWM同步链方案有三种,其中有两种这两个pwm是在同一同步链的。请问如何配置同步链方式呢
寄存器配置如下:
让EPWM3和EPWM4以相同的频率输出,只是前后相位不同,EPWM3主要设置如下(频率为100Hz)
        EPwm3Regs.TBPRD = 18750;
        EPwm3Regs.TBPHS.half.TBPHS = 0;
        EPwm3Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN;
        EPwm3Regs.TBCTL.bit.PHSEN = TB_DISABLE;
        EPwm3Regs.TBCTL.bit.PRDLD = TB_SHADOW;
        EPwm3Regs.TBCTL.bit.SYNCOSEL =TB_CTR_ZERO;

        EPwm3Regs.TBCTL.bit.HSPCLKDIV = 2;
        EPwm3Regs.TBCTL.bit.CLKDIV = 2;   

        EPwm3Regs.CMPA.half.CMPA = 12500;
        EPwm3Regs.CMPB = 6250;
EPWM4的主要设置如下:
        EPwm4Regs.TBPRD = 18750;
        EPwm4Regs.TBPHS.half.TBPHS = 12500;                 
        EPwm4Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN;
        EPwm4Regs.TBCTL.bit.PHSEN = TB_ENABLE;               //使能PHASE寄存器
        EPwm4Regs.TBCTL.bit.PRDLD = TB_SHADOW;
        EPwm4Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;

        EPwm4Regs.CMPA.half.CMPA = 12500;
        EPwm4Regs.CMPB = 6250;
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
shanhaijing
1楼-- · 2019-07-25 22:17
问题已经解决了,自问自答吧。刚才做试验验证了一下,确实ePWM3和ePWM4不是同一个同步链,像我这样的配置是不会产生相位差的。当我换成ePWM4和ePWM5时,按照上面那样配置,输出就正确了。那么,如何让ePWM3和ePWM4输出同频不同相位的PWM波呢,可以这样,将ePWM1设置成同步信号源,ePWM3和ePWM4设置成接受同步信号,并加载相位寄存器。将ePWM3和ePWM4相位寄存器设置的不同,就可以使得ePWM3和ePWM4输出同频不同相位的PWM波了
zhangmangui
2楼-- · 2019-07-26 02:36
shanhaijing 发表于 2013-7-30 10:04
问题已经解决了,自问自答吧。刚才做试验验证了一下,确实ePWM3和ePWM4不是同一个同步链,像我这样的配置是 ...

好样的  就算给别人学习机会
threetigher
3楼-- · 2019-07-26 04:11
感谢楼主分享!
九咪日光
4楼-- · 2019-07-26 06:53
 精彩回答 2  元偷偷看……
STARshc01
5楼-- · 2019-07-26 08:04
我再28027上成功试验了
i1mcu
6楼-- · 2019-07-26 13:18
谢谢经验分享的

一周热门 更多>