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

F28335的周期TBPRD设置小了,就不能工作,为什么?

EPWM产生移相互补的PWM信号,

#define EPWM1_TIMER_TBPRD  2000  // Period register

设置成2000,可以正常工作,但1000就不可以,这是为什么??

Jason Wu4:

设置为1000时是什么现象,PWM您设定为什么样的工作模式?

EPWM产生移相互补的PWM信号,

#define EPWM1_TIMER_TBPRD  2000  // Period register

设置成2000,可以正常工作,但1000就不可以,这是为什么??

Kaitun Zhang:

回复 Jason Wu4:

计数模式为updown,EPWM1为master,EPWM2位slave,移相90°,分别产生两路互补的PWM波

TBPRD为2000时,可以正常输出波形,频率大概为30多KHz

我本来要产生100KHz的PWM波,TBPRD=750,但TBPRD减小到1500时,正常输出一瞬间,然后就没有输出了的现象。进入ISR_INT的中断(名字有点忘了,好像是这个……),

如果不移相,EPWM1和EPWM2独立工作,EPWM1的频率可以升高到100KHz,但EPWM2频率最高只能升高到30多KHz。EPWM2换成EPWM3,效果一样。

难道EPWM1比其他通道的EPWM要好?

EPWM产生移相互补的PWM信号,

#define EPWM1_TIMER_TBPRD  2000  // Period register

设置成2000,可以正常工作,但1000就不可以,这是为什么??

beidoubushixing:

回复 Kaitun Zhang:

你好,根据你对你的问题的相关描述,我大约可以推出你的PWM模块的时钟分频是1,也就是说是系统时钟150MHz,这样的话你的TBPRD计算公式如下:

PWM_CLK为PWM脉冲频率。

TBPRD=150M/(2*PWM_CLK)

当你的TBPRD=1000时,PWM_CLK为75000,已经大于65535了。  

建议你看一下你的PWM脉冲频率那个变量是不是16位的,如果是的话,那你就超范围了。

赞(0)
未经允许不得转载:TI中文支持网 » F28335的周期TBPRD设置小了,就不能工作,为什么?
分享到: 更多 (0)