Part Number:TMS320F28377D
您好,TI:
我现在在配置PWM1~PWM6的输出,其中PWM1和PWM2是协同工作100kHz,PWM3 PWM4 PWM5 PWM6协同工作200kHz,我该如何配置它们的同步信号呢?
目前我的配置是,PWM1和PWM2的波形周期是PWM3 PWM4 PWM5 PWM6的波形周期的两倍,即频率的两倍关系。
PWM1在计数器为零时输出同步信号 EPWM_setSyncOutPulseMode(PWM1,EPWM_SYNC_OUT_PULSE_ON_COUNTER_ZERO);
其它通道在EPWM_SYNC_OUT_PULSE_ON_SOFTWARE时输出同步信号,如EPWM_setSyncOutPulseMode(PWM2,EPWM_SYNC_OUT_PULSE_ON_SOFTWARE);
根据文档手册《 Figure 15-7. Time-Base Counter Synchronization Scheme》内容,我将PWM4的同步信号设置为PWM1,然后依次传给PWM5 PWM6。
PWM1和PWM2的输出电平切换跟随CMPA,如EPWM_setActionQualifierAction(PWM1, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_HIGH,
EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);
PWM3和PWM4输出电平切换跟随CMPA,如 EPWM_setActionQualifierAction(PWM3, EPWM_AQ_OUTPUT_A ,
EPWM_AQ_OUTPUT_HIGH, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);
PWM5输出电平切换跟随CMPB和EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD ,如EPWM_setActionQualifierAction(PWM6, EPWM_AQ_OUTPUT_A ,
EPWM_AQ_OUTPUT_HIGH, EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD );
PWM6输出电平切换跟随CMPA和EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO ,如EPWM_setActionQualifierAction(PWM6, EPWM_AQ_OUTPUT_A ,
EPWM_AQ_OUTPUT_HIGH, EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO );
如上设置后,输出波形异常。
当我将6个PWM输出配置为同频率时,输出都是正常的,但是PWM1 PWM2和PWM3 PWM4 PWM5 PWM6频率是两倍关系时,输出异常。
Green Deng:
你好,说实话这描述看得我有点晕。
不过有一点,PWM1是同步信号主输出,也就是说其他的pwm都是根据PWM1同步的,那你是怎么设置使PWM1、2的频率是PWM3456的2倍的?
,
bin Hon:
PWM1和PWM2协同工作在100kHz,PWM3 PWM4 PWM5 PWM6协同工作在200kHz。6个通道的同步信号都来自PWM1,PWM1计数器等于零时,输出同步信号。PWM2~6相移2。
频率配置如下:
EPWM_setTimeBasePeriod(PWM1_BASE,period_ticks*2);
EPWM_setTimeBasePeriod(PWM3_BASE,period_ticks);
,
bin Hon:
现在是只有PWM5B和PWM6A是异常的,它两是同信号。它两的输出高电平条件是,当timer base counter计数器为零时输出高电平,当计数器等于CMPA时,切换为低电平。
,
Green Deng:
奥奥,没看仔细题目,理解错了。
这样的话可能跟你的同步源有关。因为PWM1~4的同步源都是PWM1,但是PWM5/6的同步源则是需要PWM4提供的,不能由PWM1直接提供。你可以试着更改一下PWM5/6的同步源再测试一下。