ADC 采样电压为何偏离理论值?实时控制 MCU/DSP 输入阻抗解析

来源:纳芯微电子 电路设计 15 次阅读
摘要:“为什么我在学习板/开发板上面测试都是正常的,上工程样机的时候,ADC采样就会有问题?” 工程师在使用DSP进行ADC采样测试的时候,有可能会遇到以上难以理解的问题。导致ADC采样不准确的因素众多,本文将着重讨论其中一种影响因素——输入阻抗对ADC采样的影响。 下文将以纳芯微实时控制MCU/DSP NS800RT503x 系列芯片为例,结合分压采样电路设计与实测现象,解析输入源阻抗对 ADC 采样

“为什么我在学习板/开发板上面测试都是正常的,上工程样机的时候,ADC采样就会有问题?”

工程师在使用DSP进行ADC采样测试的时候,有可能会遇到以上难以理解的问题。导致ADC采样不准确的因素众多,本文将着重讨论其中一种影响因素——输入阻抗对ADC采样的影响。

下文将以纳芯微实时控制MCU/DSP NS800RT503x 系列芯片为例,结合分压采样电路设计与实测现象,解析输入源阻抗对 ADC 采样精度的影响,帮助工程师更好地完成 ADC 采样电路设计与参数匹配

01

ADC电压采样范围

ADC的电压采样范围由其参考电压决定。当参考电压为3V,ADC的采样范围为0~3V。对于NS800RT503x系列芯片,ADC默认使用外部参考电压,接入的外部参考电压应在1.65V~3.3V之间,或者通过软件,选择使用内部的1.65V或2.5V参考电压。

如何测量输入电压

小电压测量

当检测电压在0-5V范围内时,可通过两个电阻进行简单的分压,并通常在 ADC 输入端并联电容进行滤波,如下图所示。

Ui为检测端电压,Uo为ADC的输入端电压:

分压后的Uo电压应小于或等于ADC的参考电压。

同时,需要考虑分压电流大小,电流最大为20mA,且ADC的输入阻抗不宜过大(相关原因将在下文进行分析)。通过ADC采集到分压后的电压,可进一步换算得到输入端电压。如采集到的电压为xV,则输入端的电压为:

图1-ADC分压输入

大电压测量

对于450V的高电压,仅使用两个电阻进行分压并不适用,需考虑单个电阻的额定功率和耐压值。

电阻的功率(P)计算公式为:P=UI

当大电压加在单个电阻上时,会导致其功率超过额定值,电阻发热。因此,需要使用多个电阻进行分压,ADC获取的数值与上节同理,可推出输入端电压。如下图所示,450V的输入电压分压后为2.778V。

电路中的两个稳压二极管处于反向偏置状态,用于电路保护。当电路电压超过稳压二极管的反向击穿电压时,稳压二极管两端的电压处于一个固定值,这个值取决于二极管的材料与结构,从而保护GPIO端口,下图稳压二极管分别用作防止正电压和负电压过大。ADC的输入端使用了RC低通滤波电路,可将高频信号滤去,截止频率为:

图2-电阻分压

下图同理:

图3-电阻分压

注:等效阻抗的计算包括电阻阻抗、容抗、感抗

02

ADC的输入阻抗选择参考

基于 NS800RT503x 系列芯片的 ADC 输入特性,在合适的 ADC 时钟与采样窗口时间配置下,ADC 输入阻抗最高可支持至 1100kΩ。

需要注意的是,不同 ADC 时钟与采样窗口时间对应的最大输入阻抗并不相同,实际设计时应根据具体配置查表确认,部分典型配置如下表所示。

表1-输入电阻匹配表

| CnCTL.

ACQPS | M | R_AIN(KΩ) | | Fadc_clk 70MHz | Fadc_clk 66.67MHz | Fadc_clk

50MHz | Fadc_clk

10.24MHz | | 0 | 1 | 0.22 | 0.23 | 0.34 | 2.07 | | 1 | 2 | 0.53 | 0.57 | 0.79 | 4.24 | | 10 | 3 | 0.85 | 0.90 | 1.23 | 6.40 | | 11 | 4 | 1.17 | 1.23 | 1.68 | 8.57 | | 100 | 5 | 1.49 | 1.56 | 2.12 | 10.74 | | 101 | 6 | 1.80 | 1.90 | 2.56 | 12.91 | | ... | ... | ... | ... | ... | ... | | 100000 | 33 | 10.36 | 10.89 | 14.55 | 71.43 | | 1000000 | 65 | 20.51 | 21.54 | 28.75 | 140.79 | | ... | ... | ... | ... | ... | ... | | 11111111 | 512 | 162.24 | 170.35 | 227.18 | 1109.67 |

