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

TMS320F28377D: 外部信号输入作为28377的PWM同步信号

Part Number:TMS320F28377D

因为项目要求,28377需要以外部CPLD产生的信号作为PWM1的同步信号输入源

所以配置GPIO85为X-Bar作为EXTSYNCIN1

但是实际我用信号源产生脉冲给GPIO85,PWM1并未能够与之同步

下面是我的一些配置

EALLOW;//配置GPIO85为X-BAR的EXTSYNCIN1
GpiCtrlRegs.GPCPUD.bit.GPIO85 = 1; // Enable pullup
GpioCtrlRegs.GPCQSEL2.bit.GPIO85 = 3; //
GpioCtrlRegs.GPCCSEL3.bit.GPIO85 = 0;
GpioCtrlRegs.GPCGMUX2.bit.GPIO85 = 0; // Set Group Mux
GpioCtrlRegs.GPCMUX2.bit.GPIO85 = 0; // GPIO

InputXbarRegs.INPUT5SELECT = 85; // To

EDIS;

EALLOW;//配置SYNCSELECT寄存器(实际应该是没作用的)
SyncSocRegs.SYNCSELECT.bit.EPWM4SYNCIN = 5; // EPWM1SYNCOUT selected
SyncSocRegs.SYNCSELECT.bit.EPWM7SYNCIN = 5; // EPWM1SYNCOUT selected
SyncSocRegs.SYNCSELECT.bit.EPWM10SYNCIN = 5; // EPWM1SYNCOUT selected
SyncSocRegs.SYNCSELECT.bit.SYNCOUT = 0;
EDIS;

EALLOW;//关TBCLK
CpuSysRegs.PCLKCR0.bit.TBCLKSYNC = 0;
EDIS;

//配置PWM1的TB模块

EPwm1Regs.TBPRD = EPWM1_TIMER_TBPRD; // Set timer period 801 TBCLKs
EPwm1Regs.TBPHS.bit.TBPHS = 0x0000; // Phase is 0
EPwm1Regs.TBCTR = 0x0000;

EPwm1Regs.TBCTL.bit.FREE_SOFT = 3;
EPwm1Regs.TBCTL.bit.PHSDIR = 1;
EPwm1Regs.TBCTL.bit.PHSEN = 1;
EPwm1Regs.TBCTL.bit.SYNCOSEL = 0;
EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; // Count up and down
EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; // Clock ratio to SYSCLKOUT
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1;

EALLOW;//开TBCLK
CpuSysRegs.PCLKCR0.bit.TBCLKSYNC = 1;
EDIS;

下图红色为PWM1A,蓝色为同步信号,可见PWM1未能与EXTSYNCIN同步

疑惑:1.外部同步信号输入是否有脉宽或者频率的要求?用信号源产生的信号是不是不符合要求?

         2.28377的SYNCSELECT寄存器只有PMW4/7/10的输入可以配置为EXTSYNCIN1,而没有PWM1,这样有什么影响么;而280049等芯片是可以将SYNCSELECT寄存器PWM1配置为EXTSYNCIN1的

         3.X-Bar和PWM1的TB模块是否配置正常?

Yale Li:

请先看一下这几个帖子:

TMS320F280041: PWM模块间同步问题 – C2000Tm︎ 微控制器论坛 – C2000 微控制器 – E2ETm 设计支持

TMS320F280025C: ECAP怎么和EPWM同步 – C2000Tm︎ 微控制器论坛 – C2000 微控制器 – E2ETm 设计支持

TMS320F280025C: 选择EXTSYNCIN1作为外部同步源延时问题 – C2000Tm︎ 微控制器论坛 – C2000 微控制器 – E2ETm 设计支持

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F28377D: 外部信号输入作为28377的PWM同步信号
分享到: 更多 (0)