广告

多功能ADC前端该如何校准?看看这篇

2024-12-09 17:47:10 Stephen Woodward 阅读:
假设所有时间常数组件公差的最坏情况相互叠加,A1c的增益可能会变化±2%,G的变化高达±3%。这对于精确的数据采集来说过于离谱!该怎么办?

最近的一个设计实例“简单又实用,一起看看这个不寻常的多功能ADC前端”,提供了一个非常特殊的ADC前端(见图1),它包括一个可编程增益(PG)仪表放大器(INA)。它使用PWM控制飞跨电容器来实现110dB CMRR、高阻抗差分输入和负时间常数指数放大,具有超过100个离散可编程增益级,内置的采样和保持(S&H)功能又为其锦上添花,因此可称其为PGINASH。dygednc

dygednc

图1:PGINASH:具有INA输入、可编程增益和采样与保持功能的非常规ADC前端。dygednc

由于A1c的增益为(R3/R2+1)=2,在PWM=1增益积累阶段,从U1c的输出通过U2a和R1到C建立的连接产生正反馈,使得C上捕获的电压与(负)时间常数Tc(标称)呈指数倍增:dygednc

Tc = R1*(C + Cstray) =dygednc

= 14.3k*(0.001µF + (8pF (from U2a) + 1pF (from U1c)))dygednc

= 14.3k*1009pF = 14.43µsdygednc

= 10µs / ln(2)dygednc

G = gain increment of 20.1 = 1.0718 = 0.6021dB per us of accumulation time Tdygednc

G10 = 2.0 = 6.021dB per 10µs of Tdygednc

This combines with A1c’s fixed gain of two to totaldygednc

Nominal net Gain = 2GT/10µsdygednc

当然,这里的关键词是“标称”。R1和C都具有非零公差,可能只有±1%,R2和R3也是如此。此外,由于U2开关到开关导通电阻不匹配,可能会产生进一步的时间常数误差,因此也会产生增益误差。最坏的假设所有时间常数组件公差的最坏情况相互叠加,A1c的增益可能会变化±2%,G的变化高达±3%。这对于精确的数据采集来说过于离谱!该怎么办?dygednc

建议使用以下步骤作为简单的基于软件的电路校准方法,使用连接的ADC,在校准过程中只需要将两个校准电压手动连接到IA输入端,即可消除导致前端误差的各种错误。dygednc

增益误差

第一个校准电压(Vcal)用于明确测量原有增益因子。其工作原理如下:dygednc

Vcal = Vfs/Vheadroomdygednc

其中dygednc

Vfs = ADC full-scale Vindygednc

Vheadroom = (2*1.02)*(2*1.04)= 8.8dygednc

举个例子如果Vfs = 5v, Vcal = 0.57v dygednc

Vcal的绝对精度并不是特别重要,+/-1%就足够了。但在校准过程中,它应该稳定在1 lsb以上。将Vcal连接到INA输入端,然后进行两次ADC转换:D1的增益累积时间T=10µs,D2的增益累积时间T=20µs。因此,如果2x=内置A1c增益且G=内置指数增益,则ADC的读数为:dygednc

D1 = ADC(2x *G10*Vcal)dygednc

D2 = ADC(2x*G10*G10*Vcal)dygednc

为了达到最佳准确度,对每个值进行多次(可能是16次)平均采集可能是一个好主意。下一步是一些运算:dygednc

D2/D1 = (2x*G10*G10*Vcal)/(2x*G10*Vcal) = G10dygednc

D1/ (G10*Vcal) = (2x*G10*Vcal)/(G10*Vcal) = 2xdygednc

G = (G10)0.1dygednc

那还不算太糟,对吧?现在,如果我们想设置任何(大多数)所需的Y转换增益,我们只需计算一个增益累积区间,即:dygednc

T(µs) = log(Y/2x)/log(G)dygednc

请注意,如果这个计算结果T<1µs,我们就需要增加Y,以获得额外的时间(和增益),以便电容器“飞跨”和信号采集。dygednc

输入偏移误差

但是,还有另一个我们尚未涉及的误差源:U1输入偏移。尽管TLV9164的典型偏移仅为200µV,但最大值可达1.2mV。如果不进行校正,三个输入放大器的偏移可能达到3.6mV。这将导致我们的放大器的上增益范围失去价值。为了解决这个问题,我们需要另一个输入电压参考(Vzero)、更多的运算和另一个ADC转换来测量Voff偏移允许软件将其减去。我们将使用大量增益来获得足够的分辨率。理想情况下,Vzero应准确且稳定到<10µV,以充分利用9164出色的0.25µV/℃漂移规格。dygednc

Vzero = 4.00mVdygednc

N = log(Vfs/(.008v * 2x))/log(G)dygednc

D3 =  ADC(2x*GN*(Vzero + Voff))dygednc

Voff = D3/(2x*GN) – Vzerodygednc

就是这样。为了准确地将所有原始ADC结果转换为产生该结果的实际Vin输入:dygednc

Vin = (ADC(Vin)/(2x GN)) – Voffdygednc

但要避免GN>Vfs/(2x*Voff)。否则A1c和ADC可能会因放大偏移而进入饱和状态。此外,还可能会产生噪声。dygednc

漏电流误差

漏电流难题源于这样一个事实:从U1c流经R1的负时间常数电流并不是C增益相位电荷的唯一来源。不幸的是,来自U2的X引脚和U1的非反相输入的漏电流也贡献了一部分有害电流。U1的贡献约为10pA,可以忽略不计,但U2的贡献可能大到足以造成问题。dygednc

亟待解决的问题是:HC4053开关的漏电流到底有多大?数据表提供的帮助出奇地少,答案似乎在百万分之一(pA到µA)的范围内。dygednc

图2量化了一些可信的100pA至1µA的结果。dygednc

dygednc

图2:输入参考电流-等效电压偏移。dygednc

我很感谢Christopher R.Paul和eldercosta慷慨、深刻、专业和有益的评论,这极大地促成了我写出这个设计实例。谢谢你们!dygednc

(原文刊登于EDN美国版,参考链接:In-situ software calibration of the flying capacitor PGINASH,由Ricardo Xie编译)dygednc

责编:Ricardo
本文为电子技术设计原创文章,未经授权禁止转载。请尊重知识产权,违者本司保留追究责任的权利。
Stephen Woodward
W .Stephen Woodward是仪表、传感器和计量学自由顾问,是EDN设计实例栏目最高产且最富创意的作者之一。
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
广告
热门推荐
广告
广告
广告
EE直播间
在线研讨会
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了