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.

adc测量范围

Other Parts Discussed in Thread: ADC3563

这是TI网站上关于adc的一个培训视频,如上所述,为什么最大可检测范围是满量程减去一个LSB?而不是满量程呢?它不是将满量程等分成了2^n吗?应该每一份都对应着一个二进制码呀?为什么最后一段测不到呢?

  • 您好,
    因为可以采集的代码数是2^N,比如说4(N=4)位分辨率的ADC,其代码数0000~1111为从0~15,是2^4个,即16个,FSR为2V的话,一个LSB是0.125V,最大的代码是1111(十进制是15),转换成电压是15*0.125=1.875V,因此最大可以 检测范围是满量程减去一个LSB,即2V-0.125V=1.875V
  • 谢谢,那实际上就是0000~1111对应0~1.875V。视频中干嘛不直接说把0~1.875V用0000~1111来量化编码。为什么一开始要引出2V的概念呢?毕竟测量的最大值只能到1.875V。之前在学校学8位SAR ADC的时候也是说00~FF对应0~+5V。
  • 引入满量程范围FSR这个概念,这可能是为了方便计算ADC的LSB,LSB=FS/2^N
  • 哦,那LSB是不是也可以用LSB=最大测量值/(2^n-1)来算?比如,上例中LSB=1.875/(2^4-1)=0.125,就是0000~1111把0~1.875V分成了15个间隔,每个间隔就是0.125V。
  • 可以,意思就是把多少电压平均分成多少分,采集端可以采集的最低单位是多少,只是使用了不同的表述方式
  • 对,再请教一下,一个n位的ADC的分辨率是2^n吧?就是该ADC能准确识别出测量范围内的2^n个电平,其余不在这些电平上的电压只能近似到这些电平上。就像一把有2^n个刻度的尺一样,拿这把尺去测量输入的模拟电压,然后输出电平对应的二进制编码。为什么网上有些文章中把ADC的分辨率说成是1/2^n呢?这种说法不对吧?
  • 对于数据转换器,说分辨率一般是说几位的分辨率,比如说ADC3563的分辨率是16 bits。看分辨率其实就是看把需要采集的信号平分成多少份,我认为不用纠结于怎么表述这些参数,看到别人的表述能够明白其中的含义就可以了

    分辨率只是一个理性的参数,ADC具体测量的精度需要看INL、DNL、失调误差、增益误差 ,建议看下:
    ADC Accuracy Part 1: Is accuracy different from resolution?:
    e2e.ti.com/.../adc-accuracy-part-1-is-accuracy-different-from-resolution
    ADC Accuracy Part 2: Total unadjusted error explained:
    e2e.ti.com/.../adc-accuracy-part-2-total-unadjusted-error-explained
  • 你好,理解你的意思,就编码对应关系而言是0000—0V,0001—0.125V,……,1111—1.875V,但是按照图中这种近似方法,1.875V~2V之间的信号不都是用1111来表示吗?为什么说最大检测范围只能到1.875V呢?就是这点不明白,谢谢

  • 是的,您的理解是正确的,上面那个图画的不是太准确,其实这里面还牵涉到ADC的量化误差问题,看这个截图,横坐标是模拟输入,纵坐标是转化的数字输出,在红色箭头部分,在模拟输入 ≤ 1/2LSB 时输出为000b, 1/2LSB <模拟 输入 ≤ 1 LSB 时输出为001b,而实际输入范围是0-1 LSB,其实ADC 是无法分辨在0 - 1/2 LSB,或是1/2 LSB - 1 LSB 之间的输入。在0 - 1/2 LSB区间内它就认为是0,在1/2 LSB - 1 LSB 区间内它就认为是1,在最坏情况下,实际输入和量化之后的值之间有1/2 LSB 的误差。也就是说ADC 的量化误差为±1/2 LSB。

    同理,在模拟输入13/16至15/16之间(上图两长竖线之间,即6.5V~7.5V)是被认为是111(在这里N=3,FSR=8,那么1LSB=1V,最大可检测输入电压为7V)

  • 谢谢您的详细解答。