This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] ADS112U04:ADC 输出偏移为分辨率的一半

Guru**** 2382630 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1327166/ads112u04-adc-output-offset-by-half-the-resolution

器件型号:ADS112U04

大家好!

我的 ADC (16位)返回的值似乎偏移了一半的分辨率。 例如、通过将输入 AIN0配置为 AINp、将 AIN1配置为 AINn、可获得如下结果:

- AIN0 = AIN1 = GND、        期望值:0、        ADC 给出的值:0
- AIN0 = Vref、 AIN1 = GND、   预期值:Vref、     ADC 给出的值:32767
- AIN0 = Vref、AIN1 = ADC/2、  期望值:-ADC/2、Vref  给出的值:49 152
- AIN0 = GND、AIN1 = Vref、   预期值:-ADC、Vref    给出的值:32768
- AIN0 = Vref、 AIN1 = GND、   预期值:0、        ADC 给出的值:0

值的编码范围为32768至32767、从0开始。

类似地、在配置单端输入时:

- AIN0 = GND、  预期值:0、       ADC 给出的值:0
- AIN0 = Vref、   预期值:65535、  ADC 给出的值:32767

奇怪的是、我基本上获得了正确的输出、因此我确信答案很简单...
我也非常确信 ADC 没有符号位。

以下是我使用的配置:

#define REG0_AIN0_AIN1    (CONFIG0_MUX_AIN0_AIN1 | CONFIG0_GAIN_1 | CONFIG0_PGA_BYPASS_YES_DISABLED)
// #define REG0_AIN0         (CONFIG0_MUX_AIN0_AVSS | CONFIG0_GAIN_1 | CONFIG0_PGA_BYPASS_YES_DISABLED)

#define REG1              (CONFIG1_DR_20_SPS | CONFIG1_MODE_NORMAL | CONFIG1_CM_CONTINUOUS | CONFIG1_VREF_INT | CONFIG1_TS_DISABLED)
#define REG2              (CONFIG2_DRDY_OLD | CONFIG2_DCNT_DISABLED | CONFIG2_CRC_DISABLED | CONFIG2_BCS_DISABLED | CONFIG2_IDAC_OFF)     
#define REG3              (CONFIG3_I1MUX_DISABLED | CONFIG3_I2MUX_DISABLED | CONFIG3_AUTO_MANUAL)                                         
#define REG4              (CONFIG4_GPIO2DIR_OUT | CONFIG4_GPIO1DIR_IN | CONFIG4_GPIO0DIR_IN | CONFIG4_GPIO2SEL_DRDY | CONFIG4_GPIO2DAT_LO | CONFIG4_GPIO1DAT_LO | CONFIG4_GPIO0DAT_LO)

感谢您的帮助

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好,Stan

    ADC 正在输出正确的代码。 ADC 确实有一个有符号位、且它输出的二进制补码格式的二进制值。

    例如  

    - AIN0 = Vref、AIN1 = GND、   预期值:Vref、     ADC 给出的值:32767

    这里给出的十进制值(十六进制7FFF ),二进制的是: 0111 1111 1111 1111 ,这是尽可能高的正值代码,对应于 Vref。

    Unknown 说:
    - AIN0 = GND、AIN1 = Vref、   预期值:-ADC、    由 Vref 给出的值:32768

    这个以二进制表示的十进制值(8000十六进制)为:1000 0000 0000 0000、这是最低值并 Vref 以二进制补码形式表示-0000。  

    数据表的第8.5.2节规定了这一点:

    希望这澄清了问题。

    此致、

    天使