ATme ADC性能优化与高级应用.pdfVIP

  • 0
  • 0
  • 约1.27万字
  • 约 12页
  • 2026-01-15 发布于四川
  • 举报

来自‑adc/

ATmegaADC

这是一个高级课程,适用于那些希望将您的ATmegaADC推向极限的人。深入介绍

ATmega328pADC(以防您使用的是Arduino)的工作原理,并展示超频或采样高阻抗源时的权衡。

但是,首先,我们想说:“记DIDR!”。也许最被忽视的ADC寄存器就是DIDR(数据输入禁用

寄存器),它会断开您正在使用的ADC通道的数字输入。这很重要,有二。首先,模拟输入会四处浮

动,导致数字输入不断在高低电平之间切换。这会在ADC附近产生过多的噪声,并消耗额外的功率。其

次,数字输入及其相关的DIDR开关具有与之关联的电容,如果采样高度电阻负载,这将减慢您的输入信

号。

不幸的是,Arduino并不会自动为您完成这项工作。但只需在您的setup()部分添加一行代码DIDR0=0×01;即可使用

ADC0。如果您使用的是ADC1,则设置位1;如果使用ADC2,则设置位2,依此类推。有关信息,请参阅

ATmega328p的第266页。

那么,现在我们解决了这个问题,ADC的速度可以有多快?ATmega给出了严格的警告,不要

超过速度限制:为了获得最大分辨率,ADC时钟频率应在50kHz到200kHz之间!那么,随着速度的提

高,分辨率会以多快的速度下降呢?为了测试这一点,我们设置了一个Arduino来使用其ADC采样纯正

弦波,并连接了一个CodecShield以各种ADC时钟频率下的样本。结果如下所示,详细解释见此处。

图1–ATmegaADC分辨率与时钟频率的关系。

Arduino的时钟频率为16MHz,限制了测试的频率数量。最快的频率(CK/2)无法工作。接下来的两个较低频率

(CK/4和CK/8)可以工作,但在回放时会产生间歇性的咔嚓声。

From

ATmegaADC

ThisisanadvancedcourseforthoseofyouwhowanttopushyourATmegaADCtoitslimits.Wewillgivein-

depthinformationontheinnerworkingsoftheATmega328pADC(justincaseyou’reusinganArduino),and

showyouwhatthetrade-offsareforover-clockingorsamplinghighimpedancesources.

But,tostartoff,we’dliketosay:“Don’tforgettoDIDR!”.PerhapsthemostoverlookedADCregister,the

DIDR(DataInputDisableRegister)disconnectsthedigitalinputsfromwhicheverADCchannelsyouare

using.Thisisimportantfor2reasons.Firstoff,ananaloginputwillbefloatinga

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档