具有锁存器的 d/a转换器可以直接与微处理器的数据总线相接。此时,将数据总线直接与 d/a转换器的数字输入线相连,将地址选中信号和写信号接到 d/a转换器的数据输入控制端上。当地址选中及写信号有效时,数据送入 d/a转换器的数据锁存器中,此时 d/a转换器的输出随之变化。
dac 0830是一个带双缓冲锁存器的 8位d/a转换器。其精度为 10位,建立时间为1μs,是电流输出型。其9位与 8位精度的型号分别为 dac 0831和dac 0832。其逻辑符号及功能框图如图1所示。
(a) dac 0830的逻辑符号 (b)dac 0830的功能框图
图1 dac 0830的逻辑符号及功能框图结构
此器件与微处理器的引线包括:
di0~di7数据输入线,di7为最高位。
-cs片选端。
-wr1,-wr2写入信号1及写入信号2。
ile输入锁存使能。
-xfer转移控制信号。
与模拟输出有关的信号为:
vref基准电压输入端。
iout1,i out2电流输出瑞。
rfb反馈电阻端。
另外还有电源端vcc,数字地dgnd及模拟地agnd。
图2为dac0830的典型用法。
图2 dac0830的典型用法
由于电路内部的反馈电阻rfb与网络电阻相等,输出电压vo = -vref·(di7/2+ di6/4+…+di0/256)。如在d/a转换器的rfb端与运算放大器的输出端之间串接电阻,可以调节输出电压的范围。
从图2的功能框图中可以看出控制信号的逻辑关系。当-cs=0,ile=1时,-wr1信号将数据总线上的信号写入8位输入寄存器,当-xfer=0时,-wr2信号将输入寄存器的数据转移到8位dac寄存器中,此时d/a转换器的输出随之变化。
根据上述功能,我们可以将 dac 0830连接成单缓冲工作方式和双缓冲工作方式。
图3为dac 0830的单缓冲工作方式接口。
此时,将转移控制信号-xfer及写入信号-wr2接地,ile接高电平,-cs接地址选中信号,-wr1在isa总线的系统中接外围设备写信号-iow,在8031系统中为写信号-wr。当cpu向此地址写入一个数据时,d/a转换器的输出随之变化。
图3 dac 0830的单缓冲工作方式接口
在一个系统中,如使用两路以上的d/a转换器时,由于这两路d/a转换器由两个地址输出,需要执行两条指令,因而这两路输出的变化要相差一些时间,如要求两路d/a转换器的输出同时变化,则应采用双缓冲工作方式。图4为采用双缓冲工作方式的两路 d/a转换器接口。
将两片dac 0830的ile均接为高电平,-cs分别接为地址1选中及地址2选中,-xfer接地址3选中,- wr1、-wr2均接系统写信号。
先向地址1写入数据1,再向地址2写入数据2,此时由于转移控制信号为高电平,因而这两个数据只能存在各自的输入寄存器中d/a转换器仍维持原来的输出不变。当cpu发出地址3选中及写信号时,-xfer有效,-wr2也有效。两片d/a转换器的输入寄存器中的数据转移到各自的dac寄存器中,其输出也随之发生变化。
图4 采用双缓冲工作方式的两路 d/a转换器接口
对于dac0830,其输出电压是单极性的,当基准电压的极性决定之后,输出电压的极性也被决定。为实现固定基准电压下的双极性输出,可采用图5的方法。
图5 dac 0830的双极性电压输出
此时,输出电压vout = vref·(di7+ di6/2+…+di0/128-1)
当输入数字量为全0时,输出电压为-vref。当输入数字量为80h时,输出电压为0,当输入数字量为全1时,输出电压为vref*(1-1/128)。
在加入第二个运算放大器后,对d/a转换器输出的线性无影响,所采用的电阻不必与转换器内部的网络电阻一致,但应采用精密电阻,以保证r、2r的准确性及良好的温度特性。