TI中文支持网
TI专业的中文技术问题搜集分享网站

controlsuite 电机控制例程里面的两相电流采样为什么是顺序采样而不是同步采样?

\
EALLOW; \
SysCtrlRegs.PCLKCR0.bit.ADCENCLK = 1; \
ADC_cal(); \
EDIS; \
\
AdcRegs.ADCTRL3.all = 0x00E0; /* Power up bandgap/reference/ADC circuits*/ \
DELAY_US(ADC_usDELAY); /* Delay before converting ADC channels*/ \
\
AdcRegs.ADCTRL1.bit.ACQ_PS = ACQPS[0]; \
AdcRegs.ADCTRL1.bit.CPS = 1; \
AdcRegs.ADCTRL3.bit.ADCCLKPS = 0; \
AdcRegs.ADCTRL1.bit.SEQ_CASC = 0; /* 0x0 Dual Sequencer Mode, 0x1 Cascaded Mode*/ \
AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 0x0; \
AdcRegs.ADCTRL2.bit.RST_SEQ1 = 0x1; \
AdcRegs.ADCTRL2.bit.RST_SEQ2 = 0x1; \
AdcRegs.ADCTRL2.bit.EPWM_SOCA_SEQ1=0x1; /* enable SOC from EPWMA trigger*/ \
\
\
AdcRegs.ADCCHSELSEQ1.bit.CONV00 = ChSel[0]; \
AdcRegs.ADCCHSELSEQ1.bit.CONV01 = ChSel[1]; \
AdcRegs.ADCCHSELSEQ1.bit.CONV02 = ChSel[2]; \
AdcRegs.ADCCHSELSEQ1.bit.CONV03 = ChSel[3]; \
AdcRegs.ADCCHSELSEQ2.bit.CONV04 = ChSel[4]; \
AdcRegs.ADCCHSELSEQ2.bit.CONV05 = ChSel[5]; \
AdcRegs.ADCCHSELSEQ2.bit.CONV06 = ChSel[6]; \
AdcRegs.ADCCHSELSEQ2.bit.CONV07 = ChSel[7]; \
\
AdcRegs.ADCMAXCONV.bit.MAX_CONV1 = 7; \
EDIS; \
\
/* Set up Event Trigger with CNT_zero enable for Time-base of EPWM1 */ \
EPwm1Regs.ETSEL.bit.SOCAEN = 1; /* Enable SOCA */ \
EPwm1Regs.ETSEL.bit.SOCASEL = 2; /* Enable period event for SOCA */ \
EPwm1Regs.ETPS.bit.SOCAPRD = 1; /* Generate SOCA on the 1st event */ \
EPwm1Regs.ETCLR.bit.SOCA = 1; /* Clear SOCA flag */

上面是例程里面关于AD配置的部分,同步采样应该是ADCTRL3.SMODE_SEL(第0位)配置为1,但看上面的代码,并没有单独对这位进行过配置,只是AdcRegs.ADCTRL3.all = 0x00E0,也就是默认配置为0,顺序采样。这样对吗?按照道理说应该是同步采样,鄙人之前用到stm32,里面特意强调过AB需要同步采样?

望给以解答,谢谢。

Eric Ma:

“上面是例程里面关于AD配置的部分,同步采样应该是ADCTRL3.SMODE_SEL(第0位)配置为1,但看上面的代码,并没有单独对这位进行过配置,只是AdcRegs.ADCTRL3.all = 0x00E0,也就是默认配置为0,顺序采样。这样对吗?按照道理说应该是同步采样,鄙人之前用到stm32,里面特意强调过AB需要同步采样?”

ERIC:

那是因为TI的C2000 ADC是实时采样,速度非常快,数据传输到C2000内核也很快,因此顺序采样也没有问题。

赞(0)
未经允许不得转载:TI中文支持网 » controlsuite 电机控制例程里面的两相电流采样为什么是顺序采样而不是同步采样?
分享到: 更多 (0)