ADC_setupSOC(ADCA_BASE, ADC_SOC_NUMBER0, ADC_TRIGGER_EPWM1_SOCA,ADC_CH_ADCIN0, 63);
ADC_setupSOC(ADCA_BASE, ADC_SOC_NUMBER1, ADC_TRIGGER_EPWM1_SOCA,ADC_CH_ADCIN1, 63);
ADC_setupSOC(ADCA_BASE, ADC_SOC_NUMBER2, ADC_TRIGGER_EPWM1_SOCA,ADC_CH_ADCIN2, 63);
ADC_setupSOC(ADCA_BASE, ADC_SOC_NUMBER3, ADC_TRIGGER_EPWM1_SOCA,ADC_CH_ADCIN3, 63);
ADC_setupSOC(ADCA_BASE, ADC_SOC_NUMBER4, ADC_TRIGGER_EPWM1_SOCA,ADC_CH_ADCIN4, 63);
ADC_setupSOC(ADCA_BASE, ADC_SOC_NUMBER5, ADC_TRIGGER_EPWM1_SOCA,ADC_CH_ADCIN5, 63);
ADC_setupSOC(ADCA_BASE, ADC_SOC_NUMBER6, ADC_TRIGGER_EPWM1_SOCA,ADC_CH_ADCIN14, 63);
ADC_setupSOC(ADCA_BASE, ADC_SOC_NUMBER7, ADC_TRIGGER_EPWM1_SOCA,ADC_CH_ADCIN15, 63);
设置PWM 增计数,在计数等于period时触发ADC采样, ADC_setInterruptPulseMode(ADCA_BASE, ADC_PULSE_END_OF_CONV);
采样完成后触发中断,ADC_setInterruptSource(ADCA_BASE, ADC_INT_NUMBER1, ADC_SOC_NUMBER7);实际测试PWM触发ADC采样到进入中断需要7us
ADC_setInterruptSource(ADCA_BASE, ADC_INT_NUMBER1, ADC_SOC_NUMBER0);实际测试PWM触发ADC采样到进入中断需要1us
我的理解是,SOC0-15顺序刷新,所以以ADC_SOC_NUMBER7去触发中断采样的数据时0-7都采集完的,如果是ADC_SOC_NUMBER1去触发,ADC_SOC_NUMBER7可能还没完成数据读取的是上一次的
这样就有个问题就是,pwm触发ADC中断时间超过7us,当开关频率120K以上实际测试pwm开关频率和进入中断频率对不上了,进入中断频率被7us限制了,请问该如何解决
ADC_setInterruptSource(ADCA_BASE, ADC_INT_NUMBER1, ADC_SOC_NUMBER7);
ADC_enableInterrupt(ADCA_BASE, ADC_INT_NUMBER1);
ADC_clearInterruptStatus(ADCA_BASE, ADC_INT_NUMBER1);