各种模拟前端功能通常可协助ADC完成其工作。这些功能包括仪表放大器(INA)、数字可编程增益(DPG)和采样与保持(S&H)。图1中的电路并不典型,它将所有这三种功能合并到由单个(PWM)逻辑信号时序控制的单个拓扑中。
图1:两个通用芯片和五个无源器件构成一个多功能且非常规的ADC前端
图1的差分INA式输入以常规方式开始,由太欧姆阻抗和皮安偏置CMOS跟随器U1a和U1b组成。916x系列运算放大器是非常适合这项工作的RRIO器件,具有亚毫伏输入偏移、110dB CMR、11MHz增益带宽、33V/µs压摆率和亚微秒设置时间,而且它们价格低廉。然而,将其转换为高CMR差分输入是电路开始变得非常规的地方,发挥作用的策略是“飞跨电容”。
在PWM的逻辑0间隔期间,通过开关U2a和U2b,电容器C的两端由单位增益跟随放大器驱动,CMR仅受放大器的110dB=300000:1的限制。与典型的精密差分INA输入不同,不涉及关键电阻匹配。一微秒或两微秒的最小持续时间间隔足以准确捕获和稳定输入信号。当PWM输入转换为逻辑1时,C的一端接地(通过U2b),而另一端变为U1c的单端输入(通过U2a)。然后事情就变得更加不寻常了。
从U1c的输出通过U1c和R1到C建立的连接会产生正反馈,导致C上捕获的电压以(负)时间常数呈指数倍增:
Tc = R1 (C + stray C)
= 14.3kΩ (0.001 µF + 10 pF) = 14.44 µs
= 10µs / ln(2)
由于A1c的增益=R3/R2+1=2,从Vc流过R1的电流为:
IR1 = (Vc – 2Vc) / R1
= Vc / -R1
因此,R1实际上为负,这使得R1C为负,并且在PWM的0-1转换之后的任何时间T内,都会呈现熟悉的指数衰减:
V(T) = V(0) e-(T/RC)
当R1为负时变为:
= V(0) e-(T/-R1C) = Vc(0) e– -(T / 14.43 µs) = Vc(0) e(T / 14.43 µs)
= Vc(0) 2(T / 10 µs )
因此,取U1c的增益2.00:
Vout = Vc(0) 2((T / 10 µs) + 1)
例如,如果使用7位1MHz PWM,则逻辑1周期持续时间内每增加1µs将相当于增益增量20.1=1.072=0.60dB。因此,100个PWM 1计数将产生2((T/10µs)+1)=66.2dB=2048的增益。拥有100个可用的可编程增益设置是一项有用且不寻常的功能。
请注意,R1和C应采用低温度系数类型(如金属膜和C0G)的精密器件,这样增益/时间关系才会准确稳定。R1C的14.43µs=11kHz滚降与U1c的11MHz增益带宽相互作用,提供~60dB的闭环增益。这对于10位采集精度来说已经足够了。
在此PWM=1指数增益阶段,U2c开关使输出电容器和U1d跟踪Vc,该Vc在随后的PWM=0阶段被采集并保持,作为连接的ADC的输入。而电路的前端正在采集下一个样本。
(原文刊登于EDN美国版,参考链接:Negative time-constant and PWM program a versatile ADC front end,由Ricardo Xie编译)