概述
本文学习于TI 高精度实验室课程,讨论如何计算增益和偏移误差并通过校准消除。首先对数据转换器系统进行偏移和增益误差计算,然后讨论几种校准此误差的方法。最后介绍一些难以校准的误差源。
文章目录
- 概述
- 一、误差校准原理与方法
- 二、实际应用问题举例
- 例 1:失调校准分析
- 例 2:校准可行性
- 例 3:ADC 校准综合分析计算
一、误差校准原理与方法
下图是前文(系统误差分析中的统计原理)提到过的偏移计算。在这里,我们查看信号链中两个放大器和 ADC 的典型(TYP)偏移。所有偏移值均参考数据转换器的输入。因此需要考虑每个放大器的增益。在此示例中,U1 的增益为 20,因此其偏移乘以该因子。
所有三个偏移量均使用平方根和进行合并,因为它们是不相关的高斯分布。此处的总偏移量表示系统的典型偏移量,即正负 1 个标准偏差。要设置最坏情况限制,我们可以根据系统要求将标准偏差乘以表中的适当因子。例如,如果我们将系统最大规格设置为正负 3 个标准差,则 99.73% 的总体将在该限制范围内,而 0.27% 的总体将超出该限制。根据要求,可以设置更保守的元素。
下图展示了可以对增益误差进行类似的统计分析。在这种情况下,电流分流电阻器、电流分流放大器、缓冲器和数据转换器将产生增益误差。我们将忽略缓冲器的增益误差,因为它非常小并且与放大器的开环增益有关。
在这种情况下,一些参数没有典型值,因此必须使用最坏情况进行分析。上图顶部的方程式显示了绝对最坏情况分析(其中误差直接相加)和统计最坏情况(其中误差以平方和根的形式相加)。统计最坏情况是对最坏情况的更合理估计,而绝对最坏情况则更为保守。
在此示例中,电流分流放大器 U1 的误差是主要误差源。对于许多电路,增益由外部分立电阻器设置。对于这种类型的电路,蒙特卡罗分析是查找增益误差的好方法。大多数信号链的传递特性是线性函数,形式为 y 等于 mx 加 b。从技术上讲,会有一些非线性项,但假设线性是一个很好的一阶近似。
失调和增益校准基于这样的理念:可以求解直线方程的斜率和截距。注意,斜率误差是增益误差,截距是失调误差。应用两个不同的输入信号并测量相关的输出代码可以求解斜率和截距。但是,必须小心确保放大器都在曲线的线性区域内工作。 如下图所示。
通过查看输入/输出关系,可以看到在非线性区域中无法确定传递函数的斜率。在此示例中,我们应用 0 安培和 20 安培并测量相关的输出代码。注意,0 安培将 U1 的输出驱动至 0.5 伏,而 20 安培将输出驱动至 4.5 伏。因此,这些测试信号使系统保持在线性范围内。
使用的测试信号必须非常准确,这一点非常重要。测试信号中的任何错误都会在校准系数中引入错误,并最大限度地降低校准的有效性。 校准后,测量的斜率和测量的偏移(称为校准系数)通常存储在微控制器的内存中。然后在设备正常运行期间使用这些系数来补偿增益和偏移误差。
下图是基于上一张图片中的电路的示例校准。在这种情况下,校准测试信号为 0.5 伏和 4.5 伏。注意,理想曲线显示为蓝色,测量曲线显示为红色。测量曲线与理想曲线有不同的斜率和偏移。
斜率可以通过将输出代码的变化除以输入电压的变化来计算。偏移量是通过求解 y 等于 mx 加 b 方程并代入一个输入及其相关输出信号来确定的。一旦有了偏移量和斜率,就可以纠正任何输入的误差。在此示例中,应用 2.0 伏输入信号。未校准的读数为 2.002 伏,因此增益和偏移存在 2 毫伏误差。使用校准系数进行校正,可以消除误差并确定 2 伏的实际输入信号。
一些校准方案在初始生产期间应用外部校准信号来校准系统。在其他情况下,系统将具有板载精密参考来生成校准信号。但是,对于某些应用,生成精密校准输入信号可能不切实际,因为成本可能太高。在我们刚刚考虑的例子中,校准信号为 0 安培至 20 安培。生成精密的 20 安培信号来校准系统具有挑战性且成本高昂。
简化校准方案的一种方法是进行仅偏移校准。偏移校准的优点在于,它通常可以通过将输入短路至地来完成。将输入短路至地可提供非常准确的 0 伏输入信号。但是 0 伏输入信号不具备用于两点增益和偏移校准的典型参考电路所固有的精度和漂移。
下图的电路显示了一个简单的校准方案,其中可以断开输入信号并将输入接地以进行偏移校准。 当将 0 伏电压施加到输入时,偏移量直接读取为负 30 代码。此偏移量包括 ADC 偏移量以及放大器 U1 和 U2 的偏移量。此外,可以定期运行此校准以解决偏移漂移问题。理想情况下,如果我们也可以校准增益误差就好了,但这需要精密的校准源。
因此,为了尽量降低成本和复杂性,一些系统使用单点校准。**但是这种类型的校准只能在具有双极范围或差分输入范围的 ADC 上进行。**下面解释为什么这种方法不能用于单极 ADC。
下图展示了正和负偏移对单极数据转换器的影响。单极是指输入信号始终为正。也就是说,它的范围从 0 到满量程范围,表示为 FSR。此示例的输出代码范围从十六进制 000 到十六进制 FFF。虽然单极转换器没有负输出代码,但可以有负偏移。
左侧的图表显示了负偏移如何影响 ADC 传递函数。理想曲线显示为蓝色,测量曲线显示为红色。请注意,测量曲线因负偏移而向下移动,但传递函数在 000 十六进制处被截断。因此,对于此示例,应用 0 伏输入将生成 000 十六进制输出代码,即使实际偏移误差为负 003 十六进制。因此,您无法使用单极 ADC 的 0 伏校准信号校准负偏移。但是,如右侧曲线所示,可以使用单极 ADC 的 0 伏输入测量正偏移。
在此示例中,将 0 伏电压施加到输入端,测量到正 003 十六进制的偏移。然而,从校准的角度来看,这并没有真正的帮助,因为 ADC 的偏移在负值和正值之间变化,是不确定的。
下图展示的是双极 ADC 或具有差分输入范围的 ADC 的偏移误差。术语“双极”表示输入可以接受负电压和正电压。这些曲线也适用于具有差分输入范围的单极输入。
前面的示例使用了 ADS 9110,这是一种单极设备,具有正或负 Vref 的差分输入范围。范围从负满量程(表示为 NFS)开始,到正满量程(表示为 PFS)结束。在这种情况下,可以将 0 伏电压施加到输入并直接读取输出。
短路输入以确定偏移量通常被用作一种简单的偏移量测量和校准方法。一些数据转换器具有允许自动偏移量校准的便捷功能。一般来说,此校准是通过向 ADC 发送数字命令来启动的。这可以定期进行,以便同时考虑偏移量漂移。
在校准过程中,ADC 的输入与电路的其余部分断开,因此不需要特殊的校准测试信号。注意,在这种情况下,校准仅适用于数据转换器,并且在此自动校准中不会校正信号链其余部分的偏移误差。
校准后,偏移的数字值存储在寄存器中。校准后,偏移寄存器会自动从读数中减去,以纠正偏移误差。这种校正可以显著减少偏移误差。 例如,通过校准,ADS7042 的典型偏移从正负 12 LSB 减少到正负 1/2 LSB。
最后,需要注意的是,这种自动校准可以校正失调误差,但不能校正增益误差。 增益和失调误差是两种常见的误差源,可以通过校准来消除,其他一些误差源可能很难或不可能通过校准消除。这里列举了一些例子。失调和增益误差可能会产生温度漂移,积分非线性是传递函数与理想传递函数偏差的测量值。时间老化是器件性能随时间下降的测量值。
数据表明器件的行为如何通过温度循环而改变。这与温度漂移不同,因为器件的室温操作可以改变,例如,通过将温度从热循环到冷再循环回室温。**在温度循环之后,偏移和增益可能会因极端温度在设备内部引起的应力而发生变化。**但是这些类型的误差很难在校准中纠正。因此,理想情况下,它们应该低于系统的误差需求。
二、实际应用问题举例
例 1:失调校准分析
下图所示电路目的是校准系统的失调电压,ADC 的输入范围为 0V 到 5V,当将输入信号设为 0V,是否可以通过测量 ADC 的数字输出来实现此失调校准?
通过查询 OPA320 的数据手册可知,其共模电压输入范围在此例中为 -0.35V 到 5.1V,满足 0V 信号的输入条件;其输出摆幅最坏情况下为 -0.5V,满足 0V 信号的输出。
但是,ADS8860为单极性 ADC,这意味着其输出的数字信号最小为 0,没有负输出代码。然而,即使如此,单极性 ADC 仍然可以产生负的失调偏移,这种情况下,使用 0V 信号来校准失调偏移的方法将会失效。因此无法实现上述目的。
下图目的与上一例相同,唯一不同之处在于,ADC 的输入范围为 -10.24V 到 +10.24V,当将输入信号设为 0V,是否可以通过测量 ADC 的数字输出来实现此失调校准?
先看 OPA188 的输入输出是否满足要求,如下图所示。
OPA188 设置为负电源接地,尽管其可以接受 0V 输入,但其输出摆幅限制其最小也无法输出 0V 信号,因此这种情况下,校准无法实现。
下图将运放负电源接为 -15V,当将输入信号设为 0V,是否可以通过测量 ADC 的数字输出来实现此失调校准?
显然,此时运放可以接受 0V 输入,0V 输出。并且 ADC 为双极性 ADC,输出的数字信号可以为正或负,根据前文的校准原理,可以通过 0V 信号实现失调电压的偏移校准。
例 2:校准可行性
下面的电路通过一些开关来实现校准信号和输入信号的切换,校准信号通过 5V 的 LDO 输出经电阻分压得到。那么这样的校准方法有哪些潜在的问题?
1、用于产生校准信号的 LDO 器件可能并不具备精度、漂移性能、噪声性能,以及长期可靠性等校准信号所必须的特性。
2、用于分压的电阻必须具有非常高的精度和温度漂移。
3、来自开关的误差源也应考虑。开关器件通常会有电气泄露、非线性阻抗、寄生电容,以及其它非理想特性。
例 3:ADC 校准综合分析计算
下图所示的 ADC 系统要实现增益和失调校准,其中,输入信号 Vin 为 0V 到 1V,校准信号为 0.1V 到 0.9V。当系统未经过校准时,输入 0.1V 时的 ADC 输出为 -104720,输入 0.9V 时的 ADC 输出为 104995。要求:
1、计算用于增益和失调校准的系数;
2、当输出代码为 32000 时,计算输入电压 Vin;
3、若未经过校准,输出代码 32000 造成的误差有多大?
(1)首先计算校准系数。由题目条件:
V
i
n
1
=
0.1
V
,
C
o
d
e
1
=
−
104720
V_{in1}=0.1V,Code1=-104720
Vin1=0.1V,Code1=−104720
V
i
n
2
=
0.9
V
,
C
o
d
e
2
=
104995
V_{in2}=0.9V,Code2=104995
Vin2=0.9V,Code2=104995
m
=
C
o
d
e
2
−
C
o
d
e
1
V
i
n
2
−
V
i
n
1
=
2.621
×
1
0
5
1
V
m=\frac{Code2-Code1}{V_{in2}-V_{in1}}=2.621×10^5\frac{1}{V}
m=Vin2−Vin1Code2−Code1=2.621×105V1
b
=
C
o
d
e
1
−
m
×
V
i
n
1
=
−
1.309
×
1
0
5
b=Code1-m×V_{in1}=-1.309×10^5
b=Code1−m×Vin1=−1.309×105
(2)使用校准系数,计算当 ADC 输出为 32000 时,Vin 的值:
C
o
d
e
=
32000
Code=32000
Code=32000
V
i
n
=
C
o
d
e
−
b
m
=
0.621546
V
V_{in}=\frac{Code-b}{m}=0.621546V
Vin=mCode−b=0.621546V
(3)当 ADC 没有经过校准,使用 32000 计算未校准状态下输入电压 Vin_no_cal 的值:
由数据手册:
L S B = 2 × V r e f 2 18 LSB=2×\frac{V_{ref}}{2^{18}} LSB=2×218Vref
ADC 的差分输入电压为:
V A D C _ D I F = C o d e × L S B = 32000 × 2 × 4.096 V 2 18 = 1.0 V V_{ADC\_DIF}=Code×LSB=32000×\frac{2×4.096V}{2^{18}}=1.0V VADC_DIF=Code×LSB=32000×2182×4.096V=1.0V
(4)根据输入电压与 ADC 输入差分电压之间的增益关系,求解输入电压:
关系图如下:
V A D C _ D I F = G F D A × G O P A × V i n _ n o _ c a l − G F D A × V r e f 2 = 2 × 4.096 × V i n _ n o _ c a l − 2 × 4.096 2 V_{ADC\_DIF}=G_{FDA}×G_{OPA}×V_{in\_no\_cal}-G_{FDA}×\frac{V_{ref}}{2}=2×4.096×V_{in\_no\_cal}-2×\frac{4.096}{2} VADC_DIF=GFDA×GOPA×Vin_no_cal−GFDA×2Vref=2×4.096×Vin_no_cal−2×24.096
V i n _ n o _ c a l = V A D C _ D I F 2 × 4.096 + 0.5 V = 0.622070 V V_{in\_no\_cal}=\frac{V_{ADC\_DIF}}{2×4.096}+0.5V=0.622070V Vin_no_cal=2×4.096VADC_DIF+0.5V=0.622070V
E r r o r = V i n _ n o _ c a l − V i n V i n = 0.622070 V − 0.621546 V 0.621546 V = 0.084 % Error=\frac{V_{in\_no\_cal}-V_{in}}{V_{in}}=\frac{0.622070V-0.621546V}{0.621546V}=0.084\% Error=VinVin_no_cal−Vin=0.621546V0.622070V−0.621546V=0.084%