AN2834
应用笔记
如何在 STM32F10xxx 上
得到最佳的 ADC 精度
前言
STM32F10xxx微控制器产品系列,内置最多3个先进的12位模拟/数字转换模块(ADC),转换时
间最快为1μs,这个ADC模块还具有自校验功能,能够在环境条件变化时提高转换精度。
在需要模拟/数字转换的应用中,ADC的精度影响到整个系统的质量和效率。为了能够达到应有
的精度,用户需要了解ADC误差是如何产生的和影响它的参数。
转换精度不是仅仅依赖于ADC模块的性能和功能,它与该模块周边应用环境的设计密切相关。
本文旨在帮助用户了解ADC误差的产生,以及如何提高ADC的精度,包含以下2个部分:
● 介绍了与ADC设计相关的,诸如外部硬件设计参数,和不同类型的ADC误差来源。
● 提出一些设计上的建议,和如何在硬件方面减小误差的方法。
译注:
本译文的英文版下载地址为:
http://www.st.com/stonline/products/literature/an/15067.pdf
参照2008年11月 AN2834 英文第1版
本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本
目录 如何在STM32F10xxx上得到最佳的ADC精度
目录
1 ADC误差的种类 3
1.1 ADC模块自身相关的误差 3
1.1.1 偏移误差 3
1.1.2 增益误差 4
1.1.3 微分线性误差 5
1.1.4 积分线性误差 6
1.1.5 总未调整误差 6
1.2 与环境相关的ADC误差 7
1.2.1 电源噪声 7
1.2.2 电源稳压 7
1.2.3 模拟输入信号的噪声 7
1.2.4 ADC的动态范围与最大输入信号幅度严重不匹配 7
1.2.5 模拟信号源阻抗的影响 8
1.2.6 信号源的容抗与PCB分布电容的影响 8
1.2.7 注入电流的影响 9
1.2.8 温度的影响 9
1.2.9 I/O引脚间的串扰 9
1.2.10 EMI导致的噪声 10
2 如何得到最佳的ADC精度 11
2.1 减小与ADC模块相关的ADC误差的建议 11
2.2 如何减小与外部环境相关的ADC误差 11
2.2.1 减小电源噪声 11
2.2.2 电源稳压的建议 12
2.2.3 消除模拟输入信号的噪声 12
2.2.4 将最大的信号幅度与ADC动态范围匹配 13
2.2.5 模拟信号源的阻抗计算 14
2.2.6 信号源频率条件与源电容和分布电容的关系 14
2.2.7 温度效应补偿 15
2.2.8 注入电流最小化 15
2.2.9 减小I/O脚串扰 15
2.2.10 降低EMI导致的噪声 16
2.2.11 PCB的设计建议 16
2.2.12 元器件的摆放与布线 18
3 结论 19
2/19
参照2008年11月 AN2834 英文第1版
本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本
AN2834 ADC误差的种类
1 ADC误差的种类
1.1 ADC模块自身相关的误差
在STM32F10xxx的数据手册中,给出了不同类型的ADC精度误差数值。通常,精度误差是以
LSB为单位表示。电压的分辨率与参考电压相关。电压误差是按照LSB的倍数计算:
1 LSB = V
1.1.1 偏移误差
这是定义为从第一次实际的转换至第一次理想的转换之间的偏差。当ADC模块的数字输出从0变
为1的时刻,发生了第一次转换。理想情况下,当模拟输入信号介于0.5 LSB至1.5 LSB表达的范
围之内时,数字输出应该为1;即理想情况下,第一次转换应该发生在输入信号为0.5 LSB时。
偏移误差以E
例子说明
对于STM32F10xxx的ADC模块,最小的可检测到的电压增量变化,按LSB表示为:
1 LSB = V
如果V
REF+
而实际上,这时ADC模块的读数可能仍然为0。如果在输入电压达到550μV时,才能得到数字输
出1,则:
偏移误差E
E
E
当输入的模拟电压大于0.5 LSB产生第一次的转换,则偏移误差是正值。下图显示了正的偏移误
差:
图1 正的偏移误差
标注。
O
=3.3V,理想情况下输入402.8μV(0.5 LSB = 0.5 x 805.6μV)时,产生数字输出1。然
= 550μV - 402.8μV = 141.2μV
O
= 141.2μV / 805.6μV = 0.17 LSB
O
/ 212 或 V
REF+
/4096 (或对于没有V
REF+
= 实际的转换 - 理想的转换
O
DDA
/ 212
REF+
管脚的产品:V
DDA
/4096)
当输入的模拟电压小于0.5 LSB产生第一次的转换,则偏移误差是负值。下图显示了负的偏移误
差。
如果输入的模拟电压V
= VSSA并且ADC产生了一个非0的数字输出,则偏移误差是负值,即
AIN
一个负电压产生了第一次的转换。
3/19
参照2008年11月 AN2834 英文第1版
本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本
AN2834 ADC误差的种类
图2 负的偏移误差
1.1.2 增益误差
增益误差定义为最后一次实际转换与最后一次理想转换之间的偏差。增益误差以EG标注。
最后一次实际转换是从FFEh至FFFh的变换。理想情况下,当模拟输入电压等于V
时产生从FFEh至 FFFh 的变换,因此对于V
= 3.3V的情况,最后一次理想转换应该在
REF+
3.299597V。
如果ADC数字输出为FFFh时,V
AIN
< V
– 0.5LSB,则增益误差为负值。
REF+
例子说明
增益误差EG = 最后一次实际转换 – 最后一次理想转换
如果V
E
E
E
如果在V
V
REF+
图3 正的增益误差
= 3.3V并且V
REF+
= 3.298435 V – 3.299597 V
G
= –1162μV
G
= (–1162μV / 805.6 μV) LSB = –1.44 LSB
G
等于V
AIN
REF+
= 3.298435V时产生了从FFEh至FFFh的变换,则:
AIN
时不能得到满量程的读数(FFFh)时,增益误差是正值,即需要一个大于
的电压才能产生最后一次变换。图3显示了正的增益误差,图4显示了负的增益误差。
– 0.5LSB
REF+
4/19
参照2008年11月 AN2834 英文第1版
本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本
AN2834 ADC误差的种类
图4 负的增益误差
1.1.3 微分线性误差
微分线性误差(DLE)定义为实际步长与理想步长之间的最大差别。这里的“理想”不是表示理想
的转换曲线,而是表示ADC的分辨率。DLE以E
E
= 实际转换步长 – 1LSB
D
理想情况下,当模拟输入电压改变1LSB应该在数字输出上同时产生一次改变。如果数字输出上
的改变需要输入电压大于1LSB的改变,则ADC具有微分线性误差。因此,DLE对应于需要改变
一个数字输出所需的最大电压增量。
标注,见图5。
D
图5 微分线性误差的表示
例子说明
一个给定的数字输出,应该对应到一个模拟输入的范围。理想情况下,步长应为1LSB。假定在
模拟输入电压在1.9998V至2.0014V,得到了相同的数字输出,则步长宽度是2.0014V – 1.9998V
= 1.6mV,此时E
如果V
= 3.3V,模拟输入1.9998V(9B1h)可以产生的输出结果介于9B0h和9B2h之间;同
REF+
样,模拟输入2.0014V(9B3h)可以产生的输出结果介于9B2h和9B4h之间。
是高端(2.0014V)与低端(1.9998V)的差减去1LSB对应的电压。
D
这样对应9B2h的综合电压变化范围是:
9B3h – 9B1h,即:2.0014 V – 1.9998V = 1.6 mV (1660 μV)
E
E
E
E
= 1660 μV – 805.6 μV
D
= 854.4 μV
D
= (854.4 μV/805.6 μV) LSB
D
= 1.06 LSB
D
参照2008年11月 AN2834 英文第1版
本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本
5/19
AN2834 ADC误差的种类
这里我们假定高于2.0014V的电压都不能得到9B2h的数字输出结果。当步长宽度小于1LSB,误
差E
是负值。
D
1.1.4 积分线性误差
积分线性误差(ILE)是所有实际转换点与终点连线之间的最大差别。ILE以EL标注,见图6。
终点连线可以理解为在A/D转换曲线上,第一个实际转换与最后一个实际转换之间的连线;EL是
每一个转换与这条线之间的偏差。因此,终点连线对应于实际转换曲线,而与理想转换曲线无
关。
ILE也被称为积分非线性误差(INL),ILE是DLE在所有范围内的积分。
图6 积分线性误差的表示
例子说明
如果第一次转换(从0至1)发生在550μV,而最后一次转换(从FFEh至FFFh)发生在3.298435V(增
益误差),则在转换曲线上,实际数字输出1h至FFFh之间的连线就是终点连线。
1.1.5 总未调整误差
总未调整误差(TUE)定义为实际转换曲线和理想转换曲线之间的最大偏差。这个参数表示所有可
能发生的误差,导致理想数字输出与实际数字输出之间的最大偏差。这是在对ADC的任何输入
电压,在理想数值与实际数值之间所记录到的最大偏差。TUE以E
TUE不是E
了数字结果在高电压端的误差。
图7 总未调整误差
O、EG、EL、ED
标注,见图7。
T
之和,偏移误差反映了数字结果在低电压端的误差,而增益误差反映
例子说明
如果V
能是DLE和ILE同时作用的结果:
= 3.3V并且V
REF+
= 2V,理想的结果是9B2h;但在转换中,得到了9B4h,这个偏差可
AIN
本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本
6/19
参照2008年11月 AN2834 英文第1版