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.

TMS320F280049C: EPWM ZERO和PRD产生 SOCA 触发ADC采样,采样的时间并不是PWM的二倍频

Part Number: TMS320F280049C

EPWM6 配置为UPDAOWM 模式,频率为50KHZ,在ZERO和PRD 触发ADC 采样。ADC配置中断。

在ADC的中断中,设置GPIO高低来测试进入ADC中断的时间和执行时间。

理论上说,一个采样周期应该会触发两次ADC采样,并且周期回事PWM周期的两倍。

程序配置如下:

//SOC configuration
EPWM_setADCTriggerSource(EPWM6_BASE, EPWM_SOC_A, EPWM_SOC_TBCTR_ZERO_OR_PERIOD);
//
// Generate pulse on 1st even
//
EPWM_setADCTriggerEventPrescale(EPWM6_BASE, EPWM_SOC_A, DCDC_PWMtiggerADC_RATIO);
//
// Enable SOC on A group
//
EPWM_enableADCTrigger(EPWM6_BASE, EPWM_SOC_A);

ADC配置如下:

ADC_setupSOC(ADCC_BASE, ADC_SOC_NUMBER0, ADC_TRIGGER_EPWM6_SOCA,ADC_CH_ADCIN0, 7); //SOCA0=A0 
ADC_setupSOC(ADCC_BASE, ADC_SOC_NUMBER1, ADC_TRIGGER_EPWM6_SOCA,ADC_CH_ADCIN1, 7); //SOCA1=A1 
ADC_setupSOC(ADCC_BASE, ADC_SOC_NUMBER2, ADC_TRIGGER_EPWM6_SOCA,ADC_CH_ADCIN2, 7); //SOCA2=A2 
ADC_setupSOC(ADCC_BASE, ADC_SOC_NUMBER3, ADC_TRIGGER_EPWM6_SOCA,ADC_CH_ADCIN1, 7); //SOCA3=A1

ADC_setInterruptSource(ADCC_BASE, ADC_INT_NUMBER1, ADC_SOC_NUMBER3);
ADC_enableContinuousMode(ADCC_BASE,ADC_INT_NUMBER1);
ADC_enableInterrupt(ADCC_BASE, ADC_INT_NUMBER1);
ADC_clearInterruptStatus(ADCC_BASE, ADC_INT_NUMBER1);

 但是实际波形如下图所示:

从波形上看,执行频率确实是50KHZ,但是第二次ADC触发时间应该是10us处。现在是大约4us又重新触发了ADC中断。

有哪位大神遇到过同类似的情况吗。