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位的,如果是的话,那你就超范围了。