校准DS4830光电微控制器的内部ADC失调

元器件信息   2023-08-31 10:32   210   0  

DS4830  点击型号即可查看芯片规格书 


芯片规格书搜索工具-icspec


模/数转换器(ADC)将输入电压转换为相应的数字编码。理想的ADC在编码空间内实现这种行为。图1所示为采用2V基准的3位ADC的传递函数。

9155_bq01_9979.gif
图1. 1/2 LSB补偿的理想3位ADC

然而,设计一款在所有架构下都满足理想ADC特性的ADC非常困难。由于各种设计限制或约束,转换器存在各种误差,例如积分非线性(INL)、微分非线性(DNL)、增益以及ADC输入失调。

失调误差是ADC最常见的误差。对应于零电压输入(ADC输入连接至地)的ADC数字编码输出称为ADC失调图2所示为带有失调的3位ADC传递函数。

9155_ia7p_4987.gif
图2. 带有失调的1/2 LSB补偿3位ADC

DS4830 ADC内部失调

DS4830  光电微控制器内置13位ADC和ADC失调寄存器(ADVOFF),用于校准ADC内部失调。工厂对每一DS4830在室温、不同ADC增益ADCG1 (1.216V满幅)下进行失调校准。然而,DS4830 ADC内部失调会随温度和增益变化。

DS4830可测量任意ADC增益设置下的ADC内部失调。然后利用测量值校准ADVOFF寄存器。为测量ADC内部失调,ADC控制器将内部地连接至ADC输入,然后启动ADC转换。ADC控制器具有专用的通道选择地址25,指示ADC控制器测量ADC的内部失调。ADC控制器没有专用的数据缓存器储存ADC的内部失调结果。为存取内部失调转换结果,必须使用ADC控制器的地址覆盖选项。

用于ADC内部失调的地址覆盖选项

默认设置下,ADC转换结果储存在通道编号对应的ADC缓存器内。ADC控制器提供“地址覆盖”选项。该选项允许将ADC转换结果放在任意数据缓存器地址(0-24数据缓存器)。ADC控制寄存器(ADCN)具有地址覆盖控制位LOC_OVR。如果将该位置1,则允许用户选择一个替代位来储存ADC转换结果。ADC状态寄存器(ADST)的ADC转换配置寄存器选择位(ADCFG)置1时,替代位置由ADDATA[12:8]位(ALT_LOC[4:0])定义。

测量内部失调的ADC配置步骤

以下步骤介绍将DS4830的ADC数据和配置寄存器(ADDATA)配置为测量ADC内部失调信息。

  1. 以下位置为ADCN和ADST寄存器的对应值。

    1. 地址覆盖位(ADCN.LOC_OVR)置1

    2. ADC配置选择位(ADST.ADCFG)置1

    3. ADC寄存器索引位(ADST. DX[4:0])置0

  2. 写ADDATA寄存器(ADDATA)。ADDATA[4:0]位中的ADC通道选择位ADCH[4:0]应为25。此外,对ADDATA寄存器中的替代位置位ALT_LOC[4:0]执行写操作(0至24之间的任意值)。ADC内部失调转换结果放在替代位置位指向的数据缓冲器位置。例如:

    1. ADDATA = 0x0039;这将ADC配置为内部失调测量,差分模式,替代位置为0,增益为1,ADC右对齐。

    2. ADDATA = 0x4139;这将ADC配置为内部失调测量,差分模式,替代位置为1,增益为3,ADC右对齐。

    3. ADDATA = 0x6439;这将ADC配置为内部失调测量,差分模式,替代位置为4,增益为4,ADC右对齐。

  3. 将ADC配置选择(ADST.ADCFG)置0,ADC寄存器索引位(ADST. DX[4:0])置0。

ADC内部失调和校准

将ADC配置为内部失调测量后,ADCN寄存器中的ADC转换位(ADCONV)置1,开始ADC转换。ADC控制器将内部地连接至ADC输入,以测量ADC内部失调,启动ADC转换。转换结果为实测ADC内部失调。可从ALT_LOC[4:0]位指示(ADC配置期间设置)数据缓存器位置读取转换结果。

为校准ADC内部失调,将实测ADC内部失调取反(二进制补码)加至ADVOFF寄存器。表1为基于实测ADC内部失调的ADVOFF数值示例。这些ADVOFF数值假设工厂校准ADVOFF为0。ADC正常工作期间,最终结果传送至数据缓存器之前,将ADVOFF的数值叠加到转换结果。

表1. 用于ADC内部失调校准的ADVOFF寄存
Measured ADC Internal OffsetADVOFF Register (in Hex)
(in Decimal)(in Hex)
-2FFFEh0002h
-1FFFFh0001h
00000h0000h
10001hFFFFh
20002hFFFEh

:上电(POR)期间,工厂默认值覆盖校准值。

示例代码

main.c中的代码演示ADC内部失调校准步骤。

流程图

9155_odfq_2069.gif


登录icspec成功后,会自动跳转查看全文
博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。