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

28377S的ePWM时钟频率问题

我在程序中进行了如下设置:

EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; 
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1;

ePWM1的时钟频率应该是相对于系统主频不分频的。但是测试后发现ePWM的时钟频率不是200MHz而是100MHz,请问这是为什么呢。

Howard Zou:

请问你是如何测试时钟频率的?通过产生一个PWM波然后测量其周期吗?如果是这样,PWM工作在什么模式?

我在程序中进行了如下设置:

EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; 
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1;

ePWM1的时钟频率应该是相对于系统主频不分频的。但是测试后发现ePWM的时钟频率不是200MHz而是100MHz,请问这是为什么呢。

xuan yan:

回复 Howard Zou:

是用这种方式测的频率,用的是递增模式的。

我在程序中进行了如下设置:

EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; 
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1;

ePWM1的时钟频率应该是相对于系统主频不分频的。但是测试后发现ePWM的时钟频率不是200MHz而是100MHz,请问这是为什么呢。

BO LIU18:

回复 xuan yan:

默认是100MHz的,这个377的手册里有写过,epwmclck是sysclk的一半。不过你再仔细查看下手册有一个寄存器可以设置切换到200MHz。

我在程序中进行了如下设置:

EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; 
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1;

ePWM1的时钟频率应该是相对于系统主频不分频的。但是测试后发现ePWM的时钟频率不是200MHz而是100MHz,请问这是为什么呢。

Brian Wang0:

以上两图来自TI官方手册,请注意一下PERCLKDIVSEL.EPWMCLKDIV  这个寄存器,默认情况下会将对系统主频进行分频,应该可以解决您的问题。

手册链接:http://www.ti.com/cn/lit/pdf/spruhm8

我在程序中进行了如下设置:

EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; 
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1;

ePWM1的时钟频率应该是相对于系统主频不分频的。但是测试后发现ePWM的时钟频率不是200MHz而是100MHz,请问这是为什么呢。

qiaodi chen:

我也遇到了这个问题,我的理解是这样的:

首先,通过上图可以知道,EPWM的时钟来自于PLLCLK,那么我们的PLLCLK是多少呢?

如果采用TI给的例程文件(.c和.h以及cmd)的话,会发现_LAUNCHXL_28377S并没有被定义,所以这里会执行else部分的代码(单步测过确实如此)。如果晶振是10M(TILAUNCHPAD口袋版是10M)所以我们的PLLCLK=10M*(20+0)/2=100M。还有如果想调整为200M的话,需要先定义_LAUNCHXL_28377S。希望可以解决你的问题。

赞(0)
未经允许不得转载:TI中文支持网 » 28377S的ePWM时钟频率问题
分享到: 更多 (0)