本应用笔记提出了一种方法用来改善stellaris微处理器片上adc的精度。ADC的绝对精度是受器件本身的inherent gain与偏置错误。以本文所提供的方法可以有效提高片上adc采集的精度。
ADC错误的相关定义 下列表达式描述了ADC在理想状态下的转换结果: Y = x * mi;各参数意义:x = 输入数值,由以下公式计算而得出:input voltage * 1023/Vref(针对10位精度的adc);input voltage * 4095 / Vref(针对12位精度的adc)
Y = 输出数值; Mi = 理论增益值 = 1.0000; Vref = ADC参考电压,单位 伏特 Adc采样结果实际如下所示: Y = x * ma + b 各参数定义如下: Ma = 实际增益(包含参考电压的精度偏差); B = 实际偏差补偿(与输入零电压时得出的值相关); 图1所示实际偏差与理想值的曲线图 Stellaris微处理器有以下几种系列:Sandstorm, Fury, DustDevil, Tempest, and Firestorm。访问以下网站可以了解各系列具体性能: l Sandstorm - www.ti.com/sandstorm l Fury - www.ti.com/fury l DustDevil - www.ti.com/dustdevil l Tempest - www.ti.com/tempest l Firestorm - www.ti.com/firestorm 在sandstorm, fury, DustDevil系列微处理的片上10位ADC 此系列MCU的误差如下: l 增益误差: ±3 LSB l 失调误差:+6 LSB ADC参考电压可以配置为如下两个: l 内部参考电压 3.0v,精度 ±2.5%; l 外部参考电压,精度以外部参考电压源为准。 本应用笔记以使用内部3.0v参考电压设计为例进行讲解,同样也适用于外部参考电源的设计。 将增益误差转换为精度百分比的公式: 1 LSB = 3.0 V / 1000 V/count = 0.002930; 即增益误差为 ±0.008789 = 0.293% * 3V 片上参考电压精度为 ±2.5%。参考电压误差与增益误差影响着实际增益误差。因此,ma与b的值如下所示: l 0.97207 < ma < 1.02793 l 0 < b < 6 其余系列的微处理器片ADC相类似,计算ma 与 b的值如下所示: Tempest系列10位ADC: 增益误差: ±30 LSB;偏置误差:±20 LSB; 0.97027 < ma < 1.02793, -20 < b < 20; Firestorm系列12位ADC: 增益误差: ±100 LSB;偏置误差:±40 LSB; 0.9756 <ma < 1.0244; -40 < b < 40; Firestorm系列工作在10位ADC模式: 增益误差: ±25 LSB;偏置误差:±10 LSB; 0.9756 < ma < 1.0244; -10 < b < 10; 误差的影响 由于ADC误差影响着整个控制系统的误差。充分理解这些误差的成因可以使我们在设计系统时对其进行有效的补偿。下表列举了输入参考电压为内部3.0v时,输入与输出误差范围的测试结果。 最后一行为器件的测量可选范围。在下一章“校准”章节里,我们对增益误差与偏置误差进行有效补偿,补偿后,表1所示的ADC的有效精度会提高到9.956位。每mV/count会从2.9326减小到2.9167,相当于采样精度只减少了0.5%,而表2所示的精度会提高到9.896位,mV/count会从2.9326增加到2.9353,精度只减少了0.09%。表3有效精度会提高到11.935位,每mV/count会从0.7326减小到0.7340,相当于采样精度只减少了0.19%。表4有效精度会提高到9.937位,每mV/count会从2.9326减小到2.9345,相当于采样精度只减少了0.06%。 下一章:校准。敬请期待……