此笔记源起于使用ADC直接连接NTC测量温度的扩展,其实之前也记录过ADC前端RC电路元件如何的取值笔记,那时并不太明白,只是根据ADI的视频简单的记录了下计算公式和步骤。
1. NTC测温电路,右边为等效电路
2. 工作原理
电路在工作的时候,首先S1闭合,S2断开,Cin两端的电压给Csh充电,ADC采集电容Csh上的电压。在采样结束后,S1断开,S2闭合,Csh放电。
3. 公式推导
3.1 首先确定测量精度,如1 LSB、1/2 LSB
1 LSB精度::VIN-V(Csh)≤V(FSR)/2^n ①
1/2 LSB精度:VIN-V(Csh)≤V(FSR)/2^(n+1) ②
VIN--------------------输入电压,也就是被采集的信号
V(Csh)----------------ADC内部采样保持电容Csh上的电压
V(FSR)---------------ADC满量程电压
n-----------------------ADC位数
3.2 V(Csh)电压
V(Csh)(t)--------------------------------t 时刻电压
V(Csh)(t0)------------------------------t0 时刻电压,电容Csh的初始电压
VIN------------------------------------ --输入电压,也就是被采集的信号
------------------------------------ --ADC内部RC时间常数,Rsh*Csh
3.3 只考虑ADC内部RC时间常数推导,使用1/2 LSB测量精度,通过②、③得
此为ADC内部的RC时间参数,即Rsh、Csh,其值ns级别,不是影响采样精度的主要因数。
3.4 考虑外部RC电路影响,公式推导
从电荷角度看,当S1闭合,S2断开时,Cin、Csh对电荷重新分配,Cin的电压会下降,Csh电压会上升。因为Cin靠的近,在最开始时,主要是Cin放电给Csh充电,在Cin、Csh电压相等时,由最初的电压VIN给两个电容充电。
Qtot=Qcin+Qsh ④
Ctot=Cin+Csh ⑤
Vtot=Qtot/Ctot ⑥
Qtot---------------------------------------------Cin、Csh电荷之和
Ctot---------------------------------------------Cin、Csh电容之和
Vtot---------------------------------------------Cin、Csh电容电压
Vtot=(Qcin+Qsh)/(Cin+Csh)
=>(Cin*Vin+Csh*Vsh)/(Cin+Csh)
=>Cin*Vin/(Cin+Csh)+Csh*Vsh/(Cin+Csh)
设Cin/Csh=a,则
Vtot=a*Vin/(a+1)+Vsh/(a+1) ⑦
由电容充放电公式可得
⑧
按照1/2 LSB精度,则
VIN-Vtot(t)≤V(FSR)/2^(n+1)
按照3.3的推导步骤,得
⑨
taq-------------------------------------------------------------ADC采样时间
-------------------------------------------------------------Rtot*Ctot时间常数,Rtot=Rin+Rsh;Ctot=Cin+Csh;Rsh通常相对Rin非常小,计算时可忽略其值
V(FSR)------------------------------------------------------ADC满量程电压
VIN-------------------------------------------------------- --输入电压,也就是被采集的信号,计算是可将VIN=V(FSR)
a-------------------------------------------------------------Cin/Csh比值
Vsh----------------------------------------------------------Csh采样前得初始电压,有两种情况,Vsh=0,适合低速率(信号频率≤(采样频率/10)) ;Vsh=VIN/2,多通道采样
注意:ADC得采样频率f(sample)=ADC采样时间taq + ADC转换时间tcov
根据公式⑨即可反推Rin、Cin值,或者根据给定得Rin、Cin计算出采样率、采样时间。
标签:采样,Csh,VIN,Cin,ADC,电压,RC,SAR From: https://www.cnblogs.com/QSHL/p/18390650