我是靠谱客的博主 机灵外套,最近开发中收集的这篇文章主要介绍How to do ADC Calibration,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

ADC转换后的数据跟硬件提供的数据信息并不是完全对应的,它所得出的数据里面存在着offset error和gain error, 所以我们需要对它进行校准后再使用。

针对数据可能存在的错误类型,校准分为偏移校准(offset calibration)和 增益校准(gain calibration)。其中offset calibration是为了消除ADC的offset error,gain calibration是为了消除ADC的gain error。

Single-Ended Measure and EXT-CM Measure mode这两种测量模式下的校准是独立的,并且每一种测量模式下都需要offset校准和gain校准。

  1. Offset Calibration

ADC的分辨率是14bit,0....12bit是校准后的数据,最高位也就是第13bit,

是符号位,0为正,对应上面的虚线,说明需要减去offset偏移;

1为负,对应下面的虚线,说明需要加上offset偏移。

软件配置:ADCSEL: 4'b1011=>Gound measurement for Offset Calibration

S_GAIN : 3'b111=>21.6 dB

数据寄存器:0x2C => ADC calibration data callback

通过此配置得出来的数据用于offset calibration.

在进行offset校准的时候得出的数据Doffset_conv(offset digital data),

如若转换为Voltage,所用的公式为:

Vin = K * Vmax* Doffset_conv/ 2^13 (I)

此处的K= 1.1645, Vmax= 0.333V

需要注意的是:offset校准要除以2的13次方(类似于EXT-CM Measure MODE)。

2.Gain Calibration

根据analog input voltage range与analog LDO output voltage是否相关联,gain校准又分为Relative Gain Calibration and Absolute Gain Calibration。如果ADC analog voltage与analog LDO output voltage相关联,或者由LDO产生,属于Relative Gain Calibration, 否则就属于Absolute Gain Calibration。

在Prima II中,触摸屏的x_xp和x_yp电压是由模拟LDO提供的,所以触摸屏测量数据应该属于

Relative Gain Calibration.

而keypad通过ADC转换得到的数据应该属于Absolute Gain Calibration。

Relative Gain Calibration软件配置:

ADCSEL: 4'b1101=>Analog LDO measurement for Gain Calibration

S_GAIN : 3'b000=>0dB

数据寄存器:0x2C => ADC calibration data callback

Absolute Gain? Calibration软件配置:

ADCSEL: 4'b1100=>Bandgap measurement for Gain Calibration

S_GAIN : 3'b000=>0dB

数据寄存器:0x2C => ADC calibration data callback

通过此配置得出来的数据用于Gain calibration.

在进行gain校准的时候得出的数据Dgain_conv(gain digital data),

如若转换为Voltage,

所用的公式为:

Vin = K * Vmax* Dgain_conv/ 2^14(II)

此住的K = 14, Vmax = 0.333v

K的值是根据测量电压的最大范围来确定的。

以上为Gain Calibration的示意图,根据相似三角形的对应线段成比例定理:

可得知:

V?                          Vtest

________ = _________________                 (III)

Videa                     Vtest_ideal

V? 是我们所要求得的经过校准之后的理想电压值

Videal是通过公式计算求得的最大理想电压值

Vtest是通过ADC测量所得到的电压值。

Vtest_ideal是通过ADC gain校准得到的理想电压值

3.如何通过校准获取数据

通过offset校准与gain校准所得出的数据偏差,并根据I , II, III 公式来获得

最终的电压值。

公式推导过程如下:

(a) 通过gain calibration 得出以下关系

V?                                Vtest

————————= _________________ (III)

Videal                           Vtest_ideal

( b) 结合 offset calibration 推出以下关系:

V?                     Vtest – Voffset

———— = ————————————— (IV)

Videal            Vtest_ideal – Voffset

'

(C) 将公式I , II 代入公式 IV,推导出以下关系:

K1* Vmax * D? / 2^14                                   k1*Vmax*Dtest/2^14 - K2*Vmax*Doffset_conv/2^13

_____________________________ = ______________________________________________________________

K1 *Vmax * Dideal/2^14                             k1*Vmax*Dtest_ideal /2^14 - K2*Vmax*Doffset_conv/2^13

==>         D?                                                K1 * Dtest – k2 * Doffset_conv * 2

__________________ = _______________________________________________

Dideal                                         K1 * Dtest_ideal – k2 * Doffset_conv * 2

其中 Dtest_ideal = Dgain_conv

K1 * Dtest – k2 * Doffset_conv * 2

==> D? = _______________________________________________ * Dideal                        (V)

K1 * Dgain_conv – k2 * Doffset_conv * 2

其中 Dideal = (2^14 * 1.2) / (14 * 0.333) = 4217

(注意1.2v 电压是prima 2中硬件固定的,而并不是spec中的0.9v)

Dgain_conv 与 Doffset_conv 是经过测量得出的digital data,

Dtest是 通过AUX 测量所得的数值。

k1 = 14, k2 = 1.1645

将以上数据带入公式 V,即可得出通过AUX测量所得的理想的数据D?.

(d) 最后,根据以下公式将所得的D?转换为我们所要求得的电压值。

D?                          x

—————— = ————————

Dideal                   1.2V

==> X = 1.2v * D? / Dideal

最后

以上就是机灵外套为你收集整理的How to do ADC Calibration的全部内容,希望文章能够帮你解决How to do ADC Calibration所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部