ADC上的DNL,INL和ENOB异常差


8

我目前正在尝试表征MCU及其外围设备,尤其是板载ADC。但是,运行常规测试程序(即,对于ENOB为正弦波,对于DNL和INL为锯齿波),我发现结果相当差。长话短说,ADC“是” 12位-意味着人们期望其中有大约10位的分辨率。但是,无论我如何尝试,ENOB似乎都稳定在8.5位左右。与DNL和INL相似-我获得的最佳结果是对信号进行64次过采样时。第44页的数据手册确实说过,人们可能希望DNL约为±3 LSB-但是,这就是我超采样时得到的。原始信号的峰值约为7 LSB。到目前为止,我尝试了一些操作:

  • 在ADC输入和地之间接一个10 nF的电容(在某种程度上确实起作用-如果没有ENOB为7.5)
  • 对4倍,8倍和其他一些像素进行过采样,最高可达256倍。就像人们可能期望的那样,这也改善了结果,尽管效果并不明显。较大的过采样会产生更好的结果,而4倍几乎等于没有过采样。
  • 降低ADC模块时钟并增加采样窗口。这些都不是特别有效。增大采样窗口对ENOB和DNL的影响很小。放慢时钟时间并没有任何效果。
  • 同样,使用外部或内部引用似乎也不会产生效果,尽管我没有对外部引用进行大量实验-也许这是下一个要考虑的问题。对有一天可能阅读的人的参考文献进行小的编辑 - 在我的情况下使用外部参考文献会产生较差的结果。换句话说,我的MCU上的内部参考似乎更准确-或外部参考不如我预期的好。

现在的问题是,在什么时候可以接受ADC质量低劣或某种程度上受到损坏?我可以尝试其他哪些测试来改善ADC特性。请注意,我使用函数发生器生成输入信号。在这一点上,我只是被卡住了-即用尽了论坛线程 阅读 -我将非常感谢任何建议。


您检查PS了吗?是切换模式吗?如果可以,可以在PS和ADC之间放置一个LDO吗?您检查ADC时钟的质量了吗?
Claudio Avi Chami

这些错误与预期的一样。数据表说在最坏的情况下为6 LSB。您可以尝试进行一些校准,或者更好地使用单独的ADC进行精确测量。

@ClaudioAviChami我相信我的是线性电源。它是Rigol DG2041A。您能否向我暗示我可以从哪里开始检查ADC时钟-快速的Google搜索似乎没有希望:)
fandor

1
什么源阻抗正在馈送ADC?您可能需要一个缓冲放大器。
Brian Drummond

@BrianDrummond我一定会在明天早上进行设置并将其发布在此处时进行测量。感谢您的建议!
fandor

Answers:


11

就个人而言,我不是经验法则的忠实拥护者,但是有些规则非常准确,即使我也例外。

这些规则之一如下:

微控制器ADC外设总是很糟糕。

总是。 您不会贬低那种可怕的事情。这种可怕的状况使您在淋浴时以胎儿的姿势哭泣。

我开玩笑,但只有一点点。要回答您的问题,是的,ADC实际上就是那么糟糕,是的,您应该接受它。请注意大的免责声明,指出“适用工作条件”。在数据表中。

您必须记住,对于某些零件(例如MCU),数据表也是营销材料,MCU通常在外设或功耗(或两者)上竞争。因此ADC的数据通常在技术上正确,只要您在相同的荒谬和不切实际的情况下使用ADC,就可以对数据表进行测量。我经常看到的一个最喜欢的方法是测量所有其他外设的ENOB以及在深度睡眠中完全断电的实际处理器内核。另一个是使用大量的软件后处理和类似的技术(例如过采样)来获取测量结果。我认为我从未见过没有以“这是您将有可能实现的最好结果,我们可能会甚至可能不会告诉您我们如何管理它”的规范来规范ADC的MCU数据表。 “这是您尝试清除软件中信号之前的规格”。

而且,需要明确的是,听起来至少与所有其他糟糕的MCU ADC相比,该器件具有非常好的ADC。8.5位?如此富裕!真是资产阶级!大多数时候,你会得到可能来自MCU的10位ADC 6位。请记住,当他们说12位分辨率时,它们意味着您可以从某个地方的某个寄存器读取12位。没有任何暗示,它们不会是12位无用的噪声。唯一的保证是某物将有12位。

现在,在这一点上,您可能会有点怀疑这些模拟外设是否总是如此可怕,或者至少是想知道为什么有些芯片公司不会简单地发布带有中途模拟前端的MCU。

好吧,他们不能。引用的好坏并不重要,这不是稳定性问题。是噪音 和物理学。

在与MCU相同的硅芯片上,实际上在物理上不可能创建高性能(或者实际上只是中等性能)的ADC。只需花一分钱就能搞定模拟性能。在这种情况下,没有一个陷阱,而是几个。

首先,只有一个CMOS晶体管开关会将所有的谐波和噪声直接倾倒到所有物体中,并在开关时耦合到所有物体(您猜对了)。我们倾向于认为CMOS的为低功率(它是),但它是在心中值得保留的是CMOS电源确实使用实际上为零-在将晶体管改变状态时除外。它们会非常快速地改变状态,大约数十皮秒到数百皮秒。当您消耗几乎不带静态功率的东西消耗的12毫安电流,而所有这些电流完全变成了强烈电流时,100ps的电流尖峰实际上就是数百万个小杂种开关,总开关...好吧,那应该重新构架。至少对于模拟量来说,那几毫安比看起来更险恶。低功耗≠低噪声。CMOS是低功耗的,因为它只需要开关电源。但是,它的切换要比低音阶低音下降更难。

这些尖峰都必须穿过基板,ADC共享的基板,并且必须足够阻性,以引起基板中的局部接地反弹,这对于数字电路来说毫无意义,但对于任何模拟电路而言确实非常麻烦。

确实没有办法解决。那只是一个问题。另一个是实际上不可能创建可以与MCU共存的高性能模拟布局,这将需要同时使用这些引脚作为GPIO,以及其他考虑因素,这些因素会严重破坏任何良好的模拟部分的机会。布局。

现在,有一些具有稍微改进的ADC的专用MCU,通过在一个封装中实际具有两个完全独立的硅芯片(通过键合线连接)来实现此目的,从而实现了基板隔离。不过,您需要为此功能付费,并且由于纯粹的接近性,结果仍然会比专用ADC差。

哦,我什至还没有谈到所有这些都假定您在与模拟和数字部分有关的所有方面都拥有完美的外部布局以及接地和去耦的情况。仅仅问这是不平凡的,就问亨利·奥特

因此,总而言之,我担心您芯片上的ADC确实如此可怕。就像其他所有MCU ADC一样。抱歉。要么就足够了-对于许多应用程序(由一些相当聪明的软件 ry-pun!辅助)-都可以。只要您很聪明,即使在模拟性能不佳的情况下,真正可以完成的工作也令人惊讶。但是聪明只能带你走远。如果您想要冷,有效的位数,您真的只需要硬着头皮,使用专用的ADC以及仔细的PCB布局和去耦,或者考虑使用更专门的部件(例如多管芯封装)。


3
每日报价为+1:“ CMOS的功耗很低,因为它只需要开关电源。但是,它的开关比低音阶低音下降更难。”
阿拉霍

我注意到,这部分使用电荷重新分配方式的ADC,它们有其独特的问题:analog.com/en/search.html?q = an
Peter Smith
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.