当前位置: 首页 > news >正文

充分理解ADC预充电缓冲器的重要性-运放缓存

新型高性能模数转换器(ADC)设计师的目标之一是放宽对外部输入放大器和基准的设计要求,他们的通常做法是内置针对模拟和基准输入的集成式缓冲器。然而,对于高性能ADC而言,在信号链中添加任何元件都会降低整体性能。

设计优先事项包括优选硅工艺、电路精心设计以及良好的布局和IC封装,以优化电压偏移、增益、信噪比(SNR)和总谐波失真(THD)等诸多指标。添加传统的缓冲器会影响这些指标,而且很多时候,这些缓冲器会成为高性能ADC中的主要误差源。预充电缓冲器是针对传统缓冲器的一种替代方案,如图1所示。本文将重点介绍预充电缓冲器在模拟输入通道和基准输入通道中的使用和优势。

在这里插入图片描述

图1:预充电缓冲器弥补宽带ADC(ADS127L11-24位、400 KSPS、delta-sigma)性能的示意图。本文资料来源:TI

降低输入放大器驱动要求的方法之一是在ADC输入端使用电荷桶滤波器,其中的差分电容比内置采样电容要大。这个简单的电阻电容网络(图2所示的Rfilt和Cfilt)充当电荷储存器,用以提供输入采样电容(Cin)所需的大部分瞬时电流。外部滤波电容Cfilt将峰值输入电流从相对较高的电流脉冲(几十毫安量级)降低到峰值小于1mA,平均电流仅为数百微安。

使用大的外部输入电容除了能降低峰值电流外还能降低对输入放大器的高带宽要求,从而提供更广泛的放大器选择。这些额外的放大器选项允许设计师在低功耗、直流性能和许多其他设计标准方面做出更好的优化。

然而,使用大型外部输入电容的一个缺点是它限制了最高输入信号频率。实际上它是一个一阶低通电阻电容RC滤波器。另一个缺点是电容器阻抗在较高输入频率下变得非常低,从而容易导致大电流流过电容器。源自输入放大器的这种大电流会导致系统功耗增加,这对于高密度或电池供电的系统来说是非常不利的。

许多低功耗精密放大器可能无法在支持大电流的同时保持良好的信噪比和总谐波失真。对于极低频输入信号或直流输入信号来说,使用大输入滤波电容可能是一种可接受的方法,但对于10kHz或更高的输入频率来说,负载电流和由此产生的功耗可能会变得高的无法接受。

预充电缓冲器的设计灵活性

如果采用预充电缓冲器,既可以放宽输入放大器驱动要求,又不会降低ADC总体精度。预充电缓冲器是一种专用放大器,在采集周期的前半部分为ADC的内置采样电容充电,在采集周期的后半部分断开连接,以实现ADC输入端和内置采样电容之间的直接连接。在采集周期的最后阶段,将内置采样电容直接连接到输入端,这样就可以从信号通道中消除预充电缓冲器带来的任何误差。预充电缓冲器的使用,可以将外部输入放大器的整体动态负载降低99%以上。

在与宽带宽外部输入放大器结合使用时,预充电缓冲器还有一个好处,就是具有更低的总谐波失真。预充电缓冲器与高速输入放大器一起使用,可以将总的谐波失真改进10dB或更多。同时开启高速放大器和内置预充电缓冲器,灵活性得到改善,不过带来的问题是功耗增加了;这就需要在优先考虑低失真还是低功耗之间做出折衷权衡。
在这里插入图片描述

图2:典型高电平信号链中采用带有内置预充电缓冲器的全差分输入放大器。

预充电缓冲器的主要缺点是在采集阶段的后半程完成对内置采样电容的充电所需的动态电流很小。然而,这个动态电流还不到直接驱动(不启用预充电缓冲器)输入采样电容所需电流的1%,因此支持使用带宽窄得多的放大器和更小的输入滤波电容。
图2所示的典型高电平信号链中,外部输入放大器和内置预充电缓冲器为Cin充电,而图3则突出显示了使用预充电缓冲器时的时序细节。

在这里插入图片描述

图3:粗采样和精细采样阶段的输入采样电容电压(Vcin)示意图。

