|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
工程中大家经常会用到ADC来采集模拟电压,把模拟量变为数字量进行系统处理,有时候看到采集结果,什么?这个结果跟实际采集的信号怎么还有点小差距?那么就有可能是参考电压的问题。
, v* S8 T6 G$ x) X2 u- S% J& a2 {* l# _9 o
参考电压有多重要,我们得要弄清楚它在ADC转换中扮演一个什么样的角色,弄清楚这个问题,我们需要从ADC的转换原理入手,一般单片机里面ADC模块使用的是逐次逼近型转换,也就是通过这种方法原理把模拟量转换为数字量,那什么是逐次逼近呢?7 o$ O/ x" m5 r7 j6 D' l
/ y6 e! t, T w我们先来说一个生活中的案例,我们用天平称一个物体的重量,过程是这样的:从最重的砝码开始试放,与被称物体行进比较,若物体重于砝码,该砝码保留,否则移去。再加上第二个次重砝码,看物体的重量是否大于砝码的重量决定第二个砝码是留下还是移去。照此一直加砝码,到最小一个砝码为止。将所有留下的砝码重量相加,就得到物体的重量。( ~# U4 y7 J6 `8 F: b& C
* N0 |) W& h0 Q8 _
上图是一个8位逐次逼近型ADC的框图,“输入的模拟量”是输入电压信号,“START”用来控制ADC启动转换,“clock”是ADC模块的输入时钟,“EOC”是ADC转换结束信号,“OE”是ADC转换结果输出允许信号,“VREF”是参考电压。7 O: |. n4 d/ R* g* {; e- b+ T5 C
! ~3 `, a% Q. f/ w0 o* ?. V+ E5 F5 u随着时钟信号的输入,启动信号的开始,控制模块会逐次控制逐次比较寄存器产生不同的数据,数据产生后会送给D/A转换器,D/A转换器会依据参考电压,把这个数字量转化为模拟量送给比较器,比较器比较D/A转换器送出来的模拟量和输入模拟量的大小,产生的结果给控制单元电路,控制单元电路根据上一次的结果再次控制产生不同的数据,让D/A变成模拟量,再去比较,以此这样循环,每次比较,比较器会得出一个结果高或者低,根据这个结果决定当前产生的数字量是大了还是小了,一次一次的比较,找到那个和输入模拟量最接近的数字量,最后把这个数字量控制送到输出缓冲器,并且控制送出EOC输出转换完成信号,这就是一个大致的逐次逼近工作原理。0 e$ g. Z8 j/ M1 u9 }, b
7 W6 _+ S: d- i关于具体是怎么控制比较的,这个过程我们就不再展开,我有一个免费的视频是专门解析这个过程的,链接是;从上面的描述中,我们抓住一个重点是:D/A转换器会依据参考电,把生成的数字量变为模拟量,在转换的时候必须需要有一个参考电压,这个电压就是我们AD模块的参考电压,那么大家试想,如果参考电压都不稳定的话,转出来的模拟量是不是也不会稳定,那么和输入模拟量比较的时候,比较的结果也就可能会发生偏差,造成错误的比较结果。
* D; N N8 j$ `. A
6 x" l2 M: i. A5 o: t; _. q2 m4 K' E( }1 E: ^7 b
那怎么来保证这个参考电压比较稳定呢?1.我们可以在参考电压引脚附近就近放置电容(一大一小,大的储能,小的滤波);2.可以在参考电源前端串一个小电感再加电容。如图所示,这两种方法比较常见,也比较便宜,大家可以参考。2 U1 a L& x5 G
, Z1 c; i* v4 \0 ?# S4 L7 E2 j总结,ADC的参考电压是非常重要的,所以参考电压精确度不容忽略,要尽可能地使参考电压稳定,不受干扰。
/ J3 ^( Y4 d% `, I2 j
# B& x- l) K$ B; ]: e. a5 H这个知识我们就分享到这里,你理解了吗?% D! J! m% W9 f
9 G/ m+ N% q$ R
& E# ]/ ?3 c, U1 ^, y8 z% \* w9 [- k7 g2 Z, V a; m, j6 J" u
3 |6 M/ ~" l1 b! {7 c
|
|