当ADC的输入阻抗过大时,会出现采集到的电压不精确的问题,以下 ADC 电压采集电路可作为典型示例。

设计目的是将前端电路的最大400V电压进行分压,得到最大5V再进行分压,输入到ADC1。

理论上该电路Vout-s经过电路中的200K和360K电阻分压,最大5V输入最后给到ADC1的电压为3.1V,最小0V输入最后给到ADC1的电压为0V。

图4 ADC输入阻抗偏大电路设计举例

实际使用万用表测试发现,ADC1在5V输入的情况下,最终的分压在2.2V,出现明显压降;在0V输入的情况下,最终的分压为0.4V,出现明显压升。在这种测试环境下,ADC的检测并不准确。

通过等效转换可得知上图ADC的输入阻抗为128.57kΩ,阻抗较大。

配置ADC采样窗口时间为65个ADC_CLK,测试过程中,移除电阻,将0V至3V的电压直接施加到ADC输入端,测得电压正常,排除了ADC配置问题导致的测量不准确。

随后测试减少阻抗的方式,将ADC输入电阻阻抗调整为12.18kΩ(),如下图所示。

在GPIO端口测得的电压值在转换时间为大于65个ADC_CLK周期内正常。

进一步减小ADC输入电阻后,在更短的ADC转换周期内,ADC输入端电压值也可正常,与上述阻抗匹配表一致。

图5 电阻分压

将ADC配置为使用定时器进行定时触发转换。随着定时频率的增加,ADC输入端口电压逐渐减少。

即使输入阻抗为128.57kΩ,只要定时器触发频率足够低,输入电压后,ADC输入端的电压依然能够正常。因此初步分析,该现象与ADC采样过程中端口的电压有关系。

进一步测试:端口不接任何外围器件,使用ADCA_CH0,ADCB_CH0,ADCC_CH0进行测试。

  • ADCA与ADCB配置为相同参数,转换时间为1个ADC周期,测得ADCA_CH0与ADCB_CH0的电压为1.4xV,ADCC_CH0电压与其他未配置的IO端口电压一致为0.3xV的电压;

  • 将ADCA的转换时间逐次增大,ADCA_CH0的电压逐渐减小,ADCB_CH0与ADCC_CH0电压不变。当ADCA转换时间增大到65个ADC周期时,ADCA_CH0处电压减少到1.0xV。上文采用21kΩ电阻与29kΩ电阻进行分压ADC输入时,若配置转换时间为1-33个ADC周期时,端口分电压存在异常;只有配置为65个ADC周期以上时,端口分电压才是正常的理论电压;

  • 当将ADCA停止,ADCA_CH0处电压等于ADCB_CH0电压,ADCC_CH0电压不变。这时可解释为何ADC未初始化时,端口检测到的电压为正常的分压值——因为ADC不运作,端口处无额外的电压生成。测试中,输入阻抗过大时,ADC在运行时端口处的分压值会偏离理论值,只有ADC不运作时,该端口处的分压才恢复理论值。而输入阻抗较小时,端口电压不受ADC是否运作的影响,始终保持正常的理论值;

  • 将ADCA、ADCB都停止:

    ADCA_CH0 = ADCB_CH0 = ADCC_CH0

测试现象表明:当ADC运行时,随着准换时间的变化,端口上会出现不同的残留电压。准换时间越短,残留电压越大。

当通过接入电阻进行分压时,分压值是否准确,取决于该端口产生的残留电压大小和输入阻抗的大小。输入阻抗越小,分压值受该端口残留电压的影响越小;反之,输入阻抗越大,分压值受该端口残留电压的影响越大。

03

ADC采样时出现残留电压原因分析

ADC的输入模型如下所示:

如上图所示,ADC内部通常包含采样电容,该电容会在采样时进行充电或放电。电容充电/放电过程会在采样瞬间引起输入端口电压的瞬时变化。

当采样频率越大,充放电的过程跟不上采样速度,此时采样电容上会有相应的残留电荷,会导致端口电压由额外的电压残留。

因此,采样频率越快,残留电压也越大,只有当输入阻抗较小时才能抵消这个残留电压。

结言

当 ADC 输入源阻抗过大时,容易出现采样电压偏差。这与 ADC 的内部采样结构有关:ADC 采样时,内部采样电容需要快速完成充放电;如果前端驱动能力不足,采样电容上的残余电荷会影响当前输入信号,从而导致采样结果出现偏差。当输入信号驱动能力足够时,这种影响会明显减小。

因此,在 ADC 前端电路设计时,需要结合具体芯片型号与应用需求,综合考虑输入源阻抗、采样窗口时间、ADC 时钟频率以及前端滤波参数,确保前端采样电路设计合理,从而提升采样稳定性与测试结果一致性。

相关推荐
评论区

登录后即可参与讨论

立即登录