AIN-Coarse、AIN-Fine和AIN-Reset是内置开关控制信号。当控制电平为1时内置开关打开,当控制电平为0时内置开关关闭。观察内置采样保持电容两端的Vcin电压波形可以发现,预充电缓冲器在AIN-Coarse=1阶段将输入电容电压充电至最终目标值的99.9%左右(3.98V)。而在AIN-Fine=1阶段,外部输入放大器将内置采样电容充电至最终输入电压(4V)。

预充电缓冲器优化输入电流

如前所述,预充电缓冲器降低了驱动输入所需的平均输入电流。在推导启用预充电缓冲器时的平均输入电流公式之前,让我们先推导出在不用预充电缓冲器而是直接驱动输入端时的平均输入电流公式。针对平均输入电流的公式1基于人们熟悉的电容中总电荷公式:
Qin=Cin×Vin (1)
其中,Qin是Cin上的总电荷,Vin是采集周期结束时采样电容上的电压,约等于ADC输入端的电压。
由于采样电容在转换阶段结束时被复位为0V,因此可以用公式2表示平均输入电流:
Iavg=Qin×Fmod (2)
其中Fmod是调制器采样率或ADC输入端的采样频率。
对于ADS127L11,高速模式下,调制器采样率等于主时钟频率Fclk的一半。将公式3和公式4代入公式2就能得到公式5:
Qin=Cin×Vin (3)
Fmod=Fclk /2 (4)
Iavg=Fclk/2×Cin×Vin (5)
使用预充电缓冲器时,外部输入放大器提供的电荷是输入电容上总电荷的一小部分。在公式6、7和8中,G代表预充电缓冲器的增益,理想值G=1,典型范围为0.995<G<1.005。如果将AIN-coarse阶段结束时输入电容充电达到的电压表示为Vin-coarse,则预充电缓冲器提供的电荷为:
Qcoarse=Vin-coarse×Cin (6)
Vin-coarse =G×Vin (7)
将公式7代入公式6得到公式8:
Qcoarse=G×Vin×Cin (8)
由于在采集阶段结束时输入电容上的总电荷为Cin×Vin,因此可以将输入端子直接提供的电荷表示为Qfine,如公式9和10所示:
Qtotal=Cin×Vin (9)
Qtotal=Qcoarse+Qfine (10)
重整公式10得到公式11:
Qfine=Qtotal–Qcoarse (11)
将公式8和9代入公式11得到公式12和13:
Qfine=Vin×Cin–G×Vin×Cin (12)
Qfine=(1-G)×Cin×Vin (13)
将公式13和4代入公式2得到公式14,也就是使用预充电输入缓冲器时的平均输入电流。
Iavg-precharge=Fclk/2×(1-G)×Cin×Vin (14)
将公式5代入公式14得到公式15。我们现在可以看到,不用预充电缓冲器的平均输入电流Iavg现在降低了(1-G)倍,其中G的典型范围为0.995<G<1.005(对ADS127L11而言):
Iavg-precharge=(1-G)×Iavg (15)
外部滤波电容Cfilt提供了峰值电流一大部分,但外部输入放大器也需要提供很大的动态电流。与平均电流的降低非常相似,峰值电流的下降也很显著。峰值电流的这种降低通常会带来总失真的降低,这正是使用带有高速输入放大器的预充电缓冲器可以提供更好系统性能的原因。
峰值输入电流受内置AIN-Fine开关电阻Rsw的限制,可使用公式16计算得到。对ADS127L11来说,从AINP和AINN端看过去的差分输入开关电阻典型值为165Ω。在输入电压为4V且没有预充电缓冲器的情况下,每个周期内产生的峰值电流Ipeak接近24mA(公式17),这对于大多数精密放大器来说是相当高的,这也是为什么必须使用输入滤波器来提供大部分峰值电流的原因。
Ipeak=Vin/Rsw (16)
Ipeak=4V/165ῼ=24mA (17)
当使用预充电缓冲器时,输入采样电容上的电压值非常接近AIN-Fine开关闭合时的输入电压——在预充电缓冲器的增益误差范围内。在G=0.995的情况下,预充电缓冲器在直接连接ADC输入端之前,会将输入电容上的电压充电至约3.98V,此时得到的峰值输入电流约为121μA,公式18中就利用了这些值,结果如公式19和20所示。
Ipeak=(Vin-Vcin)/Rsw (18)
Ipeak=(4V-3.98V)/165ῼ (19)
Ipeak=121μA (20)
由于平均输入电流和峰值输入电流均有所下降,因此预充电缓冲器可以使用带宽小于10MHz的外部输入放大器。这就给放大器提供了更多的选择,使低频噪声、宽带噪声、偏移电压和其他指标的优化成为可能。

