ADC资源概况:一个12位转换器,2个采样保持器,可顺序采样或同时采样。16个模拟采样通道。可由内部带隙参考电压或者外部参考电压给ADC供电。不同于其他ADC,TMS320F28035没有排序器,而是通过独立转换器SOC进行转换(Start Of Conversions)。输入量程为0~3.3V。触发源:软件触发、EWPM1~7、GPIOINT2、CPU Timer0/1/2,ADCINT1/2。9个PIE中断。
ADC模块逻辑图
1、SOC
SOC是指单一通道独立转换,配置SOC需注意三点:触发源(启动SOC转换)、转换通道和采样窗口。每个SOC独立配置,互不干扰,同时可选择任意触发源、转换通道和采样窗口大小。
SOC逻辑图
如图,以SOC0为例,ADCSOC0CTLTRIGSEL/ADCINTSOCSEL1.SOC0选择SOC0的触发源,ADCSOCFRC1.SOC0软件强制触发SOC0转换,ADCSOC0CTLCHSEL选择转换通道,ADCSOC0CTLACQPS选择采样窗口大小。
注:ADC转换的结果存放在结果寄存器,结果寄存器一共有16个,SOC0对应结果寄存器1,SOC1对应结果寄存器1,以此类推,而不是依据通道而定。
1)采样保持窗口(时间)
为了满足不同电路的采样电容,需要配置不同的采样保持时间,确保能够快速有效的传输转换正确采样电压。在每个ADCSOCxCTL中,ACQPS(6bit)用来配置采样保持时间。
采样保持时间 = (ACQPS+1)*ADCCLK。注:转换时间需13个ADCCLK。
2)触发源
触发类型有软件触发、CPU定时器0/1/2中断触发、XINT2SOC、EPWM1-7SOCA和SOCB,对应寄存器ADCSOCxCTL,ADCINT1和ADCINT2也可作为触发源,对应寄存器ADCINTSOCSEL1/2。
3)通道选择
在顺序模式下,每个SOC可选择16条通道之一,对应寄存器ADCSOCxCTL的CHESEL位。在同步模式下,CHESEL最高位丢弃,即使用3 bit来选择通道()。
注:ADCINA0与外部参考电压VREFHI共连,若使用外部电压,则ADCINA0则不选择为通道。
2、ONESHOT Single Conversion
顺序模式下,只有在RR(Round Robin) 的下一个有效SOC才会产生SOC。
同步模式下,RR pointer 指向SOCx,产生两个SOC,即SOCx和SOCx+1。
3、ADC 转换优先级
当多个SOC标志位置起时,有两种方式来分配优先级。默认的方式就是轮询环(round robin)。在此模式下,没有那个SOC的优先级高于其他SOC。哪个SOC先触发,取决于round robin porinter(轮询指针RRPOINTER)。RRPOINTER由ADCSOCPRIORITYCTL寄存器配置,指向上一个触发的SOC。因此,拥有最高优先级的SOC的是第(RRPOINTER+1)个SOC。例如,当配置RRPOINTER =5,则SOC6将为下一个触发的SOC,然后是SOC7等。当到SOC15时,又回到SOC0。
在复位(ADCCTL1.RESET)后,RRPOINTER的值为16,因为如果为其他值,那么就表示已经有触发过某个SOC了,此时SOC0拥有最高优先级。
注意:虽说是有优先级,但不必等高优先级触发后才能触发低优先级。
例如:在复位后,最高优先级SOC0,此时SOC7触发,转换结束后,那么SOC8就为最高优先级。又在此时SOC2和SOC12同时触发了,那么由于SOC12在SOC8后面,则SOC12先触发,SOC2先等待随后触发。在SOC2完成后,SOC3就为最高优先级了。
另外,还有一种方式分配优先级。在ADCSOCPRIORITYCTL寄存器中的SOCPRIORITY位可给SOC分配高优先级。对于这些SOC,可以在RR完成某个SOC当前转换后,打断下一个RR中的SOC,先触发具备高优先级的SOC转换,随后再执行RR中的SOC。如果两个高优先级SOC同时触发,那么数字小的SOC获得高优先级。
例如,SOCPRIORITY=4,那么就是SOC0~SOC3获得高优先级,独立于RR,其中SOC0>SOC1>SOC2>SOC3。那么在复位后,RRPOINTER=16,RR中的最高优先级为SOC4。
在复位后,最高优先级SOC0,此时SOC7触发,转换结束后,那么SOC8就为最高优先级。又在此时SOC2和SOC12同时触发了,那么SOC2打断RR,先触发SOC2,SOC12等待,此时RR指针是执行SOC7。SOC2结束后,触发SOC12,那么SOC13在RR中获得高优先级。
4、顺序采样模式
例如,SOC0转换ADCINB3,SOC1转换ADCINA5,依照优先级依次转换。
注:采样时,采样电容会连接到两个引脚,如B通道电容会接INB3和A通道采样电容会接INA3,但只采样SOC所选择的通道。
5、同时采样模式
TMSF28035的ADC有两个采样保持器A和B,所以可以实现两个通道同时采样。SOCx(x为偶数)和SOCy(y为奇数),如SOC0和SOC1,其中一个触发,将带动另外一个触发。(只能配置偶数SOC?)由于只有一个转换器,所以规定A通道的采样引脚先转换。偶数EOCx(结束脉冲)在A通道装换完成后产生,奇数EOCy在B通道转换后产生。(偶数SOC只能采样A通道?)
A通道的采样结果放入偶数结果寄存器,B通道采样结果放入偶数结果寄存器。
注:同时采样模式下CHSEL bit 的值0~7。
例如,ADCSAPPLEMODE.SIMULEN0置位,且SOC0的CHESEL=2(ADCINA2/ADCINB2),触发源选择EPWM1.ADCSOCA。当触发SOC时,ADCINA2和ADCINB2同时采样保持,接着ADCINA2通道转换,EOC0产生于转换后或转换开始时,接着结果放入将结果寄存器0。同理,ADCINB2转换后,EOC1产生,结果放入结果寄存器1。
注:EOC的产生由ADCCTL1.INTPULSEPOS配置。另外,一般配置偶数SOC来实现同时采样,但是也可以配置奇数SOC或者两个都配置(两个触发,其中一个产生时都会进行转换)。
注:优先级规则与顺序模式相同。
6、EOC和中断
16个EOC一一对应16个SOC,ADCCTL1.INTPULSEPOS配置EOC的产生时刻,即转换后或转换开始时。
中断结构图
注:如果当前ADC中断还没有结束,下一个中断ADC中断产生,此时ADCINTOVF中的中断溢出位会置起。
7、上电时序
1、开启ADC时钟——PCLKCR0.ADCENCLK。
2、配置ADCCTL1寄存器中的ADCPWDN、ADCGPWD、ADCREFPWD选择参考电压、供电方式。
3、使能ADCCTL1.ADCENABLE,开启ADC。
注:在完成第2步(ADC上电)后,需1ms延时确保第一次转换正确。
8、ADC校准
任何变换器的固有误差都是零偏移误差和满量程增益误差。TI在提供一个校准函数Device_cal(),参数是在30℃下测试得来,如果用户依据情况可进行更改参数,但非必要一般不建议更改。
注:当系统复位或ADC复位,需进行一次校准。
9、内部/外部参考电压选择
ADC可选择两种参考模式,由ADCCTL1.ADCREFSEL位确定。默认选择内部参考电压:
注:计算得到的小数部分省略;在此模式下,VREFLO必须接地(一些设备默认接地)。
当使用外部参考电压,VREFHI和VREFLO引脚连接到相应电压,电压大小取决于芯片。
注:计算得到的小数省略。
10、ADC时序
顺序模式/转换后EOC
顺序模式/转换开始时EOC
同步模式/转换后EOC
同步模式/转换开始时EOC
11、内部温度传感器
内部通道传感器用于测量芯片温度,可以通过配置ADCCTL1.TEMPCONV位,利用通道A5采样。如果选择温度传感器,外部电路对该引脚不产生影响。
注:最低位LSB代表0℃。