为什么同步ADC是如何采样的中ADC2要用外部触发

专业文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买专业文档下载特权礼包的其他会员用户可用专业文档下载特权免费下载专业文档。只要带有以下“專业文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

是连接模拟世界和数字世界的桥梁但桥梁有多种 - 有宽窄之分、快慢之分。同样ADC和DAC也有很多公司提供不同种类的器件如何从这些品类繁多的器件中选择适合自己项目的器件?由于ADC和DAC的差异性还是比较大的因此我们今天的文章就针对ADC来看一下:

ADC - 将在时间上和幅度上都连续的模拟电信号在一定序列的时钟信号的上升沿或下降沿对其幅度进行量化,生成能够用数字表征的信号幅度值如下图:

直观上理解,让数字化的信息能够尽可能不失真哋表征原来的模拟信号信息必须具备以下条件(先从静态的信号看):

对信号幅度的量化要足够的精细,也就是要达到一定的细致程度比如你向一个姑娘介绍对象,说一个身高1.75米的小伙身高一米多、不到两米(只用了10进制中的一个数字)姑娘肯定不满意,即便你说1米7哆、不到1米8(用了十进制中的2个数字)她还是不满意,一定要知道他究竟是1.75米还是1.78米如果你告诉他1.756m,她一定会觉得你吃饱了撑的因為最后一个数字她并不关心,她也不相信最后一个数字的准确性(1天24小时内会发生变化)因此描述小伙子身高的精度只需要3位数(十进淛),少了无法满足系统的要求多了在这种场景下失去了意义,本身也不准确

ADC应用中比较直观的就是对声音和图像的量化,就拿图像來比方如果你用一个bit表征一个像素点,那整个图像就量化后就是黑白的如果你用4bits来量化每个像素点,可以得到16级灰度的图像如果你對每个像素点分开三种颜色R、G、B分别以8位进行量化,则就可以得到普通肉眼分辨不出来细节的图像 - 在电脑上屏幕上你能看到一个让你想咬┅口的苹果如果你使用了R、G、B三色都为8位的ADC进行量化的话。

要不要再精细地量化更精细意味着耗费更多的bit数 -  ADC价格增加、存储空间也增加,未必给你的视觉效果带来任何改善除非某些用户的眼睛对细节的辨别能力超级的强。当然现在的照相机对每个像素点进行ADC是如何采樣的的分辨率远高于8bit(14bit的ADC很常用)why?这在以后的文章中会讲到主要是为了得到足够的动态范围,你可以在后期对图像进行亮度、对比喥乃至ISO等等进行调节,省去了ADC前面模拟电路的复杂设计

结论 - 量化精度的选取,也就是ADC的位数- 分辨率是非常重要的一个指标我们要根據实际要设计的系统的要求,综合考虑到系统的其它因素以及成本等选定一个合适的位数记住更多的位数未必给你更精准的信息,因为量化的过程取决于很多因素量化后产生的误差(error)可能让你后面的位数没有任何意义,比如一个人每天的身高从早上起床到晚上躺下其變化可能在1.75-1.76之间任何1.75x中国的x都是由于ADC是如何采样的时间不同导致的模糊性,也就相当于ADC的量化误差

想一下 - 量化误差取决于哪些因素?

汾辨率 - 如果你用1位数只能说1米多,而1米-2米之间的所有不同都被模糊掉了如果你用2位,则可以分辨的是1.7或1.81.7-1.8之间的所有不同也被模糊掉叻,因此由于分辨率不够就会导致量化的误差看下面的正弦波被不同位数的ADC量化后的数字表征,16bit可以非常精准地描述原来的模拟波形洏3bit的ADC是如何采样的则让我们看到像楼梯台阶一样的信号。当然这两个波形的ADC是如何采样的时钟频率也不同

线性度 - 你的量尺理论上应该是刻度均匀的,如果不均匀用你的标尺测量出来的也就有了误差,这种不均匀就是非线性我们用的所有ADC都是通过将输入

同内部的基准电壓进行比较来进行判决其所处的区间的,如果每个刻度比较的电路不一致自然就会造成非线性误差,是电路就会有不一致性因此非线性的误差一定是存在的,只是不同的工艺、不同的厂商的不同器件其线性度也不同因此非线性误差也就不同,一般器件会用积分非线性(INL)和差分非线性(DNL)两个指标来进行表征;比如ADI公司的8位ADC器件AD9283在其数据手册中给出的DNL和INL的数据 - 由于非线性导致的误差相当于最小分辨精喥(LSB)的值

供电噪声 任何被用来做基准的东西都应该是稳定不变的,比如ADC和DAC中使用的参考电压(内部转换成参考电流)只要是电源供電的电压,就无法100%保证其没有波动(噪声)无论是ADC的模拟电路供电电压,还是参考基准源的电压都需要尽可能保持干净,其上面的噪聲一定会导致量化误差

-网上有很多ADC与DMA结合的例程但是發现都是每次ADC转换完成就通过DMA传输给内存。-我现在希望达到这样的效果为了让AD转换值更稳定,需要其连续转换10次后再通过DMA传输给内存,... -网上有很多ADC与DMA结合的例程但是发现都是每次ADC转换完成就通过DMA传输给内存。
-我现在希望达到这样的效果为了让AD转换值更稳定,需要其連续转换10次后再通过DMA传输给内存,但是不知道怎么设置这个10次这个值
-之前的方法一直是在ADC终端里,通过软件判断转换次数达到10次后洅软件赋给指定内存,不知道这次能不能用DMA实现这个方法

多次采集取平均值即可,给你个我写的四通道转换想更平稳的话可以在条件尣许的情况下简单的用下递推平均滤波

 
请问是谁来调用的ReadADCAverageValue,是在DMA的中断还是在还是在需要调用ADC值之前的代码中进行?

我要回帖

更多关于 ADC是如何采样的 的文章

 

随机推荐