为什么大多数ADC(如Arduino上的ADC)都提供10位分辨率而不是8位或16位?
它们似乎不符合标准数据大小,尤其是集成数据大小,这似乎很奇怪。
为什么大多数ADC(如Arduino上的ADC)都提供10位分辨率而不是8位或16位?
它们似乎不符合标准数据大小,尤其是集成数据大小,这似乎很奇怪。
Answers:
将SAR(逐次逼近)ADC扩展为转换16位并没有很大的技术问题,但是问题是您开始看到模拟前端的本底噪声。这往往使客户感到恐慌,因为他们看到ADC代码跳来跳去,而并不总是意识到他们正在查看数十微伏的偏差。
假设参考电压为5.00 V,ADC为10位,则LSB表示电压为4.88 mV(5 V×2 -10)。对于参考电压为5.00 V的16位ADC,LSB电压为76 µV。
但是数字系统中的电源并非精确地为5.00 V,通常在4.75 V至5.25 V的范围内指定。每当微控制器内部发生开关瞬变事件时,都会有少量电流脉冲引起电源抽搐的电压。如果LSB约为5 mV,您可能几乎看不到它,但是在76 µV的水平上,很难看不到这种噪声。
实际上,一旦您通过了12位ADC,您确实需要一个模拟参考电压,而不仅仅是使用数字电源。这样就增加了一些成本。为了获得最佳结果,该电压基准实际上应该是一个单独的芯片,具有自己的电源线,并且理想情况下,它应该远离热/嘈杂的数字电路。
如果希望16位ADC提供稳定的读数,则需要非常干净的参考电压和热控制,最好使其远离任何快速切换的数字信号...因此将16位SAR集成到与微控制器相同的芯片实际上会击败拥有这些额外位的目的。您只需要在这些额外的位上测量随机噪声即可。
有一些客户应用程序确实使用高分辨率ADC。我工作的公司有很多这样的公司。自动化测试设备(ATE),医学超声和某些其他特定类型的客户确实使用高分辨率ADC,在某些情况下为18位或什至24位。
对高分辨率ADC进行生产测试非常耗时(因此很昂贵)。需要这种性能的客户需要为外部独立ADC支付高昂的费用,而不是许多现代微控制器内置的廉价SAR类型。
然后是诸如雷达或数字采样示波器之类的高速应用,它们需要以100 MHz或更快的速率进行采样-以这些速度,您很幸运地获得了8个有意义的位。
在分辨率和成本之间进行权衡。
8位给出2 8 = 256个组合,其中0为1,剩下0到255作为可能的数字值。对于许多应用程序而言,这还不够。每增加一位,分辨率就加倍,而10位则给出1024个步骤,对于大多数项目来说已经足够了。工业系统可能使用12位甚至更高的分辨率。
高分辨率ADC需要更严格的容差,并且制造成本更高。
已经提出了许多好的和有效的观点。多年来,我已经广泛使用了8、10、12和16位ADC,如今,以4或5微秒的转换时间实现16位相当容易(可用的更好,我会坚持可行的做法)供大多数人使用)。但这包含一个精密的梯形网络,通常使用薄膜电阻器,以及各种高度专业的模拟设计技术。(在精密ADC电路中的某处几乎总是需要高性能双极晶体管,但是所有现代微控制器都是CMOS,因此有许多额外的制造步骤可以将具有良好模拟精度和CMOS逻辑的任何东西组合在一起。 )一个好的ADC还比大多数微控制器要贵!制作起来并不容易,
例如,考虑一下TI ADS8509,它的前身ADS7509不太快,我已经在一个大型且重要的项目中的许多地方使用过。
http://www.ti.com/lit/ds/symlink/ads8509.pdf
按照今天的标准,这相当平凡。然而,其内部设计功能与微控制器的廉价制造工艺不兼容。而且,它的成本高达15.72美元,比大多数微控制器都要高。我以裸露的半导体裸片的形式使用它们,并结合到密封的金属罐混合结构中,并精心设计了支持电路,实际上确实只获得了超过1 LSB pp的噪声,所以只要您知道自己在做什么,就可以做到这一点,并且有资源,包括预算。但是您永远不会在微控制器内部或周围看到如此低的噪声。
正如至少一个人所解释的,主要问题是数字电源轨上的噪声将直接影响ADC。现在,您可以通过使用良好的外部参考电压来解决该问题,该参考电压为此提供了一个引脚,但是您也需要能够对地进行同样的操作。而且,这些引脚必须限制在数字电源和地面的几百mV以内,否则会发生故障。另外,当然,芯片内部的内部噪声耦合会从逻辑上以时钟频率以复杂的方式改变状态,更糟糕的是会从I / O引脚改变状态,其中一些可能会驱动和切换10s的mA。已将它们加载到极限。噪音,噪音和更多噪音...
我引用的部分(与Google相比,价格更便宜,速度更快或其他部分,都在灵活性和成本之间进行权衡)具有SPI接口,因此它很容易在微控制器外部使用,并具有自己的本地接地层,滤波等。然后,小心,它确实会给您16位。
过去很难从12位ADC中获得大约10个以上的无噪声位,而且仍然处在肮脏的环境中,例如接近数字逻辑,这在很大程度上就是为什么处理器芯片中的板上ADC是或多或少地停留在该决议上,并且可能永远存在。但是TI有32位外部芯片。尚未查看数据表或成本...
如果您可以牺牲绝对精度(即比例因子可能超出5%或更多,更不用说DC偏移及其随时间和温度的漂移了,但是线性度会非常好),音频级ADC可能适合您。它们至少为16位,是为大众市场设计的,因此通常物有所值,但不要期望在必须测量+/- 0.1%的DC信号的精密仪器中使用1位。
您不能一次拥有所有东西。这是最重要的问题。精度,噪声,长期漂移,速度,成本,功率,接口类型(串行或并行)等。另外,您可能需要多路复用多个通道,因此需要快速的阶跃响应时间,这排除了许多sigma-delta ADC,否则具有一些非常好的特性。
选择ADC时。Google一如既往是您的朋友。TI,Linear,National和其他各种半导体制造商提供了大量文章和应用笔记。始终提防数据手册中没有告诉您的内容,并检查竞争对手所强调的参数。
但是,如果您希望所有这些都在微控制器芯片上,则不要计划在项目中使用超过10位(可能使用9位,LSB噪声很大)。并且,如果您的芯片允许,则计划单独的模拟参考和接地。这样,您就不会浪费时间。
由于0.49%的步进,很难使用8位ADC-我已经足够了。专门为业余电子产品设计的Arduino使用了4倍的步长,接近0.1%,这接近普通运放或晶体管传感器电路预期可实现的信噪比(加上嗡嗡声)。更好的选择是浪费在业余级的家用电子产品上,更糟糕的是,它过于笨拙和恐怖。
虽然16位ADC可以在市场上买到,但它们需要更长的时间才能稳定下来,在此期间嗡嗡声或噪声已经移动,因此您无法获得更好的测量结果,而且测量速度也较慢。
ADC进行转换时,它将为连续的模拟信号提供数字(量化)值。由于在转换时刻数字值将不完全是模拟值,因此可以将差异视为加性噪声。ADC的分辨率越高,数字值与模拟值越接近。换句话说,我们通过增加ADC的位数来改善信号量化噪声比(SQNR)。因此,10位ADC优于8位ADC(大约12dB)。
就SQNR而言,使用16位A / D会更好。但是,它们更昂贵。在许多应用中,10位ADC提供了足够的所需SQNR。
通常,您希望曲线中的位数应使量化步长低于系统(模拟)本底噪声的一点。
使用更多的位,从而使量化步长进一步降低至本底噪声以下,您在整体噪声性能上的改善将很小,但使用更多的硅要么会使转换时间更长,要么要求转换器的内部运行更快(并因此而产生噪音)
使用较少的比特并因此在本底噪声以上具有量化步长通常是不好的。这意味着您在浪费模拟电路的性能,并且在某些情况下,它会创建无法通过平均消除的系统误差(实际上,有时设计人员会故意将噪声添加到系统中,以避免量化带来的系统误差)。
8位和16位之间的差异是巨大的。前者以量化步骤结束,即使在噪声性能相当差的系统中,量化步骤也太大。后者浪费在没有非常仔细的模拟设计的任何系统上。因此毫不奇怪,微控制器最终会介于两者之间。
请注意,人们经常谈论“量化噪声”,但重要的是要记住,“量化噪声”的概念是简化的现实模型,在某些情况下会崩溃。