|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
工程中大家经常会用到ADC来采集模拟电压,把模拟量变为数字量进行系统处理,有时候看到采集结果,什么?这个结果跟实际采集的信号怎么还有点小差距?那么就有可能是参考电压的问题。
. l \9 U+ t% T( C" e
1 _ @& e9 q8 H4 Q! w8 N参考电压有多重要,我们得要弄清楚它在ADC转换中扮演一个什么样的角色,弄清楚这个问题,我们需要从ADC的转换原理入手,一般单片机里面ADC模块使用的是逐次逼近型转换,也就是通过这种方法原理把模拟量转换为数字量,那什么是逐次逼近呢?) z+ z+ K+ S. _
4 ^3 O0 ]( i- Y* Y5 V6 _
我们先来说一个生活中的案例,我们用天平称一个物体的重量,过程是这样的:从最重的砝码开始试放,与被称物体行进比较,若物体重于砝码,该砝码保留,否则移去。再加上第二个次重砝码,看物体的重量是否大于砝码的重量决定第二个砝码是留下还是移去。照此一直加砝码,到最小一个砝码为止。将所有留下的砝码重量相加,就得到物体的重量。, V4 t6 z0 ~6 C$ `' m3 X
+ p. E; d/ v, a/ ~; L a
上图是一个8位逐次逼近型ADC的框图,“输入的模拟量”是输入电压信号,“START”用来控制ADC启动转换,“clock”是ADC模块的输入时钟,“EOC”是ADC转换结束信号,“OE”是ADC转换结果输出允许信号,“VREF”是参考电压。
+ `% _; k! \& k# J8 V, K7 a7 c3 v! f
# Y' _% n% s6 @ J* A F# B随着时钟信号的输入,启动信号的开始,控制模块会逐次控制逐次比较寄存器产生不同的数据,数据产生后会送给D/A转换器,D/A转换器会依据参考电压,把这个数字量转化为模拟量送给比较器,比较器比较D/A转换器送出来的模拟量和输入模拟量的大小,产生的结果给控制单元电路,控制单元电路根据上一次的结果再次控制产生不同的数据,让D/A变成模拟量,再去比较,以此这样循环,每次比较,比较器会得出一个结果高或者低,根据这个结果决定当前产生的数字量是大了还是小了,一次一次的比较,找到那个和输入模拟量最接近的数字量,最后把这个数字量控制送到输出缓冲器,并且控制送出EOC输出转换完成信号,这就是一个大致的逐次逼近工作原理。
# j+ W. U' X6 ^2 k( O x# j
2 n3 \5 a: H, x8 i$ I关于具体是怎么控制比较的,这个过程我们就不再展开,我有一个免费的视频是专门解析这个过程的,链接是;从上面的描述中,我们抓住一个重点是:D/A转换器会依据参考电,把生成的数字量变为模拟量,在转换的时候必须需要有一个参考电压,这个电压就是我们AD模块的参考电压,那么大家试想,如果参考电压都不稳定的话,转出来的模拟量是不是也不会稳定,那么和输入模拟量比较的时候,比较的结果也就可能会发生偏差,造成错误的比较结果。
. Z1 C. r, d0 p, y4 L$ Z
3 B) a3 l9 |9 Q; I- H. ?7 O: ^
?1 f' M! q+ k% b' G. M; l g. p那怎么来保证这个参考电压比较稳定呢?1.我们可以在参考电压引脚附近就近放置电容(一大一小,大的储能,小的滤波);2.可以在参考电源前端串一个小电感再加电容。如图所示,这两种方法比较常见,也比较便宜,大家可以参考。
7 P0 x8 j; W9 l# z( S1 R# Z( `; N
总结,ADC的参考电压是非常重要的,所以参考电压精确度不容忽略,要尽可能地使参考电压稳定,不受干扰。9 K- j& N' g$ m
j, B7 {( r2 P) i! s
这个知识我们就分享到这里,你理解了吗?, |: s y, ~6 D$ f( T, ^
) }0 w9 |3 o- y* a1 m( P H
, e u5 p5 b" g4 N1 }1 M0 |
8 d5 Q& B4 t8 t8 ]: y3 P( T4 B
) m$ G1 f6 c: X5 @# U |
|