TI中文支持网
TI专业的中文技术问题搜集分享网站

咨询一下,能否将DSP的EPMWi_A,EPWMi_B输出设置为相差为90度的PWM波?

例如将EPWM1_A和EPWM1_B设置为两路相差为90度的PWM波,用来模拟编码器的信号。

如果用EPWM1_A和EPWM2_A来做,很容易实现,设置EPWM1和EPMW2的相差即可,但是这样要求将EPWM1模块和EPWM2的频率设置为一样,这样一个需求就占用了EPWM1_A,EPWM1_B,EPWM2_A,EPWM2_B四个端口。

因此如果能用一个EPWM1能搞定最好。

我用的芯片是TMS320F28035

CHENG LIANG:

同一组PWM用的是相同的TBCTR,不能移相。

例如将EPWM1_A和EPWM1_B设置为两路相差为90度的PWM波,用来模拟编码器的信号。

如果用EPWM1_A和EPWM2_A来做,很容易实现,设置EPWM1和EPMW2的相差即可,但是这样要求将EPWM1模块和EPWM2的频率设置为一样,这样一个需求就占用了EPWM1_A,EPWM1_B,EPWM2_A,EPWM2_B四个端口。

因此如果能用一个EPWM1能搞定最好。

我用的芯片是TMS320F28035

mangui zhang:

别人的分享

我想将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;

 

问题已经解决了,自问自答吧。刚才做试验验证了一下,确实ePWM3和ePWM4不是同一个同步链,像我这样的配置是不会产生相位差的。当我换成ePWM4和ePWM5时,按照上面那样配置,输出就正确了。那么,如何让ePWM3和ePWM4输出同频不同相位的PWM波呢,可以这样,将ePWM1设置成同步信号源,ePWM3和ePWM4设置成接受同步信号,并加载相位寄存器。将ePWM3和ePWM4相位寄存器设置的不同,就可以使得ePWM3和ePWM4输出同频不同相位的PWM波了

例如将EPWM1_A和EPWM1_B设置为两路相差为90度的PWM波,用来模拟编码器的信号。

如果用EPWM1_A和EPWM2_A来做,很容易实现,设置EPWM1和EPMW2的相差即可,但是这样要求将EPWM1模块和EPWM2的频率设置为一样,这样一个需求就占用了EPWM1_A,EPWM1_B,EPWM2_A,EPWM2_B四个端口。

因此如果能用一个EPWM1能搞定最好。

我用的芯片是TMS320F28035

robert liu:

回复 mangui zhang:

是的

例如将EPWM1_A和EPWM1_B设置为两路相差为90度的PWM波,用来模拟编码器的信号。

如果用EPWM1_A和EPWM2_A来做,很容易实现,设置EPWM1和EPMW2的相差即可,但是这样要求将EPWM1模块和EPWM2的频率设置为一样,这样一个需求就占用了EPWM1_A,EPWM1_B,EPWM2_A,EPWM2_B四个端口。

因此如果能用一个EPWM1能搞定最好。

我用的芯片是TMS320F28035

robert liu:

回复 robert liu:

自己回答一下,可以通过Up down计数的方式来实现

TI的例程eqep_pos_speed 就是通过ePWM1A和ePWM1B来模拟产生正交编码信号,从而给eEQP模块来检测的。

赞(0)
未经允许不得转载:TI中文支持网 » 咨询一下,能否将DSP的EPMWi_A,EPWMi_B输出设置为相差为90度的PWM波?
分享到: 更多 (0)