一、dac的基本原理
将输入数字量变换成模拟量输出。 基本思路:将输入的二进制数按其位权的大小先转换成与之成正比的电流量(i),然后将该电流再转换成模拟量电压输出(v),即d→i,i→v输出。
实现数字量—模拟量转换的电路框图:
d/a转换特性图
三位二进制数字量输入和模拟量输出的关系:
图中输出模拟量的最小增量vlsb表示输入数字量中最低位为“1”时的模拟电压大小。
二、四位倒t网络d/a转换器
其特点是只有二种电阻阻值,精度可以做得很高;由于运放的反相输入端为虚地特性,开关切换时流过支路电流不变,只是流向反相端还是流向地端,所以没有过渡过程,转换速很快。
由图可知;网络部分的总电阻为r,而流过参考电源vref的总电流为:,而流过每一个节点的电流依次降低一半,即流过每一个支路的电流依次为:。当输入二进制数的某一位高电平时,对应支路的电流流向反相端,反之流向地。因此流向反相端的电流有:
又因为:,所以输出电压有:
输入为n位数字量时:
当r=rf时:
这种d/a转换器的典型产品是ad7520(10位的一片d/a转换器)
三、正负模拟量输出的dac电路
当正负的数字量输入时,要求有正负的模拟量出。前面我们介绍过,一个正负数可以用补码表示。因此,一个用补码输入的正、负数,如何转换成正、负输出的模拟量呢?
现以一个三位二进制补码为例加以说明,3位二进制补码可以表示为从+3到-4之间的任何一个十进制整数。
三位二进制补码输入时与之对应的偏移码和d/a转换器输出间的关系表:
能得到双极性输出电压的电路如图,它是将补码输入后,最高位求反,并设置了偏移电路来实现双极型电压输出的。
电路说明:当输入补码d2d1d0=000,偏移码=100时,使=0。因此,应调节rb的值,使ib=imsb=vb/rb,输出模拟电压为0。
而在其它数字量输入的情况下,输出模拟量有:
,
式中的imax为偏移码全为1时的总电流。
对n位的双极型d/a转换电路,则有:
输出模拟电压为:
四、集成d/a转换器dac0832应用举例
特点:8位分辨率,与8位微机兼容,价格低,接口简单,转换控制容易,电路为r-2r t型电阻网络结构等。
外形和内部电路如图:
d7~d0是数字量输入端,vref外接参考电压,可正、可负。iout1和iout2是电流输出端,接运算放大器。内部和分别是两个寄存器的锁存控制端,当由1变0时, d7~d0输入数据送入8位输入寄存器,当由1变0时,8位输入寄存器的数据锁存至8位dac寄存器,并使8位dac转换器的输出发生相应的变化。
dac0832与8031单片机连接电路:
其中,dac0832的输入数字量以及转换所需的各控制信号都来自单片机8031。
电路进行两路d/a转换,实现双缓冲器的同步方式连接。其工作原理如下:cpu的p0口p0~p7分时向dac0832(1)和dac0832(2)送出要转换的数字量,锁存在各自的输入锁存器中,然后cpu同时向两片dac0832发出转换控制信号,使两个d/a转换器输入寄存器中的数据打入dac寄存器,实现同步转换输出模拟量。由于该dac是电流型输出,所以,用运放实现i/v转换,输出为模拟电压信号。电路采用二级运放放大。如果参考电压vref为正电压时,第一级运放输出0~-5v模拟电压,而第二级输出-5v~+5v的模拟电压。