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

2024-03-04 01:20

本文主要是介绍充分理解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预充电缓冲器的重要性》

这篇关于充分理解ADC预充电缓冲器的重要性-运放缓存的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/771574

相关文章

回调的简单理解

之前一直不太明白回调的用法,现在简单的理解下 就按这张slidingmenu来说,主界面为Activity界面,而旁边的菜单为fragment界面。1.现在通过主界面的slidingmenu按钮来点开旁边的菜单功能并且选中”区县“选项(到这里就可以理解为A类调用B类里面的c方法)。2.通过触发“区县”的选项使得主界面跳转到“区县”相关的新闻列表界面中(到这里就可以理解为B类调用A类中的d方法

如何理解redis是单线程的

写在文章开头 在面试时我们经常会问到这样一道题 你刚刚说redis是单线程的,那你能不能告诉我它是如何基于单个线程完成指令接收与连接接入的? 这时候我们经常会得到沉默,所以对于这道题,笔者会直接通过3.0.0源码分析的角度来剖析一下redis单线程的设计与实现。 Hi,我是 sharkChili ,是个不断在硬核技术上作死的 java coder ,是 CSDN的博客专家 ,也是开源

MySQL理解-下载-安装

MySQL理解: mysql:是一种关系型数据库管理系统。 下载: 进入官网MySQLhttps://www.mysql.com/  找到download 滑动到最下方:有一个开源社区版的链接地址: 然后就下载完成了 安装: 双击: 一直next 一直next这一步: 一直next到这里: 等待加载完成: 一直下一步到这里

PyTorch模型_trace实战:深入理解与应用

pytorch使用trace模型 1、使用trace生成torchscript模型2、使用trace的模型预测 1、使用trace生成torchscript模型 def save_trace(model, input, save_path):traced_script_model = torch.jit.trace(model, input)<

设置Nginx缓存策略

详细信息 Nginx服务器的缓存策略设置方法有两种:add_header或者expires。 1. add_header 1)语法:add_header name value。 2)默认值:none。 3)使用范围:http、server、location。 配置示例如下: add_header cache-control "max-age=86400";#设置缓存时间为1天。add

isa指针的理解

D3实例isa指向D3类对象。D3类的话isa指向D3元类对象。D3元类保存类中的方法调度列表,包括类方法和对象方法

WeakHashMap深入理解

这一章,我们对WeakHashMap进行学习。 我们先对WeakHashMap有个整体认识,然后再学习它的源码,最后再通过实例来学会使用WeakHashMap。 第1部分 WeakHashMap介绍 第2部分 WeakHashMap数据结构 第3部分 WeakHashMap源码解析(基于JDK1.6.0_45) 第4部分 WeakHashMap遍历方式 第5部分 WeakHashMap示例

【MyBatis学习7】MyBatis中的一级缓存

缓存的作用是减轻数据库的压力,提高数据库的性能的。mybatis中提供了一级缓存和二级缓存,先来看一下两个缓存的示意图:    从图中可以看出: 一级缓存是SqlSession级别的缓存。在操作数据库时需要构造sqlSession对象,在对象中有一个数据结构(HashMap)用于存储缓存数据。不同的sqlSession之间的缓存数据区域(HashMap)是互相不影响的。二级缓存是mappe

netty中常用概念的理解

目录   目录ChannelHandler ChannelHandler功能介绍通过ChannelHandlerAdapter自定义拦截器ChannelHandlerContext接口ChannelPipeline ChannelPipeline介绍ChannelPipeline工作原理ChannelHandler的执行顺序   在《Netty权威指南》(第二版)中,ChannelP

java NIO 缓存区之内核空间、用户空间和虚拟地址

IO是基于缓存区来做的,所谓的输入和输出就是从缓存区中移入和移出数据。以IO输入为例,首先是用户空间进程向内核请求某个磁盘空间数据,然后内核将磁盘数据读取到内核空间的buffer中,然后用户空间的进程再将内核空间buffer中的数据读取到自身的buffer中,然后进程就可以访问使用这些数据。     内核空间是指操作系统内核运行的空间,是为了保证操作系统内核的能够安全稳定地运行而为内核专