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: CONTROLSUITE

我用 F2837X controlCAD 的ADC测量一节AA电池。万用表测量电池电压是1.624V。 ADC每次测量结果都不一样。谁知道为什么吗?程序用的是ControlSUITE 里面的例子“adc_soc_continuous_cpu01” 。 下面是我截取的两轮的测量结果。

ADCRESULT0      0x07E2  ADC Result 0 Register [Memory Mapped]           

ADCRESULT1      0x0816  ADC Result 1 Register [Memory Mapped]           

ADCRESULT2      0x0805  ADC Result 2 Register [Memory Mapped]           

ADCRESULT3      0x07DE ADC Result 3 Register [Memory Mapped]           

ADCRESULT4      0x07FC  ADC Result 4 Register [Memory Mapped]           

ADCRESULT5      0x0807  ADC Result 5 Register [Memory Mapped]           

ADCRESULT6      0x07D2 ADC Result 6 Register [Memory Mapped]           

ADCRESULT7      0x0800  ADC Result 7 Register [Memory Mapped]           

ADCRESULT8      0x07DC ADC Result 8 Register [Memory Mapped]           

ADCRESULT9      0x07E7  ADC Result 9 Register [Memory Mapped]           

ADCRESULT10    0x080D ADC Result 10 Register [Memory Mapped]         

ADCRESULT11    0x07F3  ADC Result 11 Register [Memory Mapped]         

ADCRESULT12    0x07F7  ADC Result 12 Register [Memory Mapped]         

ADCRESULT13    0x0818  ADC Result 13 Register [Memory Mapped]         

ADCRESULT14    0x07FB  ADC Result 14 Register [Memory Mapped]         

ADCRESULT15    0x07F5  ADC Result 15 Register [Memory Mapped]         

  • 请问楼主用的是同一个Channel采样的么?

    SOC0~SOC15,同一个channel?

  • 请问楼主每次结果不一样,具体的误差是多少,换算成电压后的误差又是多少?

    通过电路由ADC采样到的电压是有一定的误差的,不可能每次一样

  • 误差很大,最大值和最小值能相差0.05V呢!也许我应该在ADC输入之前加一个运放也许会好一些。

  • 是的,都是对channel 0 连续采样。

  • Miao Yu

    误差0.05V/1.624V≈0.03, 一般来说3%的误差算是正常了,要看你对信号的要求,如果要求更高的精度,就需要硬件和软件的处理来提高精度了。

  • 这个误差范围应该是接受不了的。硬件方面的处理应该就是加运放和滤波吧? 对于软件处理,由于误差不确定,是不是只能取平均值呢?还有其他什么办法吗? 

    我们想用这个ADC来做数据采集(振动),之后还要进行频率域分析。噪声太高肯定不行的。不知道是否需要使用单独的ADC芯片?谢谢啦

  • 在硬件方面,楼主可以加一个 Voltage Reference,能提高一点精度,因为ADC自带的Reference是通过Band Gap产生的。

    在软件方面可以做一些过采样等算法补偿。

  • ADC Ref 用的是controlCAD 上面的3.3V,应该是精确的。Averaging 结果也不对。有谁用过F28377D上面的ADC吗?你们用的精度怎么样啊?

    DEC Voltage Error DEC Voltage Error
    ADCRESULT0 2019 1.626635742 0.003636 ADCRESULT0 2023 1.629858 0.006858
    ADCRESULT1 2020 1.627441406 0.004441 ADCRESULT1 2024 1.630664 0.007664
    ADCRESULT2 2021 1.62824707 0.005247 ADCRESULT2 2024 1.630664 0.007664
    ADCRESULT3 2023 1.629858398 0.006858 ADCRESULT3 2024 1.630664 0.007664
    ADCRESULT4 2023 1.629858398 0.006858 ADCRESULT4 2024 1.630664 0.007664
    ADCRESULT5 2024 1.630664063 0.007664 ADCRESULT5 2025 1.63147 0.00847
    ADCRESULT6 2024 1.630664063 0.007664 ADCRESULT6 2025 1.63147 0.00847
    ADCRESULT7 2025 1.631469727 0.00847 ADCRESULT7 2025 1.63147 0.00847
    ADCRESULT8 2025 1.631469727 0.00847 ADCRESULT8 2025 1.63147 0.00847
    ADCRESULT9 2025 1.631469727 0.00847 ADCRESULT9 2026 1.632275 0.009275
    ADCRESULT10 2026 1.632275391 0.009275 ADCRESULT10 2027 1.633081 0.010081
    ADCRESULT11 2027 1.633081055 0.010081 ADCRESULT11 2027 1.633081 0.010081
    ADCRESULT12 2027 1.633081055 0.010081 ADCRESULT12 2027 1.633081 0.010081
    ADCRESULT13 2028 1.633886719 0.010887 ADCRESULT13 2028 1.633887 0.010887
    ADCRESULT14 2030 1.635498047 0.012498 ADCRESULT14 2028 1.633887 0.010887
    ADCRESULT15 2030 1.635498047 0.012498 ADCRESULT15 2029 1.634692 0.011692
    Average 1.631318665 0.008318 1.632023 0.009023