最近闲来无事,逛论坛刷帖子,话说这年头刷论坛的人应该不多了吧,大家是不是天天都沉迷于短视频无法自拔呀,言归正传,该学习还是要学习的。
我在MPS论坛刷到了一篇资源分享文章,解答了我多年来的疑问呀。搞硬件的想必都设计过ADC采样电路吧,也都记得在靠近MCU的ADC端口放一个RC滤波,有人是1K+1nF的配置,有人是4.7K+100pF的配置,可谓是千人千面,要是问问他电阻该咋选,电容该咋选,一般都是说经验,习惯。。。
咱们搞硬件的,经验可以有,但一定要把想明白的东西当成经验才行,别人这么干,自己也这么干,这可不叫经验。言归正传,在SAR ADC的应用电路设计中,模拟前端的RC滤波器设计往往是决定最终采样精度的关键。有时候你发现你的ADC采样误差大、读数跳动等问题时,往往到最后会发现是RC参数选取不当导致的采样保持建立时间不足。
要想理解RC的阻值容值如何选型,就得理解为什么需要RC滤波器?
SAR ADC的模拟输入端并非理想的高阻态,其核心是一个采样保持电路。我们可以将它简化为一个开关串联一个采样电容Csha的模型。
ADC的工作过程分为两个阶段:
采样阶段:开关闭合,Csha连接到外部输入,追踪输入信号电压。
保持阶段:开关断开,ADC内部电路对Csha上的电压进行量化转换。
当ADC从保持阶段切换到采样阶段的瞬间,内部采样电容Csha上通常残留着上一次转换的电荷,当然也可能是复位到0V,或者中间电平,而外部电路处于当前信号电压。当开关闭合瞬间,内外部电容发生电荷交换,导致外部输入节点的电压瞬间跌落或拉升,形成电压尖峰。
如果外部电路不能在采样时间结束前将这个电压尖峰"拉回"到精度允许的误差范围内,ADC采到的电压就是错误的,这也是为什么你用万用表量到的电压和软件兄弟采集对应AD值转换出的电压不一样的原因。
错怪过软件兄弟姐妹的有木有?哈哈,我也干过这事!
那电容容值该怎么选?
外部电容的主要作用是充当"电荷池"。它就像一个大水库,当ADC内部的小水桶接入时,大水库的水位不会发生剧烈波动。
要想理解这过程,就得理解电荷再分配原理。
当采样开关闭合瞬间,外部电容Cex与内部电容Csha发生电荷共享。咱们考虑最坏情况:外部输入为满量程电压VFSR,而内部电容电压为0V。
平衡后的电压Veq为:
此时产生的电压跌落为
为了减小初始的电压跌落,Cex必须远大于Csha,推荐选择外部电容Cex为内部采样电容Csha的20倍到100倍。电容材质推荐使用低电压系数的电容,如NPO或COG材质,以保证线性度。需要注意的是Cex不是越大越好。过大的电容会导致RC电路的总电阻需要很小,这容易引起驱动运放的震荡。
那电阻阻值该怎么选呢?
选定电容后,电阻的取值决定了电路的回血速度。我们需要确保在有限的采样时间内,电压能从跌落后的Veq恢复到目标电压的0.5LSB误差范围内。这就需要计算所需的时间常数数量。
RC电路的电压恢复过程遵循指数曲线
我们需要计算在这个时间内,电压需要经过几个RC时间常数才能稳定下来。
所需的时间常数个数N计算公式如下
其中:
Nbits是ADC的分辨率(位数)
K是电容比值Cex/Csha
从公式可以看出,当K值增大,也就是外部电容变大,所需的建立时间常数个数N会减少,这有利于缩短建立时间。一旦确定了所需的N和采样时间 tacq,电阻的最大值即可确定:
由于Cec>>Csha,通常可以用Cex近似总电容
看到这,你应该懂了吧???如果还没懂,别慌,实例计算一下。
ADC分辨率:12-bit
输入范围:0-5V
内部采样电容(Csha):30pF
采样时间(tacq):500ns
Op-Amp:假设使用理想运放缓冲
步骤1:确定电容Cex 根据20倍法则:
我们令K=20,即Cex = 600pF。
步骤2:计算Kickback电压
假设最坏情况,输入为5V,内部电容为0V:
步骤3:计算所需时间常数N
我们的目标误差是0.5LSB。 对于12-bit 5V量程,1LSB =5V /4096 ≈ 1.22mV,那么目标误差是Verror = 0.61mV。
步骤 4:计算电阻Rex
这次你学废了吧!
全文放在阅读原文,有兴趣进去看看
481