ST AN2834 Application note

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
参照200811 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
参照200811 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 LSB1.5 LSB表达的范 围之内时,数字输出应该为1;即理想情况下,第一次转换应该发生在输入信号为0.5 LSB时。 偏移误差以E
例子说明
对于STM32F10xxxADC模块,最小的可检测到的电压增量变化,按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
参照200811 AN2834 英文第1
本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本
AN2834 ADC误差的种类
2 负的偏移误差

1.1.2 增益误差

增益误差定义为最后一次实际转换与最后一次理想转换之间的偏差。增益误差以EG标注。
最后一次实际转换是从FFEhFFFh的变换。理想情况下,当模拟输入电压等于V 时产生从FFEhFFFh 的变换,因此对于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
参照200811 AN2834 英文第1
本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本
AN2834 ADC误差的种类
4 负的增益误差

1.1.3 微分线性误差

微分线性误差(DLE)定义为实际步长与理想步长之间的最大差别。这里的“理想”不是表示理想 的转换曲线,而是表示ADC的分辨率。DLEE
E
= 实际转换步长 – 1LSB
D
理想情况下,当模拟输入电压改变1LSB应该在数字输出上同时产生一次改变。如果数字输出上 的改变需要输入电压大于1LSB的改变,则ADC具有微分线性误差。因此,DLE对应于需要改变 一个数字输出所需的最大电压增量。
标注,见图5
D
5 微分线性误差的表示
例子说明
一个给定的数字输出,应该对应到一个模拟输入的范围。理想情况下,步长应为1LSB。假定在 模拟输入电压在1.9998V2.0014V,得到了相同的数字输出,则步长宽度是2.0014V – 1.9998V = 1.6mV,此时E
如果V
= 3.3V,模拟输入1.9998V(9B1h)可以产生的输出结果介于9B0h和9B2h之间;同
REF+
样,模拟输入2.0014V(9B3h)可以产生的输出结果介于9B2h9B4h之间。
是高端(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
参照200811 AN2834 英文第1
本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本
5/19
AN2834 ADC误差的种类
这里我们假定高于2.0014V的电压都不能得到9B2h的数字输出结果。当步长宽度小于1LSB,误 差E
是负值。
D

1.1.4 积分线性误差

积分线性误差(ILE)是所有实际转换点与终点连线之间的最大差别。ILEEL标注,见图6
终点连线可以理解为在A/D转换曲线上,第一个实际转换与最后一个实际转换之间的连线;EL是 每一个转换与这条线之间的偏差。因此,终点连线对应于实际转换曲线,而与理想转换曲线无 关。
ILE也被称为积分非线性误差(INL)ILEDLE在所有范围内的积分。
6 积分线性误差的表示
例子说明
如果第一次转换(从0至1)发生在550μV,而最后一次转换(从FFEh至FFFh)发生在3.298435V(增 益误差),则在转换曲线上,实际数字输出1h至FFFh之间的连线就是终点连线。

1.1.5 总未调整误差

总未调整误差(TUE)定义为实际转换曲线和理想转换曲线之间的最大偏差。这个参数表示所有可 能发生的误差,导致理想数字输出与实际数字输出之间的最大偏差。这是在对ADC的任何输入 电压,在理想数值与实际数值之间所记录到的最大偏差。TUEE
TUE不是E 了数字结果在高电压端的误差。
7 总未调整误差
O、EG、EL、ED
标注,见图7
T
之和,偏移误差反映了数字结果在低电压端的误差,而增益误差反映
例子说明
如果V 能是DLEILE同时作用的结果:
= 3.3V并且V
REF+
= 2V,理想的结果是9B2h;但在转换中,得到了9B4h,这个偏差可
AIN
本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本
6/19
参照200811 AN2834 英文第1
AN2834 ADC误差的种类
TUE = 绝对值(实际数值 – 理想数值) = 9B4h – 9B2h = 2h = 2LSB

1.2 与环境相关的ADC误差

1.2.1 电源噪声

模拟电源引脚是用于为转换提供参考电压,因为ADC输出是模拟信号电压和模拟参考电压之间 的比例数值,因此任何模拟参考电源上的噪声都会使转换的数值产生变化。
例如:模拟参考电压为3.3V,输入信号为1V,则转换的结果是:(1/3.3) x 4095 = 4D9h
如果在供电电源上有一个峰-峰为40mV的纹波,则当V
(1/3.34) x 4095 = 4CAh
通常开关式电源(SMPS)具有内部的快速开关功率晶体管,这会在输出上产生高频噪声,开关噪 声的范围介于15kHz1MHz之间。

1.2.2 电源稳压

ADC转换结果是模拟输入信号与V
如果电源输出,在连接到V 结果上将产生误差:
如果参考电压变化了,数字输出会跟着变化。
例如:
如果参考电压为3.3V,并且V
如果提供的电压连接到V
由电压下降引入的误差为:4DCh – 4D9h = 3LSB
数值的比率,电源稳压对于ADC的精度是非常重要的。
REF+
DDA或VREF+
时,因为负载和它自身输出阻抗的原因而下降,则在转换
,这里nADC的分辨率(STM32n = 12)
= 1V,则数字输出为:
AIN
后改变到3.292V,则数字输出变为:
REF+
处于尖峰时,转换的结果变为:
REF+

1.2.3 模拟输入信号的噪声

在采样时间里,小的但是高频的信号变化可以导致大的转换误差。这样的噪声是由诸如电机、 引擎点火、电力线等电子设备产生,并且在源信号(如传感器)上叠加了一个多余的噪声信号;因 此,ADC转换的精度受到了影响。

1.2.4 ADC的动态范围与最大输入信号幅度严重不匹配

ADC的动态范围与最大输入信号的幅度相匹配,对于得到最大的ADC转换精度是非常重要的。 假定要转换的信号在0V2.5V之间变化,而V 3102(2.5V),如图8所示。这样,就有993个未使用的转换数值(4095 – 3102 = 993),即丢失了 转换信号的精度。
如何使ADC的动态范围与最大输入信号的幅度相匹配,请参见2.2.4将最大的信号幅度与ADC动态 范围匹配。
本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本
等于3.3V,则最大信号的ADC转换数值是
REF+
参照200811 AN2834 英文第1
7/19
AN2834 ADC误差的种类
8 输入信号幅度与ADC的动态范围

1.2.5 模拟信号源阻抗的影响

因为ADC的引脚需要有电流流入,在信号源与ADC引脚之间的模拟信号源的阻抗或称串行电阻
(R
),将产生一个电压降。阻容网络中的R
AIN
随着源电阻(R
)的增加,对保持电容的充电时间也相应增加。下图显示了模拟信号源电阻的影
ADC
响。
ADC和CADC
上,对电容的充电由R
ADC
控制。
C 样时间小于C
有效的充电由R
ADC
ADC
通过R
ADC
ADC
+ R + R
9 模拟信号源电阻的影响
控制,因此充电时间常数是tc = (R
AIN
(ts < tc)充电的时间,则ADC转换得到的数值会小于实际数值。
AIN
ADC
+ R
AIN
) × C
。如果采
ADC
是电容C
注:t
c
V
t
:电容C
c
= (R
c
ADC
完全充电的时间:Vc = V
ADC
上的电压
ADC
+ R
AIN
) × C
ADC
AIN

1.2.6 信号源的容抗与PCB分布电容的影响

当转换模拟信号时,需要考虑信号源的容抗和在模拟输入引脚端的分布电容(参见图10),信号源 的电阻和电容构成一个阻容网络,除非外部的电容(C 否则ADC转换的结果将是不准确的。(C
信号源上的外部电容和分布电容分别用C
本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本
+ Cp)的数值越大,信号源的频率就越受限制。
AIN
AIN和Cp
AIN
表示。
+ Cp)能够完全充电至输入信号的电压,
8/19
参照200811 AN2834 英文第1
AN2834 ADC误差的种类
10R
ADC、CAIN和Cp

1.2.7 注入电流的影响

在任一个模拟引脚上负的注入电流都会在ADC输入上(或靠近的数字输入引脚)引入漏电流,最差 的情况是在相邻的模拟通道上。当VAIN < VSS时,会产生负的注入电流,导致有电流从I/O引脚 流出,见下图说明。
11 注入电流的影响
的模拟输入

1.2.8 温度的影响

温度会对ADC的精度产生较大的影响,主要有2项误差:偏移误差和增益误差。这些误差可以通 过微控制器的固件程序补偿(有关温度补偿的方法,见2.2.7节)。

1.2.9 I/O引脚间的串扰

因为I/O脚之间的耦合电容,I/O端口的翻转可能对ADC的模拟输入产生一些噪声。可能会因为 PCB走线过于靠近,或互相交叉而产生这样的串扰影响。
内部数字信号和I/O脚的翻转会产生高频的噪声;翻转大吸入电流的I/O脚,因为电流的扰动,有 可能在电源上产生电压尖峰。PCB上一个数字信号与模拟输入线的串扰,可能会影响模拟信号 (见下图)。
本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本
9/19
参照200811 AN2834 英文第1
AN2834
12 I/O脚之间的影响

1.2.10 EMI导致的噪声

由于PCB线路有可能变成天线,从邻近的电路产生的电磁辐射可以在模拟信号上引入高频噪声 (见下图)。
13 EMI来源

ADC误差的种类

10/19
参照200811 AN2834 英文第1
本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本
AN2834 如何得到最佳的ADC精度
2 如何得到最佳的ADC精度

2.1 减小与ADC模块相关的ADC误差的建议

TUE不是EO、EG、EL、ED之和,这个参数表示理想数字输出与实际数字输出之间的最大偏差, 它可以是一个或多个误差的综合结果。
因为ILEDLE的积分,它可以被看成是最大误差的标示。不要把DLEILE相加,试图得到每 个数字步长的最大误差。
ILEDLE依赖于ADC模块的设计,校准它们是困难的。进行多次转换再做平均可以减小它们的 影响。
偏移和增益误差可以简单地使用STM32F10xxx ADC模块的自校准功能补偿。
在数据手册中给出的最大误差数值,是在实验室环境下,对全部的电压范围,测量出的最差的 误差数值。

2.2 如何减小与外部环境相关的ADC误差

2.2.1 减小电源噪声

电源端
从噪声角度讲,线性稳压器具有较好的输出。市电经降压、整流和滤波,再经过线性稳压器。 强烈建议在整流输出端连接滤波电容。请参考线性稳压器的数据手册。
如果使用开关型电源,建议使用一个线性稳压器为模拟部分供电。
建议在电源线和地线之间连接具有好的高频特性的电容,即在靠近电源一端应放置一个0.1μF和 一个110μF的电容。
电容允许交流信号通过,小容量的电容过滤高频率的噪声,大容量的电容过滤低频率的噪声。 通常瓷介电容具有较小的容值(1pF0.1μF),和较小的耐压(16V50V)。建议在靠近主电源
(V
DD和VSS
)和模拟电源(V
DDA和VSSA
)管脚的地方,放置这样的瓷介电容。这样的电容可以过滤由
PCB线路引出的噪声。小容值的电容可以响应电流的快速变化,并快速地放电适应快速的电流
变化。
钽电容也可以与瓷介电容一道使用。可以使用大容值的电容(10μF100μF)过滤低频率的噪声, 通常可以使用电解电容。建议把它们放在靠近电源端。
可以使用在电源线上串联铁氧体电感滤除高频噪声。因为串联的电阻非常小,除非电流非常 大,这个方法可以产生非常小的(可以忽略的)直流损失。在高频时,它的电阻很大。
STM32F10xxx
多数的STM32F10xxx微控制器的VDD和VSS管脚都是互相靠近的,V 此可以在非常靠近微控制器的地方放置一个电容器。每一对V
REF+和VSSA
DD和VSS
管脚都需要使用单独的去
藕电容器。
V
管脚必须连接到2个外部的去藕电容器(10nF瓷介电容+1μF的钽电容或瓷介电容)。参见图
DDA
14和图15的去藕电路例子。
也是靠近的。因
对于100脚和144脚封装的产品,可以在V 对输入低电压的精度(参见2.2.4节)。在V
上连接一个外部的ADC的参考输入电压,从而改善
REF+
上的电压范围是2.4VV
REF+
DDA
供参考电压,必须在这个管脚上连接2个电容器,10nF1μF,而且V 的范围。
参照200811 AN2834 英文第1
本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本
。如果在V
不能超出2.4VV
REF+
REF+
上单独提
DDA
11/19
AN2834 如何得到最佳的ADC精度
14 100脚和144脚封装的电源和参考电压去藕电路
15 36脚、48脚和64脚封装的电源和参考电压去藕电路

2.2.2 电源稳压的建议

供电系统应该有好的线性和负载调节特性,因为ADC模块使用V 数值的输出是这个参考电压与模拟输入信号的比值,V
任何时候,不管因为开启了一部分的电路导致负载增加,电流的增加不应引起电压的下降。如 果在宽的电流范围内能够保持电压的稳定,这样的电源具有好的负载调节特性。
例如:LD1086D2M33电压调压器,在V0.035%,在I
从0至1.5A的范围内的负载调节是0.2%(详见LD1086的数据手册)。
load
线性调节的数值越低,稳压性能越好。同样,负载调节数值越低,稳压性能越好,输出的电压 越稳定。
还可以使用诸如LM236作为V
的参考电压,这是一个2.5V的电压参考二极管(详见LM236
REF+
据手册)

2.2.3 消除模拟输入信号的噪声

平均值方法
平均值法是一个简单的技术,通过对一个模拟输入信号的多次采样和软件计算取平均值实现。 这个技术有利于消除那些不频繁变化的模拟输入信号上的噪声。
平均值法需要在一个相同的模拟输入电压上进行多次采样,保证模拟输入信号在转换完成之 前,保持在相同的电压,否则模拟输入的变化将会出现在结果数值中,从而引入新的误差。
必须在各种负载情况下保持稳定。
REF+
2.8V16.5V的范围内(I
IN
REF+或VDDA
load
作为模拟参考,数字
= 10mA)的典型线性调节
注:
增加一个外部滤波器
使用一个外部滤波器可以消除高频噪声,没有必要使用昂贵的滤波器去处理超出需要频率之外 的频率分量。因此,一个相对简单的具有阻断频率f 效地限制噪声和假波。采样速率超过最高的需要频率即可,通常为2~5倍于f
组成外部滤波器的R和C数值,应该满足
本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本
2.2.5
节和
,刚好超过需要频率的低通滤波器,可以有
C
C
2.2.6
节的要求。
参照200811 AN2834 英文第1
12/19
AN2834 如何得到最佳的ADC精度

2.2.4 将最大的信号幅度与ADC动态范围匹配

这个方法可以通过合理地选择参考电压或使用一个前级放大器,使用ADC的全量程输出,得到 最大可能分辨率,从而提高精度。
选择参考电压(仅适合于100脚和144脚封装的产品)
在要测量信号希望的范围内选择参考电压。如果要测量的信号有偏移,则参考电压也应该有相 应的偏移。如果要测量的信号有由一个最大的幅度,则参考电压也应该有相应的最大幅值。这 个参考电压与要测量信号的幅值匹配,就能够使用ADC模块的全范围输出,得到最大的分辨 率。
注:
100脚和144脚封装的STM32F10xxx产品中,ADC参考电压由外部的V 须与地线相连。V
例如:如果要测量的信号在0V2.5V之间变化,建议选用V
管脚为上述匹配方法提供了可能。
REF+
= 2.5V;可以选用LM235作为
REF+
REF+
提供,V
参考电压(详见LM235的数据手册),下图示范了这些条件。
V
上的电压必须处于
REF+
2.4V和V
DDA
之间。
16 选择参考电压
使用前置放大器
如果要测量的信号太小(与ADC的测量范围相比),则最好使用一个外部的前级放大器,这个方法 可以用于所有封装的STM32F10xxx产品,特别是那些没有V
例如:如果要测量的信号变化范围是0V1V之间,而V 峰-峰幅度与V
的数值相同,增益为3。图17示范了这个例子。
DDA
DDA
这个放大器可以把输入信号的范围转换至ADC模块的范围,它同样可以在输入信号与ADC输入 之间引入偏移量。特别要注意设计这个放大器时不要引入额外的误差(如额外的偏移,放大镜增 益的稳定性、线性度、频率响应等)。
管脚的封装。
REF+
3V,这个信号可以被放大,使它的
REF-
管脚必
17 前置放大
本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本
13/19
参照200811 AN2834 英文第1
AN2834 如何得到最佳的ADC精度

2.2.5 模拟信号源的阻抗计算

假定最大允许的误差是1/4LSB,下面计算一下最大允许信号源的阻抗。
V
是内部C
C
这样得到:误差 = V
18 最差情况下的误差:V
是采样时间。
t
S
tS = TS / f
对于给定的tS,对应V 电至V
AIN
V
时是计算最大允许信号源阻抗时需要考虑的最坏情况。
REF+
电容器上的电压(参见图9)
ADC
– VC = ¼ LSB
AIN
= V
AIN
,其中TS是按周期计算的采样时间 (1)
ADC
,在V
AIN
= V
AIN
= V
REF+
的误差大于对应V
REF+
时需要比在V
REF+
AIN
< V
< V
AIN
时需要更多的时间(参见图18)。因此V
REF+
时的误差,这是因为把C
REF+
ADC
0V
=
AIN
注:
误差 =
其中:
R
= (RAIN + RADC)max (2)
max
NADC的分辨率(对于STM32而言,N = 12)
这样得到:
因此:
(3)
综合表达式(1)(2)(3),我们得到:
对于T
= 7.5,f
S
= 14MHz,C
ADC
= 12pF和R
ADC
max = 1k,在要求误差为1/4 LSB时的最大
ADC
允许信号源阻抗为:
即:R
使用一个跟随放大器可以减小信号源的阻抗效应,这是因为放大器具有高的输入阻抗和非常低 的输出阻抗,它把
max = 3.6k
AIN
R
R
AIN
隔离开来。但是,放大器引入的偏移误差必须加以考虑。
ADC

2.2.6 信号源频率条件与源电容和分布电容的关系

当外部电路的电容没有被模拟信号源完全充电的情况下,模拟输入信号的电压不会与模拟输入 的电压V
相同。如果模拟输入信号产生变化,它的变化频率(FAIN)的周期至少应该满足:
AIN
参照200811 AN2834 英文第1
本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本
14/19
AN2834 如何得到最佳的ADC精度
10 x R
T
= 模拟信号的周期 = 1/F
AIN
因为:T
因此:F
AIN
AIN
x (C
AIN
10 x R
AIN
AIN
1 / [10 x R
+ CP)
x (C
x (C
AIN
AIN
AIN
+ CP)
+ CP)]
AIN
例如:
对于R
F
AIN
即信号源的最高频率F
= 25k,C
AIN
= 7pF,CP = 3pF,则:
AIN
max = 1 / [10 x 25x103 x (7 + 3)x10
max = 400kHz
AIN
-12
]
对于上述给出的信号源特性(容抗与阻抗),它的频率不能超过400kHz,否则ADC的转换结果将 是不准确的。
19 建议的R
AIN与CAIN
值与信号源频率F
的关系
AIN

2.2.7 温度效应补偿

一个方法是根据不同的温度范围,测量出完整的偏移和增益变化,再在存储器中建立一个对照 表。这样的方式需要额外的费用和时间。
另一个方式是当温度达到某个数值时,使用内部的温度传感器和ADC看门狗功能,重新校准。

2.2.8 注入电流最小化

检查你的设计,确认是否有任何数字或模拟输入可能低于VSS或V 这个管脚会有负的注入电流进入。如果一个数字输入靠近要进行转换的模拟输入,则注入电流 会对精度产生较大影响。
应该避免在任何标准的模拟输入管脚上引入负的注入电流,这会极大地减低在其它管脚上正在 进行转换的精度。
建议在可能产生负的注入电流的I/O管脚于VSSA之间连接一个肖特基二极管。
ADC 的精度不会受到正的注入电流的影响,只要它是在规定的范围内,详见相应的 STM32F10xxx数据手册中,I/O端口特性部分关于I

2.2.9 减小I/O脚串扰

在模拟信号线的周围布置地线产生屏蔽可以有效地减小串扰干扰噪声。下图显示了在信号线之 间安排地线的情况。
INJ(PIN)
ΣI
INJ(PIN)
,如果存在这种情况,则从
SSA
的参数。
15/19
参照200811 AN2834 英文第1
本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本
AN2834 如何得到最佳的ADC精度
20 I/O脚间的串扰

2.2.10 降低EMI导致的噪声

可以通过合理的屏蔽和布局技巧减小EMI噪声。可能的发射源必须在物理上与接收端分开,可以 在电气上通过适当的接地和屏蔽把它们分开。
屏蔽技术
在敏感的模拟信号线旁边铺设地线连线,可以提供PCB层次的屏蔽,双层PCB的另一个边也应 该有接地布线。这样可以防止干扰和I/O串扰影响信号。见图21
从远距离(如传感器等)过来的信号,应该使用屏蔽电缆连接到PCB。在PCB上应该尽量地减小这 些信号线的长度。
不应该使用电缆的屏蔽层连接微控制器与传感器或模拟信号源的地线,应该使用单独的地线。 屏蔽层应该只在一端接地,靠近接收器的地方,例如微控制器的模拟地。在电缆屏蔽层的两端 (源和接收端)都接地可能导致地线的环路,会有电流在屏蔽层流过,这时屏蔽层变成了一个天线 从而失去了屏蔽的作用。
这个接地屏蔽的概念同样适合于具有金属外壳的应用项目,它同样可以帮助减低EMIEMC的 干扰。金属外壳需连接到主电源的大地端,如果没有电源的大地,可以使用直流地线。
21 屏蔽技术

2.2.11 PCB的设计建议

分隔模拟与数字部分的布置
建议在PCB上分隔模拟与数字线路(见图22)。同样需要避免两部分的走线交叉,经过耦合,数字 信号的走线可以在模拟信号线上产生高频率的噪声。
数字信号能够产生高频率的噪声是因为它的快速翻转变化。
由PCB基板(玻璃、瓷介或塑料)隔离的金属连线(走线)之间,构成了耦合电容。
推荐在不同的层面上安排模拟和数字地线。如果有许多模拟线路,最好使用独立的模拟地线 层,模拟地线必须置于模拟线路之下。
16/19
参照200811 AN2834 英文第1
本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本
AN2834 如何得到最佳的ADC精度
22 分隔模拟与数字部分的布置
分隔模拟与数字部分的供电
如果在微控制器的外围有很多的模拟和数字电路,最好能够有分隔开的模拟与数字供电(见 图
23)。根据STM32F10xxx的封装不同,分别拥有不同的模拟和数字供电和地线管脚,VVDD管脚可以使用不同的供电。
如果使用开关型电源给数字部分供电,则应该使用另一个线性电源为模拟电路供电。
同理,如果考虑到有很多的I/O端口翻转操作从而可能在直流电源上产生大量噪声,最好也需要 使用独立的电源为模拟电路供电。
DDA/VREF+
23 分隔模拟与数字部分的供电
推荐将模拟地和数字地按照星型网络连接,即模拟地和数字地应该只在一个点相连,这样可以 避免因为数字信号的翻转而产生的噪声进入模拟供电线路,同样可以避免电流的突变影响到模 拟电路部分。
使用不同的PCB层安排供电和地线
● 双层PCB 对于2层的PCB,建议尽可能扩大地线布线的面积,供电线路(V
DD、VDDA
线。如果2层间使用相同的地线信号,可以在相交的区域通过多个连接点把2层的地线连接 在一起。不用的PCB部分,可以全部铺设为地线平面。 另外一种常见的做法是,在PCB的一面把未用的部分铺设为电源(V 部分铺设为地线平面。这样做的好处是减小电源和地线信号间的互感。在PCB上尽可能大 的地线平面可以产生好的屏蔽效果,同时有效地减小对敏感电路的电磁感应。
● 多层PCB 在任何可能的情况下,请使用多层PCB板,并在板上为电源和地线安排不同的层。芯片上
)应该使用普通走
)平面,另一面未用的
DD
17/19
参照200811 AN2834 英文第1
本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本
AN2834
的VDD和VSS管脚可以直接地连接到供电平面,减小了电源和地线的走线长度,长的走线 具有较高的感应效应。模拟地线可以在一个点上连接到这个地线平面。这时,供电走线可 以非常靠近电源部分。 一个完整的地线层能够提供良好的屏蔽,并减小对敏感电路的电磁感应。
● 单层PCB 使用单层PCB可以节省成本,通常只能用在较少连线数量的简单应用中。建议在未使用的 部分全部铺设为地线。可以使用跳接线连接PCB的不同部分。

如何得到最佳的ADC精度

2.2.12 元器件的摆放与布线

通过元器件在PCB上的摆放与信号走线的安排,对模拟输入进行屏蔽。
对于电阻和电容这样的器件,要保证它们的引脚尽可能地短,可以使用表面安装(SMD,表贴) 元件,表面安装的去藕电容器可以非常地靠近微控制器。
电源线使用较宽的走线,这样可以减小因为走线的电阻而使电压降低。实际上,窄的电源走线 具有不可忽略的阻抗,在它上面大负载的电流将导致电压下降。
必须使用地线包围振荡器晶体,在双面PCB上对应晶体的另一面也应覆盖地线。多数晶体器件 都有一个金属的外壳,也应把它接地。同时晶体应尽可能地靠近微控制器。可以使用表面安装 的晶体。
18/19
参照200811 AN2834 英文第1
本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本
AN2834 结论

3 结论

本文讨论了减小STM32F10xxxADC误差和获得最佳ADC精度的主要方法和应用设计准则。
文中讨论了信号源的容抗和阻抗,对设计ADC应用十分重要的PCB设计,和需要考虑的各项参 数。
其他的一些方法与应用的需求本身相关,需要在速度、精度和设计结构上做出平衡取舍。
19/19
参照200811 AN2834 英文第1
本译文仅供参考,如有翻译错误,请以英文原稿为准。请读者随时注意在ST网站下载更新版本
Loading...