TI DSP ADC配置说明 F2803x F28035

讲解一下ADC的配置,对新手有点帮助,老手跳过哈。


我们直接上代码看配置:

void Adc_Config(void) {
	EALLOW;
	AdcRegs.ADCCTL1.bit.INTPULSEPOS = 0; //ADC begins conversion,Set Eoc2  ADC interrupt;
						//ADCINT1 trips after AdcResults latch
	AdcRegs.ADCSAMPLEMODE.bit.SIMULEN0 = 1; //ADCINA0 and ADCINB0 Sampling simulatence
	AdcRegs.ADCSOC0CTL.bit.CHSEL = 0; //set SOC0 channel select to ADCINA1,ADCINB1
	AdcRegs.ADCSOC0CTL.bit.TRIGSEL = 5; //Soft Triger ADCSOC0 For Phase A and B Zero Current Detection
	AdcRegs.ADCSOC0CTL.bit.ACQPS = 20; //set SOC0 S/H Window to 7 ADC Clock Cycles, (6 ACQPS plus 1)

	AdcRegs.ADCSAMPLEMODE.bit.SIMULEN2 = 1; 
	AdcRegs.ADCSOC2CTL.bit.CHSEL = 0;
	AdcRegs.ADCSOC2CTL.bit.TRIGSEL = 5;
	AdcRegs.ADCSOC2CTL.bit.ACQPS = 20; 

	AdcRegs.ADCSAMPLEMODE.bit.SIMULEN4 = 1; 
	AdcRegs.ADCSOC4CTL.bit.CHSEL = 1;
	AdcRegs.ADCSOC4CTL.bit.TRIGSEL = 5;
	AdcRegs.ADCSOC4CTL.bit.ACQPS = 10; 

	AdcRegs.INTSEL1N2.bit.INT1E = 1;
	AdcRegs.INTSEL1N2.bit.INT1CONT = 0;
	AdcRegs.INTSEL1N2.bit.INT1SEL = 2;
	EDIS;
}

初学者一头雾水,我几句话给你搞清楚:

1、SOC=Source of convertion,就是转换源,有16个,因为有CHA0~A7,CHB0~B7共16个通道,但不是一一对应的,每个SOC的通道可以随意选。

2、SIMULENx表示是否同步采样,如果是,则对应SOCx同时采CHSELx(Ax,Bx),比如SIMULEN2=1,CHSEL=0,就会同时采A0 B0。

由于SOC的CHSEL可以随意选,那么两个SOC设置同样的CHSEL会怎么样?比如:

SIMULEN0=1;SOC0.CHSEL=0;
SIMULEN2=1;SOC2.CHSEL=0;

很简单,他们都是采样的A0 B0,那么你就会得到2个一样数据,加起来除于2数据就会准一点络。

同步采呢只能是偶数的SOC(0-2-4。。。),奇数(1-3-7。。。)是无效的。

3、ADC结果,也有16个,ADCRESULT0~15。单个采那就单个读,同步采就不是这样了,是挨着读了。比如上面的:

RESULT0=A0,RESULT1=B0;

RESULT2=A0,RESULT3=B0;//(因为都是采的0通道)

那么实际的A0通道可以这样得到:(RESULT0 + RESULT2)/2,牛逼吧?

4、最复杂的同步采说完了,就是其他触发采样了,以后再说!

本文为3YL原创,转载无需联系,但请注明来自labisart.com。

原创文章不容易,如果觉得对你有帮助,就打赏一下吧:

查看打赏记录

发表评论请遵守党国法律!
  • 最新评论
  • 总共0条评论
  • Blog v1.1© 2020 labisart.com 版权所有 | 联系:labartwork@163.com