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

ePwm相移

C2000的epwm相移的时候,只有在pwm设置为向上向下计数模式么?能不能在设置向上计数模式的情况下使用?

Susan Yang:

可以使用向上模式的,我们也提供的相关的例程,以2837X为例,您可以参考

\C2000Ware_3_01_00_00\driverlib\f2837xd\examples\cpu1\epwm

的 epwm_ex3_synchronization

user6392471:

回复 Susan Yang:

你们有没有epwm关于同步或者相移的资料?

Susan Yang:

回复 user6392471:

基本都包含在了用户指南中,如第1861页:Chapter 15Enhanced Pulse Width Modulator (ePWM)

www.ti.com.cn/…/spruhm8i.pdf

user6392471:

回复 Susan Yang:

void PwmInit(void){ InitEPwm1Gpio(); InitEPwm2Gpio();

SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0; EPwm1Regs.TBPRD = 4000-1; //频率15Khz EPwm1Regs.CMPA.half.CMPA = 2000-1; // set duty 50%

EPwm1Regs.TBPHS.all = 0; EPwm1Regs.TBCTL.all=0; EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP; //向上计数 EPwm1Regs.TBCTL.bit.PHSEN = TB_ENABLE; EPwm1Regs.TBCTL.bit.PRDLD = TB_SHADOW; EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_CTR_ZERO; EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1; EPwm1Regs.TBCTL.bit.FREE_SOFT = 0x11;

EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO; EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;

EPwm1Regs.TBSTS.all=0; EPwm1Regs.TBPHS.half.TBPHS=0;//移相0度 EPwm1Regs.TBCTR=0;

EPwm1Regs.AQCTLA.bit.ZRO = AQ_SET; // PWM toggle high/low EPwm1Regs.AQCTLA.bit.CAU = AQ_CLEAR;

EPwm2Regs.TBPRD = 4000-1; //频率15Khz EPwm2Regs.TBPRDHR=1<<8; EPwm2Regs.CMPA.half.CMPA = 2000-1; // set duty 50% initially

EPwm2Regs.TBPHS.all = 0; EPwm2Regs.TBCTL.all=0; EPwm2Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP; //向上计数 EPwm2Regs.TBCTL.bit.PHSEN = TB_ENABLE; EPwm2Regs.TBCTL.bit.PRDLD = TB_SHADOW; EPwm2Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN; EPwm2Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; EPwm2Regs.TBCTL.bit.CLKDIV = TB_DIV1; EPwm2Regs.TBCTL.bit.FREE_SOFT = 0x11;

EPwm2Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO; EPwm2Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;

EPwm2Regs.TBSTS.all=0; EPwm2Regs.TBPHS.half.TBPHS=500;//相移45度 EPwm2Regs.TBPHS.half.TBPHSHR=0; EPwm2Regs.TBCTR=0;

EPwm2Regs.AQCTLA.bit.ZRO = AQ_SET; // PWM toggle high/low EPwm2Regs.AQCTLA.bit.CAU = AQ_CLEAR; EPwm2Regs.AQCTLB.bit.ZRO = AQ_SET; EPwm2Regs.AQCTLB.bit.CBU = AQ_CLEAR;

EALLOW; SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1; EDIS;}

为什么这个程序的结果是pwm1A的相位比pwm2A的相位滞后45度,按照资料上说,应该是pwm2A比pwm1A滞后45度才对,看图片

上图第二张是datasheet的资料,从资料上看,pwm1A在周期处,也就是计算器为0的时候,产生一个同步信号,当产生同步信号后,pwm2在这个时间点上,相移45度pwm2A开始产生高电平,我的理解是这样,不知道是否理解对,如果理解对的话,为什么实际产生的波形却不是pwm2A滞后pqm1A 45度的相位角呢?那个pwm1A的同步信号在哪里产生的呢?

user6392471:

回复 user6392471:

有答案么?

Susan Yang:

回复 user6392471:

很抱歉,之前漏掉了这个帖子。

请问您使用的是哪款芯片?我们来测试一下您的程序,谢谢

user6392471:

回复 Susan Yang:

TMS320F28035PAGT

赞(0)
未经允许不得转载:TI中文支持网 » ePwm相移
分享到: 更多 (0)