计算机8位D/A转换器DAC0832

dac0832是双列直插式8位d/a转换器,能完成从数字量输入到模拟量(以电流形式)输出的转换。图1和图2分别为dac0832的内部结构图和引脚图。
图1 dac0832内部结构图
图2 dac0832引脚图
从图1中可见,在dac0832中有两级锁存器;第一级锁存器称为输入寄存器,它的锁存信号为ile;第二级锁存器称为dac寄存器,它的锁存信号也称为通道控制信号xfer。因为有两级锁存器,所以dac0832可以工作在双缓冲器方式下,即在输出模拟信号的同时,可以采集下一个数据。这样可以有效地提高转换速度。另外,有了两级锁存器以后,可以在多个d/a转换器同时工作时,利用第二级锁存器的锁存信号来实现多个转换器的同时输出。 图1中,当ile为高电平、cs和wr1为低电平时,le1为1,这种情况下,输入寄存器的输出随输入而变化。此后,当wr1由低电平变高时,le1成为低电平,此时,数据被锁存到输入寄存器中,这样,输入寄存器的输出端不再随外部数据的变化而变化。
对第二级锁存器来说,xfer和wr2同时为低电平时,le2为高电平,这时,8位的dac寄存器的输出随输入而变化。此后,当wr2由低电平变高时,le2变为低电平,于是,将输入寄存器的信息锁存到dac寄存器中。
图2 中各引脚的功能定义如下:
 cs——片选信号,它和允许输入锁存信号ile合起来决定wr1是否起作用。
ile——允许锁存信号。
 wr1——写信号1,它作为第一级锁存信号将输入数据锁存到输入寄存器中,wr1必须和cs、ile同时有效。
wr2——写信号2,它将锁存在输入寄存器中的数据送到8位dac寄存器中进行锁存,此时,传送控制信号xfer必须有效。
 xfer——传送控制信号,用来控制wr2。
di7~di0——8位数据输入端,di7为最高位。
iout1——模拟电流输出端,当dac寄存器中全为1时,输出电流最大;当dac寄存器中全为0时,输出电流为0。
iout2——模拟电流输出端,iout2为一个常数与iout1的差,即iout1+iout2=常数。
rfb——反馈电阻引出端,dac0832内部已经有反馈电阻,所以,rfb端可以直接接到外部运算放大器的输出端,这样,相当于将一个反馈电阻接在运算放大器的输入端和输出端之间。
uref——参考电压输入端,此端可接一个正电压,也可接负电压,范围为+10~-10v。外部标准电压通过uref与t形电阻网络相连。
ucc——芯片供电电压,范围为+5~+15v,最佳工作状态是+15v。
agnd——模拟量地,即模拟电路接地端。
dgnd——数字量地。
dac0832有以下三种不同的工作方式:
(1)直通方式。当ile接高电平,cs、wr1、wr2和xfer都接数字地时,dac处于直通方式,8位数字量一旦到达di7~di0输入端,就立即加到8位d/a转换器上被转换成模拟量。例如在构成波形发生器的场合,就要用到这种方式,即把要产生基本波形的存在rom中的数据,连续取出送到dac去转换成电压信号。
(2)单缓冲方式
只要把两个寄存器中的任何一个接成直通方式,而用另一个锁存数据,dac就可处于单缓冲工作方式。一般的做法是将wr2和xfer都接地,使dac寄存器处于直通方式,另外把ile接高电平,cs接端口地址译码信号,wr1接cpu系统总线的io/w,这样便可以通过一条out指令选中该端口,使cs和wr1有效,启动d/a转换。
(3)双缓冲方式
主要在以下两种情况下需要用双缓冲方式的d/a转换:
其一,需在程序的控制下,先把转换的数据传入输入寄存器,然后在某个时刻再启动d/a转换。这样可以做到数据转换与数据输入同时进行,因此转换速度较高。为此,可将ile接高电平,wr1和wr2均接cpu的io/w,cs和xfer分别接两个不同的i/o地址译码信号。执行out指令时,wr1和wr2均变为低电平。这样,可先执行一条out指令,选中cs端口,把数据写入输入寄存器;再执行第二条out指令,选中xfer端口,把输入寄存器内容写入dac寄存器,实现d/a转换。
图3是dac0832工作于双缓冲方式下,与有8位数据总线的微机相连的逻辑图。其中,cs的口地址为320h,xfer的口地址为321h。当cpu执行第一条out指令时,选中cs端口,选通输入寄存器,将累加器中的数据传入输入寄存器。再执行第二条out指令,选中xfer端口,把输入寄存器的内容写入dac寄存器,并启动转换。执行第二条out指令时,累加器中的数据为多少是无关紧要的,主要目的是使xfer有效。
图3 dac0832与有8位数据总线的微机的连接图
其二,在需要同步进行d/a转换的多路dac系统中,采用双缓冲方式,可以在不同的时刻把要转换的数据分别打入各dac的输入寄存器,然后由一个转换命令同时启动多个dac的转换。图4是一个用3片dac0832构成的3路dac系统。图中,wr1和wr2接cpu的写信号wr,3个dac的cs引脚各由一个片选信号控制,3个xfer信号连在一起,接到第4个片选信号上。ile可以根据需要来控制,一般接高电平,保持选通状态。它也可以由cpu形成的一个禁止信号来控制,该信号为低电平时,禁止将数据写入dac寄存器。这样,可在禁止信号为高电平时,先用3条输出指令选择3个端口,分别将数据写入各dac的输入寄存器,当数据准备就绪后,再执行一次写操作,使xfer变低,同时选通3个d/a的dac寄存器,实现同步转换。
图4 用dac0832构成的3路dac系统
(1)单极性输出电路
单极性输出电路如图5所示。d/a芯片输出电流i经输出电路转换成单极性的电压输出。图5(a)为反相输出电路,其输出电压为
图5(b)是同相输出电路,其输出电压为
(2)双极性输出
在某些微机控制系统中,要求d/a的输出电压是双极性的,例如要求输出-5~+5v电压。在这种情况下,d/a的输出电路要作相应的变化。图6就是dac082双极性输出电路实例。
图5 单极性输出电路
(a)反相输出;(b)同相输出
由电路各参数计算可得最后的输出电压表达式为uout=-2u1-uref设u1为0~-5v,选取uref为+5v,则uout=(0~10)v-5v=-5~+5v。
图6 双极性输出电路