TI中文支持网
TI专业的中文技术问题搜集分享网站

为什么ADC 每次测量结果有很大不同?

我用 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]         

Chen Jones:

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

SOC0~SOC15,同一个channel?

我用 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]         

Joey Mao:

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

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

我用 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]         

Miao Yu:

回复 Joey Mao:

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

我用 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]         

Miao Yu:

回复 Chen Jones:

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

我用 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]         

Joey Mao:

回复 Miao Yu:

Miao Yu

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

我用 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]         

Miao Yu:

回复 Joey Mao:

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

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

我用 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]         

Chen Jones:

回复 Miao Yu:

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

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

我用 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]         

Xiaowei Yu:

回复 Chen Jones:

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

赞(0)
未经允许不得转载:TI中文支持网 » 为什么ADC 每次测量结果有很大不同?
分享到: 更多 (0)