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

F280049配置ePWM模块后,使能TBCLKSYNC后,ePWMxA产生一个异常上升沿

在配置F280049的ePWM模块时,按照以下步骤:

1. enable ePWM moudule clocks in the PCLKCRx register

2. set TBCLKSYNC = 0

3. Configure ePWM modules

4. Set TBCLKSYNC = 1

Configure ePWM modules步骤主要包括以下配置:

EPwm5Regs.TBPHS.bit.TBPHS = 0;

EPwm5Regs.TBCTL.all = 0XA012; 

EPwm5Regs.TBCTL.bit.PRDLD = 1;

EPwm5Regs.TBPRD = 500;

EPwm5Regs.CMPCTL.bit.SHDWAMODE = 1;
EPwm5Regs.CMPCTL.bit.SHDWBMODE = 1;

EPwm5Regs.CMPA.bit.CMPA = 1000;
EPwm5Regs.CMPB.bit.CMPB = 1000;

EPwm5Regs.AQCTLA.bit.CAU = 1;
EPwm5Regs.AQCTLA.bit.CAD = 2;

EPwm5Regs.AQCTLB.all = 0x0600;

EPwm5Regs.DBCTL.all = 0x0000;

EPwm5Regs.DBFED.bit.DBFED = 100;
EPwm5Regs.DBRED.bit.DBRED = 100;

然而当执行以下语句

EALLOW;
CpuSysRegs.PCLKCR0.bit.TBCLKSYNC = 1;//20200923:cedar: Enable EPWM timer counter
EDIS;

4.5us之后,ePWM5A对应的GPIO,立马触发了一个上升沿信号。这个上升沿信号不属于设置范围内,应该如何避免这个上升沿信号出现。

后续测试:

将配置语句中的EPwm5Regs.AQCTLA.bit.CAD = 2;注释掉之后,执行TBCLKSYNC = 1后,ePWM5A没有出现上升沿信号。

请问为什么执行TBCLKSYNC = 1瞬间,会触发ePWM5产生一个上升沿信号

Green Deng:

AQCTLA.bit.CAD = 2寄存器的定义:Set: force EPWMxA output high.
可能会强制ePWM5A输出一个高电平

,

user6531244:

执行的顺序是,
1. enable ePWM moudule clocks in the PCLKCRx register

2. set TBCLKSYNC = 0

3. Configure ePWM modulesAQCTLA.bit.CAD = 2;….中间放置了其他代码,执行时间大约2秒
4. Set TBCLKSYNC = 1

5. set GPIO

执行AQCTLA.bit.CAD = 2,ePWM5A没有输出一个高电平。
而是当执行TBCLKSYNC = 1语句后,ePWM5A才输出了一个高电平。

上述是通过在TBCLKSYNC = 1语句后触发一个GPIO,确认ePWM5A输出高电平的时刻。

如果是AQCTLA.bit.CAD = 2强制ePWM5A输出一个高电平,应该是在执行完该语句时,立马强制ePWM5A输出高电平的。

赞(0)
未经允许不得转载:TI中文支持网 » F280049配置ePWM模块后,使能TBCLKSYNC后,ePWMxA产生一个异常上升沿
分享到: 更多 (0)