概述
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校准。
- 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所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复