数据锁存问题。当 CPU 向 D/A 转换器输出一个数据时,这个数据在数据总线上只持续很短
的时间,必须有数据锁存器锁住这个数据,才能得到持续稳定的模拟量输出。有些 D/A 转
换器芯片本身不带锁存器,此时 74LS273 芯片以及可编程的并行 I/O 接口芯片 8255A 均可
作为 D/A 转换的数据锁存器,有些 D/A 转换器芯片本身带有锁存器。
2.对于内部带数据输入寄存器的 D/A 芯片,使用时可以将 D/A 直接和数据总线相连。,
以 DAC0832 为例来具体介绍 D/A 转换芯片的工作原理和使用方法。
如图(1)所示,即为 D/A 转换器基本结构框图.D/A 转换器包括四个部分:电阻解码网络,权
位开关,相加器和参考电压。
DAC0832 为 8 位电流 DAC 器件,其内部结构及引脚如图(2)所示,该芯片为 CMOS 器件,
单电源(电源范围为+5V~+15V).参考电压可在-10V~+10V 范围内选择,转换速度约 1us,输入
待转换的数据保持时间应不小于 90ns。
DAC0823 内部有一个 T 型电阻网络,用来实现 D/A 转换,它需要外接运算放大器,才能得
到模拟电压输出。从图中(1)可以见到,在 DAC0832 中有两级锁存器,第一级锁存器为
输入寄存器,它的锁存信号为 ILE,第二级锁存器称为 DAC 寄存器,它的锁存信号也称为
通道控制信号 XFER。因为有两级锁存器,所以,DAC0832 可以工作在双缓冲器方式,即
在输出模拟信号的同时可以采集下一个数字,于是,可以有效的提高转换速度。另外,有
了两级锁存器以后,可以在多个 D/A 转换器同时工作,利用第二级锁存器的锁存信号来实
现多个转换器的同时输出。
为了用 DAC0832 进行数/模转换,可以使用两种方法对数据进行锁存。
第一种方法是使输入寄存器工作在锁存状态,而 DAC 寄存器工作在不锁存状态。具体
的说,就是使 WR2 和 XFER 都是低电平,这样,DAC 寄存器的锁存端得不到有效电平;
另一方面,使输入寄存器的有关控制信号中,ILE 处于高电平,CS 处于低电平。这样,当
WR1 端来一个负脉冲时,就可以完成一次变换。
第二种方法是使输入寄存器工作在不锁存状态,而使 DAC 寄存器工作在锁存状态。就
是使 WR1 为低电平,CS 为低电平而 ILE 为高电平,这样,输入寄存器的锁存信号处于无
效状态;另外,WR2 和 XFER 端输入一个负脉冲,从而使 DAC 寄存器工作在锁存状态。
这样做,也可以达到锁存目的。
在此次设计中我们采用第一种方法对数据进行锁存
3.根据 DAC0832 的引脚图,图中各信号的定义如下:
C S 片选信号,它和允许输入锁存信号 ILE 合起来决定 WR
1
是否起作用。
ILE 允许锁存信号。
WR
1
写信号 1,它作为第一级锁存信号将输入数据锁存到输入寄存器中, WR
1
必须和
CS、ILE 同时有效。
WR
2
写信号 2,它将锁存在输入寄存器中的数据送到 8 位 DAC 寄存器中进行锁存,此时,
传送控制信号 XFER 必须有效。
XFER 传送控制信号,用来控制 WR
2
。
D
7
~D
0
8 位的数据输入端,D
7
为最高位。
I
OUT1
模拟电流输出端,当 DAC 寄存器中全为 1 时,输出电流最大,当 DAC 寄存器中全 0
时,输出电流为 0。
I
OUT2
模拟电流输出端,I
OUT2
为一个常数和 I
OUT1
差,也就是说,I
OUT1
+I
OUT2
=常数。
当 DAC 寄存器内容全为 1 时,I
OUT1
最大,I
OUT2
=0;
当 DAC 寄存器内容全为 0 时,I
OUT1
=0,I
OUT2
=最大;