This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

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



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

#define EPWM1_TIMER_TBPRD  2000  // Period register

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

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

  • 计数模式为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要好?

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

    PWM_CLK为PWM脉冲频率。

    TBPRD=150M/(2*PWM_CLK)

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

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