1. 外部被采样信号从
单片机特定的引脚输入ADC模块,具体信号从哪个采样引脚输入,取决于‘通道选择’配置。
2. 当正常开始采样后,被采样信号在规定的时间(即采样时间)内对图中的电容(即采样保持电容,简称采保电容)充电,当充完电之后会控制图中的开关断开,这个过程就像科学家提取了一份标本,拿回实验室研究一样。
3. 当开关断开之后,图中的转换模块会花费一定的时间(即转换时间)对电容中的存的电压进行转换,并把转换的结果存入缓冲器,供程序员读取使用,同理,就像科学家对提取的标本花时间研究,得出一个结果。
以上就是整个的ADC工作过程,虽然草草几段话了解,但是其中不乏很多关键的细节问题,什么细节问题呢,很多老铁会想,这不都是自动的嘛,有嘛要注意的,那么我们先来看一下这样几个问题:
1. 采样时间设置多久?
2. 采样时间是越短越好还是越长越好?
3. 采样时间设置的大小和被采样信号的源内阻有什么关系?
4. 如何从有干扰的信号中提取有用的采样信号,实现正确采样?
5. 采样的结果和参考电压有什么关系?
现在我们就上面几个问题,展开说明:
从上面的描述可以得到:从采样到转换完成中间有2个时间:采样时间+转换时间(转换时间是固定的,采样时间可以设置),这两个时间决定了ADC采样的速度问题,当需要高速AD采样的时候,这两个时间尤为重要,因为它决定了采样速度。
我们再回头来想,这里是被采样信号先对采保电容充电,因为转换时间是固定的,我们能配置的就只有采样时间了,是不是说采样时间我们配置的越小越好呢?答案是:不是的,最起码得保证采保电容电压和被采样信号的电压非常接近吧,如果一味的小,追求速度快,那采保电容充不满,转换出来的数据也不对。
那就带来了一个问题,即这个被采样信号源内阻的问题,说白了就是对这个采保电容充电的电流够不够大,只有充电的电流大了,才能在最短的时间内充满。如果充电的电流非常小,恰恰配置的采样时间又很小,结果只有一个,采样不准确,我们经常看到,有的设计方案,做电压采样,分压电阻设计的阻值非常大,当这样的大阻抗遇到高速采样,那就有可能会不准确了。
大家看上面的R1、R2设置大了,那么充电电流就小了,那么R1、R2的阻值设计小了,充电电流大了,那么带来的问题功耗就大了,当需要高速采样的时候,就需要注意这个阻值分配的问题,对功耗要求比较高的产品,如可穿戴产品,蓝牙耳机,智能手表等,这个就需要大的阻值了,一般情况下功耗要求不高的场合,我们基本上设计在1-2mA,所以从此可以得出一个结论,采样时间不是越快越好,也不是越慢越好,恰到好处即可,需要你去实际调试。
如何从带有干扰杂波的信号中提取到有用的信号呢,一般情况下,我们会根据系统的特性进行定点采样,即避开干扰区来采样提取有用的信号,再配软件或者硬件滤波手段来提取有用信号。
采保电容得到了准确的采样信号,就一定意味着转换结果准确吗?答案肯定是NO,这个和参考电压也有关系,参考电压就像一标准样品一样,举例来讲:老板说照着这个样品给我做100个,那首先前提是你的样品得准确,如果样品都不准确,那做出来的东西也必然会有偏差。
想必通过上面的描述我们已经对ADC采样有了一定的理解认知,上面的描述只是ADC的一部分要点,介于篇幅原因,这里就不再赘述了,文末留个大家几个问题:大家看图中绿色地方加的电容,这个电容加了好还是不加好?加多大好?在布板的时候这个电容应该摆放在哪里比较好?