为了更好的说明问题,下面摘取了21组采集电压对比
实际电压 | 被测电压 | 偏差 |
2985 | 2990 | -5 |
2925 | 2931 | -6 |
2836 | 2842 | -6 |
2738 | 2731 | 7 |
2656 | 2664 | -8 |
2506 | 2515 | -9 |
2371 | 2381 | -10 |
2237 | 2247 | -10 |
2057 | 2067 | -10 |
1922 | 1931 | -9 |
1727 | 1732 | -5 |
1472 | 1474 | -2 |
1338 | 1339 | -1 |
1278 | 1279 | -1 |
1173 | 1173 | 0 |
1083 | 1083 | 0 |
1008 | 1008 | 0 |
963 | 963 | 0 |
888 | 888 | 0 |
783 | 783 | 0 |
573 | 573 | 0 |
364 | 364 | 0 |
测试环境:ADUC814开发板,上面的单位是MV,3V外部基准源,被测量程在0-2988MV左右
现象:明显可见的是,当电压在1.5V以内的时候,精度是可以接受的,(因为确确实实不影响我计算)但是当超过1.5V的时候,线性度开始明显漂移,计算开始不准。
我取了个巧,分段软件减去漂移的值,领导说不行,非得弄明白,要不校正一下,但确实无法校正
因为如上面的表格上看到的,这个线性度是一个中间凸起的这么个情况。
漂移范围值(判断是否在这个电压范围内,如果再这个电压范围内减去对应波动值,数据就正常了。)
输入端是用板载OP491运放做的电压跟随器输入。
附:直接拿杜邦线,把ADC0短接到AGND上,仍然会有0x02的数字量产生,不是0,换算一下,电压值为1.465mv
刚开始用的2.5V外部基准源,也是这样的。刚开始以为是自己芯片质量问题,故换成3V基准,可还是这样。
好吧,我怀疑是不是我板载电压跟随器不行?我去市场买了两个OP291,结果还是一样的。
设置ADCCON3寄存器我试过了,按照数据手册上给定的值进行OFFET校准,一共两种状态,一种是补偿校准,一种是增益校准,结果试过之后,一种是采集值过低,一种是采集值相对偏高。
以上问题折腾2周了,请ADI工程师哥哥们指条思考的方向。。。