我们经常利用嵌入微控制器片内的A/D转换器来实现模数转换,以此来降低系统的成本,但由此又产生了另外的问题,嵌入式模数转换器是否具有所要求的精度,若超出测量范围如何与测量电路进行接口,以及如何减小微控制器的电磁干扰提高嵌入式模数转换器的精度问题。这都要求我们采取不同的措施来提高嵌入式模数转换器的精度。
ADC的精度和分辨率是两个不同的概念。精度是指转换器实际值与理论值之间的偏差;分辨率是指转换器所能分辨的模拟信号的最小变化值。ADC 分辨率的高低取决于位数的多少。一般来讲,分辨率越高,精度也越高,但是影响转换器精度的因素很多,分辨率高的ADC,并不一定具有较高的精度。精度是偏移误差、增益误差、积分线性误差、微分线性误差、温度漂移等综合因素引起的总误差。因量化误差是模拟输入量在量化取整过程中引起的,因此,分辨率直接影响量化误差的大小,量化误差是一种原理性误差,只与分辨率有关,与信号的幅度,采样速率无关,它只能减小而无法完全消除,只能使其控制在一定的范围之内,一般在±1/2LSB范围内。
偏移误差是指实际模数转换曲线中数字0的代码中点与理想转换曲线中数字0的代码中点的差值电压。这一差值电压称作偏移电压,一般以满量程电压值的百分数表示。在一定温度下,多数转换器可以通过对外部电路的调整,使偏移误差减小到接近于零,但当温度变化时,偏移电压又将出现,这主要是由于输入失调电压及温漂造成的。一般来说,温度变化较大时,要补偿这一误差是很困难的。
ADC噪声消除技术
AT90S8535的内外部数字电路会产生电磁干扰,从而影响模拟测量精度。如果要求测量精度较高,则应采取如下技术以减少噪声:
1) AT90S8535的模拟部分及其他的模拟器件在PCB板上要有独立的地线层。模拟地与数字地单点相连;
2) 使模拟信号通路尽量短。使模拟走线在模拟地上通过,并尽量保持远离高速数字通路的走线;
3) AVCC要通过一个RC网络连接到VCC;
4) 利用ADC的噪声消除功能减小来自CPU的噪声;
5) 如果A口的一些引脚作数字输出口,则在ADC转换过程中,这些口不要改变其状态。
3.2 ADC噪声消除功能的实现
ADC可以在CPU空闲模式下进行转换,这一特征使得可以抑制来自CPU的噪声。为了实现这一特性,需采取一下措施:
A) 必须选择单次转换模式,ADC的转换结束中断必须使能;
ADEN=1;ADSC=0;ADFR=0;ADIE=1;
B) 进入空闲模式。一旦CPU停止,则ADC将开始转换;
C) 如果在ADC转换结束之前没有发生其它中断,则ADC中断将唤醒MCU并执行ADC转换结束中断。
微控制器片内A/D转换器由于自身的结构、性能特点,在许多应用中会遇到与独立A/D转换器不同的问题,但大多数嵌入微控制器的A/D器都具有像AT90S8535相似的结构和特点,采取的消噪技术和方法也大致相同,我们需根据具体情况具体分析需采取嵌入A/D还是独立A/D,并根据具体需求采取必要的措施来提高A/D转换器的精度。