用于基准输入的预充电缓冲器

ADS127L11还集成了一个基准输入预充电缓冲器。与输入预充电缓冲器非常相似,该基准输入预充电缓冲器亦可降低峰值和平均输入电流。对该器件来说,如果使用4.096V的典型外部基准电压,输入时钟频率为25.6MHz,并工作在高速模式,那么没有预充电缓冲器时的平均输入电流为778μA,这对大多数基准来说都可以轻松驱动,然而,许多系统使用多个ADC通道,比如8个或更多个通道,此时,总的基准电流为8×778μA,即6.2mA,这对于精密基准来说就相当高了。例如,REF6041的最大输出电流为4mA,此时单个基准是无法驱动8个ADC基准输入的。REF7025是另一个不错的选择,可提供出色的低频噪声和极低的长期漂移。尽管REF70系列的最大输出电流为10mA,但为了使用该基准实现最高精度,输出电流应控制的尽可能低。

若采用内置基准预充电缓冲器就可以打破上述限制,因为每个ADC的平均输入电流降至2μA。单个基准即可驱动多个通道(如图4所示),无需担心过载,也无需额外的外部放大器,还能够降低整体电路板尺寸和成本。

在这里插入图片描述

图4:用一个基准带动多个内置预充电缓冲器ADC的典型连接图。

根据设计中使用的基准和输入放大器,可能不需要内置预充电缓冲器就能实现预期的系统总体指标。但拥有启用内置预充电缓冲器的选项,将为外部元件的选择提供了更大的灵活性,从而为优化系统设计提供了更多的工具。
本文来源于网络,公众号《面包板社区》,参考原文:《充分理解ADC预充电缓冲器的重要性》

相关文章:

  • 【Pytorch】torch.nn.init.xavier_uniform_()
  • 数据结构学习笔记(一)----绪论
  • Swift中运算符相关内容
  • GJB 5000A与GJB 5000B区别
  • 复盘:手推LR(逻辑回归logistics regression),它和线性回归linear regression的区别是啥
  • Java并发 | 18.[锁机制] 轻量级锁(CAS+自旋锁)
  • 【Pytorch】torch.nn.Dropout()
  • 组件通信的方法
  • 【Pytorch】torch. matmul()
  • 【JVM笔记】类型转换字节码指令
  • 聚观早报 | 东方甄选与顺丰、京东合作;拼多多跨境电商平台上线
  • 如何创建并运行java线程呢?
  • dubbo安装跟部署
  • ESP8266-Arduino编程实例-QRE1113红外反射传感器
  • 【Django】REST_Framework框架——Mixin类和GenericAPIView中的视图子类源码解析
  • 11111111
  • Angular Elements 及其运作原理
  • CentOS7简单部署NFS
  • input实现文字超出省略号功能
  • NSTimer学习笔记
  • 包装类对象
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 分享一份非常强势的Android面试题
  • 官方解决所有 npm 全局安装权限问题
  • 机器学习学习笔记一
  • 前端面试之闭包
  • 前端设计模式
  • 浅谈Golang中select的用法
  • 如何实现 font-size 的响应式
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • kubernetes资源对象--ingress
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • #pragam once 和 #ifndef 预编译头
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (二)Linux——Linux常用指令
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (六)vue-router+UI组件库
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • ******之网络***——物理***
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道
  • .net 怎么循环得到数组里的值_关于js数组
  • .NET 指南:抽象化实现的基类
  • .net分布式压力测试工具(Beetle.DT)
  • .NET设计模式(11):组合模式(Composite Pattern)
  • .NET设计模式(2):单件模式(Singleton Pattern)
  • .net中的Queue和Stack
  • @SpringBootApplication 包含的三个注解及其含义