一.引入
在学习ADC之前首先我们要知道什么是ADC,ADC有什么用?
引用百度上的一句话,我们处在数字时代,但是我们的视觉,听觉,感觉,嗅觉,等感知的却是一个模拟时代,如何将两者联系起来就需要模拟数字转换器(ADC),和数字模拟转换器(DAC)显身手的时候了。
说的很玄乎,简单理解就是通过我们的设备将摸不到的温度,显示成37摄氏度,然后你就知道该穿什么衣服了。
而在我们嵌入式的应用中呢,任何一个信号系统,都需要我们的传感器探测电压,电流,温度,压力,等信号,然后通过放大电路放大,在通过ADC转化为数字信号,有了数字信号,就可以通过单片机等MCU进行处理,得到我们想要的数据。
如果我们想使用ADC,有像stm32这种的mcu自己内部集成了ADC,也可以选用外部的ADC通过IIC,串口等方式与MCU进行对接,不管哪种方式,ADC的原理和实现是一样的。
针对不同的应用场景我们选取的时候肯定要根据自己的需求来,成本,精度,速度等很多方面来选取ADC。比如我们想采集一个不需要很准确的信号的时候就可以选用MCU内部的10位的ADC,向我们医疗设备要求精度高,采样快,我们可以选用一些外部牛逼的ADC。
一说到ADC,都会问是10位的,12位的还是16位的,那么这又是什么意思呢??
10位就是10位2进制的意思0-1023
12位就是12位2进制的意思0-4095
16位就是16位2进制的意思0-65534
说的也就是ADC的分辨率。
比如说我们想采集一个3.3v的电压值,3.3v分成1024份表示和分成65535份表示,
那当然65535表示的精度更高。
这里我们老是说多少“份”,好low偶,ADC里叫LSB,也就是1023 LSB。记住了偶。
二.如何选择ADC
当然我们在选择ADC的时候除了要知道他的分辨率,参考电压,还有速度之外。还要知道一些ADC的性能指标。这些性能指标会影响你的采集精度,虽然你可以说后期通过各种牛逼算法校准过来,但这些属于你的基础,你非得选个1.5米的小个子去扣篮,你鞋再牛逼也不太可能啊。
就好像我们在选择手机拍照的时候,总是喜欢对比摄像头多少万像素,但是有时你会发现
苹果800万像素有时比你2000万像素的山寨机拍照效果还好。(要考虑综合参数)
下面是一个stm32 ADC部分的datasheet
1.总未调整误差(ET):实际转换曲线与理想转换曲线最大差别
2.偏移误差(EO):实际转换-理想转换
3.增益误差(EG):最后一次转换-理想转换
4.微分线性误差(ED):实际步长和理想步长的最大差别。
5.积分线性误差(EL):实际转换点与终点连线的最大差别。
上面是ADC的一些内部特性,里面的误差由厂家来把控,不用我们操心,你家说在这个范围,肯定是在这个范围,只要确定这个范围值满足不满足你的项目。
但是选型完毕,你就万事大吉了?打好了地基,并不说明你盖好了高楼。
三.外部的ADC误差来源:
1.电源噪声
通常参考电压 = 电源电压 = 3.3VDC (PS:也有5v等等)
当电源噪声叠加到电源电压上,引起测量误差。
电源电压: 3.3VDC
输入信号: 1.0VDC
电源噪声: 0.04VDC
误差: 1 / (3.34-3.26)*4096 (12位AD)
2.输入噪声
当输入噪声叠加到电源电压上,引起测量误差。
电源电压:3.3VDC
输入信号:1.0VDC
输入信号噪声:0.04VDC
误差: (1.04-0.96) / (3.3)*4096 (12位AD)
3.信号源阻抗的影响
源阻抗RAIN和芯片内部电阻RADC,影响充电时间,
从而影响测量结果,Tc =(RAIN+RADC)*CADC。
4.信号外部电容和PCb分布电容影响
外部电容CAIN和分布电容CP,影响充电时间、频
率,从而导致测量误差。
上面基本上误差的引入分析完了,当然只是说的一些大碴子,肯定还有很多其他的小误差,这里不说了。
四.如何来减小误差
电源和地线之间增加0.1uF和1-10uF钽电容。
2.通过降低输入信号的噪声
增加外部滤波器,如RC低通滤波,带通、高通滤波等,保证需要频率信号有效,阻断或限制不需要的噪声。
通过信号的多次采样,通过软件平均的方法,可有效消除不频繁变化模拟信号上的噪声。
3.调整ADC采集的动态范围
充分利用AD可测量的范围,提高参考电压和采用前置放大器。
4.选取合适的源阻抗
假设最大允许误差1/2LSB,也就是VAIN-VC=1/2LSB,VC为内部实际电压,VAIN为输入电压。
已VAIN=VREF输入时,ts为采样时间,计算最大源阻抗。
Rmax=(RAIN + RADC)max
N为ADC分辨率
Rmax=ts / (CADC * ln(2^(N+1)))
最终计算公式:
例:
fADC=14MHz,CADC=8pF,RADCmax=1kΩ,当采样Ts=7.5秒时,误差1/2LSB时的RAINmax是多少
5.合理布线减小数字信号(I/O引脚)对模拟信号的影响
信号线用地线隔离
6.减小EMI(电磁干扰)
采用屏蔽线将远距离信号连接到PCB,屏蔽层在信号接收端接地。如下图
7.合理PCB 布局,采用数字模拟分开布局方式
8.合理PCB布局,采用独立电源给模拟和数字供电,星型网络连接模拟,数字地
9.高输入阻抗源信号采样减小采样误差的方法
当S1开关闭合时,Csh上电压会施加到输入管脚上,当采样结束S2断开时,Csh上电压不能有效释放,导致测量电压不准,通过添加Cext减小,使得采用完成后,Csh上电压得到有效释放如1/2LSB。
当我们把前期工作做好之后,再通过牛逼的算法加持(平滑等),一定能够获得满足要求的精度。