DAC0832芯片:
DAC0832DAC0832是8分辨率的D/A转换集成芯片。与微处理器完全兼容。这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。
DAC0832的主要特性参数如下:* 分辨率为8位;
* 电流稳定时间1us;
* 可单缓冲、双缓冲或直接数字输入;
* 只需在满量程下调整其线性度;
* 单一电源供电(+5V~+15V);
* 低功耗,200mW。
DAC0832结构:* D0~D7:8位数据输入线,TTL电平,有效时间应大于90ns(否则锁存器的数据会出错);
* ILE:数据锁存允许控制信号输入线,高电平有效;
* CS:片选信号输入线(选通数据锁存器),低电平有效;
* WR1:数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存;
* XFER:数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效;
* WR2:DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。由WR2、XFER的逻辑组合产生LE2,当LE2为高电平时,DAC寄存器的输出随寄存器的输入而变化,LE2的负跳变时将数据锁存器的内容打入DAC寄存器并开始D/A转换。
* IOUT1:电流输出端1,其值随DAC寄存器的内容线性变化;
* IOUT2:电流输出端2,其值与IOUT1值之和为一常数;
* Rfb:反馈信号输入线,改变Rfb端外接电阻值可调整转换满量程精度;
* Vcc:电源输入端,Vcc的范围为+5V~+15V;
* VREF:基准电压输入线,VREF的范围为-10V~+10V;
* AGND:模拟信号地
* DGND:数字信号地
DAC0832的工作方式:根据对DAC0832的数据锁存器和DAC寄存器的不同的控制方式,DAC0832有三种工作方式:直通方式、单缓冲方式和双缓冲方式。
DAC0832引脚功能电路应用原理图DAC0832是采样频率为八位的D/A转换芯片,集成电路内有两级输入寄存器,使DAC0832芯片具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A异步输入、同步转换等)。所以这个芯片的应用很广泛,关于DAC0832应用的一些重要资料见下图: D/A转换结果采用电流形式输出。若需要相应的模拟电压信号,可通过一个高输入阻抗的线性运算放大器实现。运放的反馈电阻可通过RFB端引用片内固有电阻,也可外接。DAC0832逻辑输入满足TTL电平,可直接与TTL电路或微机电路连接。
dac0832应用电路图
dac0832应用电路图:
DAC0832引脚功能说明:
DI0~DI7:数据输入线,TLL电平。
ILE:数据锁存允许控制信号输入线,高电平有效。
CS:片选信号输入线,低电平有效。
WR1:为输入寄存器的写选通信号。
XFER:数据传送控制信号输入线,低电平有效。
WR2:为DAC寄存器写选通输入线。
Iout1:电流输出线。当输入全为1时Iout1最大。
Iout2: 电流输出线。其值与Iout1之和为一常数。
Rfb:反馈信号输入线,芯片内部有反馈电阻.
Vcc:电源输入线 (+5v~+15v)
Vref:基准电压输入线 (-10v~+10v)
AGND:模拟地,摸拟信号和基准电源的参考地.
DGND:数字地,两种地线在基准电源处共地比较好.
采用ADC0809实现A/D转换。
(一) D/A转换器DAC0832DAC0832是采用CMOS工艺制成的单片直流输出型8位数/模转换器。如图4-82所示,它由倒T型R-2R电阻网络、模拟开关、运算放大器和参考电压VREF四大部分组成。运算放大器输出的模拟量V0为:
图4-82
由上式可见,输出的模拟量 与输入的数字量( ) 成正比,这就实现了从数字量到模拟量的转换。
一个8位D/A转换器有8个输入端(其中每个输入端是8位二进制数的一位),有一个模拟输出端。输入可有28=256个不同的二进制组态,输出为256个电压之一,即输出电压不是整个电压范围内任意值,而只能是256个可能值。图4-83是DAC0832的逻辑框图和引脚排列。
图4-83
D0~D7:数字信号输入端。
ILE:输入寄存器允许,高电平有效。
CS:片选信号,低电平有效。
WR1:写信号1,低电平有效。
XFER:传送控制信号,低电平有效。
WR2:写信号2,低电平有效。
IOUT1、IOUT2:DAC电流输出端。
Rfb:是集成在片内的外接运放的反馈电阻。 Vref:基准电压(-10~10V)。
Vcc:是源电压(+5~+15V)。
AGND:模拟地 NGND:数字地,可与AGND接在一起使用。
DAC0832输出的是电流,一般要求输出是电压,所以还必须经过一个外接的运算放大器转换成电压。实验线路如图4-84所示。
图4-85
IN0~IN7:8路模拟信号输入端。
A1、A2、A0 :地址输入端。ALE地址锁存允许输入信号,在此脚施加正脉冲,上升沿有效,此时锁存地址码,从而选通相应的模拟信号通道,以便进行A/D转换。
START:启动信号输入端,应在此脚施加正脉冲,当上升沿到达时,内部逐次逼近寄存器复位,在下降沿到达后,开始A/D转换过程。
EOC:转换结束输出信号(转换接受标志),高电平有效。
OE:输入允许信号,高电平有效。
CLOCK(CP):时钟信号输入端,外接时钟频率一般为640kHz。 Vcc:+5V单电源供电。 、 Vref(+),Vref(-):基准电压的正极、负极。一般Vref(+)接+5V电源,Vref(-)接地。
D7~D0:数字信号输出端。 由A2、A1、A0三地址输入端选通8路模拟信号中的任何一路进行A/D转换。
第10章 模拟接口
10.3 数/模(D/A)转换器
D/A转换器是接收数字量,输出一个与数字量相对应的电流或电压信号的模拟量接口。
D/A转换器被广泛用于计算机函数发生器、计算机图形显示以及与A/D转换器相配合的控制系统等。
10.3.1 D/A转换原理
数字量的值是由每一位的数字权叠加而得的。
D/A转换器品种繁多,有权电阻DAC、变形权电阻DAC、T型电阻DAC、电容型DAC和权电流DAC等。
为了掌握数/模转换原理,必须先了解运算放大器和电阻译码网络的工作原理和特点。
1. 运算放大器
运算放大器有三个特点:
⑴开环放大倍数非常高,一般为几千,甚至可高达10万。在正常情况下,运算放大器所需要的输入电压非常小。
⑵输入阻抗非常大。运算放大器工作时,输入端相当于一个很小的电压加在一个很大的输入阻抗上,所需要的输入电流也极小。
⑶输出阻抗很小,所以,它的驱动能力非常大。
2.由电阻网络和运算放大器构成的D/A转换器
利用运算放大器各输入电流相加的原理,可以构成如图10.7所示的、由电阻网络和运算放大器组成的、最简单的4位D/A转换器。图中,V0是一个有足够精度的标准电源。运算放大器输入端的各支路对应待转换资料的D0,D1,…,Dn-1位。各输入支路中的开关由对应的数字元值控制,如果数字元为1,则对应的开关闭合;如果数字为0,则对应的开关断开。各输入支路中的电阻分别为R,2R,4R,…这些电阻称为权电阻。
假设,输入端有4条支路。4条支路的开关从全部断开到全部闭合,运算放大器可以得到16种不同的电流输入。这就是说,通过电阻网络,可以把0000B~1111B转换成大小不等的电流,从而可以在运算放大器的输出端得到相应大小不同的电压。如果数字0000B每次增1,一直变化到1111B,那么,在输出端就可得到一个0~V0电压幅度的阶梯波形。
3.采用T型电阻网络的D/A转换器
从图10.7可以看出,在D/A转换中采用独立的权电阻网络,对于一个8位二进制数的D/A转换器,就需要R,2R,4R,…,128R共8个不等的电阻,最大电阻阻值是最小电阻阻值的128倍,而且对这些电阻的精度要求比较高。如果这样的话,从工艺上实现起来是很困难的。所以,n个如此独立输入支路的方案是不实用的。
在DAC电路结构中,最简单而实用的是采用T型电阻网络来代替单一的权电阻网络,整个电阻网络只需要R和2R两种电阻。在集成电路中,由于所有的组件都做在同一芯片上,电阻的特性可以做得很相近,而且精度与误差问题也可以得到解决。
图10.8是采用T型电阻网络的4位D/A转换器。4位元待转换资料分别控制4条支路中开关的倒向。在每一条支路中,如果(资料为0)开头倒向左边,支路中的电阻就接到地;如果(资料为1)开关倒向右边,电阻就接到虚地。所以,不管开关倒向哪一边,都可以认为是接“地”。不过,只有开关倒向右边时,才能给运算放大器输入端提供电流。
T型电阻网络中,节点A的左边为两个2R的电阻并联,它们的等效电阻为R,节点B的左边也是两个2R的电阻并联,它们的等效电阻也是R,…,依次类推,最后在D点等效于一个数值为R的电阻接在参考电压VREF上。这样,就很容易算出,C点、B点、A点的电位分别为-VREF/2,-VREF/4,-VREF/8。
在清楚了电阻网络的特点和各节点的电压之后,再来分析一下各支路的电流值。开关S3,S2,S1,S0分别代表对应的1位二进制数。任一资料位Di=1,表示开关Si倒向右边;Di=0,表示开关Si倒向左边,接虚地,无电流。当右边第一条支路的开关S3倒向右边时,运算放大器得到的输入电流为-VREF/(2R),同理,开关S2,S1,S0倒向右边时,输入电流分别为-VREF/(4R),-VREF/(8R),-VREF/(16R)。
如果一个二进制数据为1111,运算放大器的输入电流
I=-VREF/(2R)-VREF/(4R)-VREF/(8R)-VREF/(16R)
=-VREF/(2R)(20+2-1+2-2+2-3)
=-VREF/(24R)(23+22+21+20)
相应的输出电压
V0=IR0=-VREFR0(24R)(23+22+21+20)
将资料推广到n位,输出模拟量与输入数字量之间关系的一般表达式为:
V0=-VREFR0/(2nR)(Dn-12n-1+Dn-2 2n-2+…+D121+D020) (Di=1或0)
上式表明,输出电压V0除了和待转换的二进制数成比例外,还和网络电阻R、运算放大器反馈电阻R0、标准参考电压VREF有关。
10.3.2 D/A转换器性能参数
在实现D/A转换时,主要涉及下面几个性能参数。
⑴分辨率。分辨率是指最小输出电压(对应于输入数字量最低位增1所引起的输出电压增量)和最大输出电压(对应于输入数字量所有有效位全为1时的输出电压)之比,
例如,4位DAC的分辨率为1/(24-1)=1/15=6.67%(分辨率也常用百分比来表示)。8位DAC的分辨率为1/255=0.39%。显然,位数越多,分辨率越高。
⑵转换精度。如果不考虑D/A转换的误差,DAC转换精度就是分辨率的大小,因此,要获得高精度的D/A转换结果,首先要选择有足够高分辨率的DAC。
D/A转换精度分为绝对和相对转换精度,一般是用误差大小表示。DAC的转换误差包括零点误差、漂移误差、增益误差、噪声和线性误差、微分线性误差等综合误差。
绝对转换精度是指满刻度数字量输入时,模拟量输出接近理论值的程度。它和标准电源的精度、权电阻的精度有关。相对转换精度指在满刻度已经校准的前提下,整个刻度范围内,对应任一模拟量的输出与它的理论值之差。它反映了DAC的线性度。通常,相对转换精度比绝对转换精度更有实用性。
相对转换精度一般用绝对转换精度相对于满量程输出的百分数来表示,有时也用最低位(LSB)的几分之几表示。例如,设VFS为满量程输出电压5V,n位DAC的相对转换精度为±0.1%,则最大误差为±0.1%VFS=±5mV;若相对转换精度为±1/2LSB,LSB=1/2n,则最大相对误差为±1/2n+1VFS。
⑶非线性误差。D/A转换器的非线性误差定义为实际转换特性曲线与理想特性曲线之间的最大偏差,并以该偏差相对于满量程的百分数度量。转换器电路设计一般要求非线性误差不大于±1/2LSB。
⑷转换速率/建立时间。转换速率实际是由建立时间来反映的。建立时间是指数字量为满刻度值(各位全为1)时,DAC的模拟输出电压达到某个规定值(比如,90%满量程或±1/2LSB满量程)时所需要的时间。
建立时间是D/A转换速率快慢的一个重要参数。很显然,建立时间越大,转换速率越低。不同型号DAC的建立时间一般从几个毫微秒到几个微秒不等。若输出形式是电流,DAC的建立时间是很短的;若输出形式是电压,DAC的建立时间主要是输出运算放大器所需要的响应时间。
10.3.3 DAC0832及接口电路
DAC0832是美国资料公司研制的8位双缓冲器D/A转换器。芯片内带有资料锁存器,可与数据总线直接相连。电路有极好的温度跟随性,使用了COMS电流开关和控制逻辑而获得低功耗、低输出的泄漏电流误差。芯片采用R-2RT型电阻网络,对参考电流进行分流完成D/A转换。转换结果以一组差动电流IOUT1和IOUT2输出。
DAC0832主要性能参数:①分辨率8位; ②转换时间1μs;③参考电压±10V;④单电源+5V~+15v;⑤功耗20mW。
1.DAC0832的结构
DAC0832的内部结构如图10.9所示。DAC0832中有两级锁存器,第一级锁存器称为输入寄存器,它的锁存信号为ILE;第二级锁存器称为DAC寄存器,它的锁存信号为传输控制信号 。因为有两级锁存器,DAC0832可以工作在双缓冲器方式,即在输出模拟信号的同时采集下一个数字量,这样能有效地提高转换速度。此外,两级锁存器还可以在多个D/A转换器同时工作时,利用第二级锁存信号来实现多个转换器同步输出。
图10.9中LE为高电平、 和 为低电平时, 为高电平,输入寄存器的输出跟随输入而变化;此后,当 由低变高时, 为低电平,资料被锁存到输入寄存器中,这时的输入寄存器的输出端不再跟随输入资料的变化而变化。对第二级锁存器来说, 和 同时为低电平时, 为高电平,DAC寄存器的输出跟随其输入而变化;此后,当 由低变高时, 变为低电平,将输入寄存器的资料锁存到DAC寄存器中。
2. DAC0832的引脚特性
DAC0832是20引脚的双列直插式芯片。各引脚的特性如下:
——片选信号,和允许锁存信号ILE组合来决定 是否起作用。
ILE——允许锁存信号。
——写信号1,作为第一级锁存信号,将输入资料锁存到输入寄存器(此时, 必须和 、ILE同时有效)。
——写信号2,将锁存在输入寄存器中的资料送到DAC寄存器中进行锁存(此时,传输控制信号 必须有效)。
——传输控制信号,用来控制 。
DI7~DI0——8位数据输入端。
IOUT1——模拟电流输出端1。当DAC寄存器中全为1时,输出电流最大,当DAC寄存器中全为0时,输出电流为0。
IOUT2——模拟电流输出端2。IOUT1+IOUT2=常数。
RFB——反馈电阻引出端。DAC0832内部已经有反馈电阻,所以,RFB端可以直接接到外部运算放大器的输出端。相当于将反馈电阻接在运算放大器的输入端和输出端之间。
VREF——参考电压输入端。可接电压范围为±10V。外部标准电压通过VREF与T型电阻网络相连。
VCC——芯片供电电压端。范围为+5V~+15V,最佳工作状态是+15V。
AGND——模拟地,即模拟电路接地端。
DGND——数字地,即数字电路接地端。
3.DAC0832的工作方式
DAC0832进行D/A转换,可以采用两种方法对数据进行锁存。
第一种方法是使输入寄存器工作在锁存状态,而DAC寄存器工作在直通状态。具体地说,就是使 和 都为低电平,DAC寄存器的锁存选通端得不到有效电平而直通;此外,使输入寄存器的控制信号ILE处于高电平、 处于低电平,这样,当 端来一个负脉冲时,就可以完成1次转换。
第二种方法是使输入寄存器工作在直通状态,而DAC寄存器工作在锁存状态。就是使 和 为低电平,ILE为高电平,这样,输入寄存器的锁存选通信号处于无效状态而直通;当 和 端输入1个负脉冲时,使得DAC寄存器工作在锁存状态,提供锁存数据进行转换。
根据上述对DAC0832的输入寄存器和DAC寄存器不同的控制方法,DAC0832有如下3种工作方式:
⑴单缓冲方式。单缓冲方式是控制输入寄存器和DAC寄存器同时接收资料,或者只用输入寄存器而把DAC寄存器接成直通方式。此方式适用只有一路模拟量输出或几路模拟量异步输出的情形。
⑵双缓冲方式。双缓冲方式是先使输入寄存器接收资料,再控制输入寄存器的输出资料到DAC寄存器,即分两次锁存输入资料。此方式适用于多个D/A转换同步输出的情节。
⑶直通方式。直通方式是资料不经两级锁存器锁存,即 , , , 均接地,ILE接高电平。此方式适用于连续反馈控制线路,不过在使用时,必须通过另加I/O接口与CPU连接,以匹配CPU与D/A转换。
4.DAC0832的外部连接
DAC0832的外部连接线路如图10.10所示。
5. DAC0832的应用举例
⑴DAC0832实现一次D/A转换,可以采用下面程序段。设定要转换的数据放在1000H单元中。
MOV BX,100H
MOV AL,[BX] ;取转换资料
MOV DX,PORTA ;PORTA为D/A转换器端口地址
OUT DX,AL
⑵在实际应用中,经常需要用到一个线性增长的电压去控制某一个检测过程,或者作为扫描电压去控制一个电子束的移动。执行下面的程序段,利用D/A转换器产生一个锯齿波电压,实现此类控制作用。
MOV DX,PORTA ;PORTA为D/A转换器端口地址
MOV AL,OFFH ;置初值
ROTAT:INC AL
OUT DX,AL ;往D/A转换器输出资料
CALL DELP ;调用延迟子程序
JMP ROTAT
DELY: MOV CX, DATA ;置延迟常数DATA
DELY1: LOOP DELY1
RET
如果需要一个负向的锯齿波,只要将指令INC AL改成DEC AL就可以了。
⑶从两个不相关的文件中输出一批X-Y资料,驱动X-Y记录仪,或者控制加工复杂零件的走刀(X轴)和进刀(Y轴)。这些在控制过程中是很有用的。下面程序驱动X-Y记录仪的100点输出,并用软件驱动记录仪的抬笔和放笔控制。
MOV SI, XDATA ;X轴资料指针→SI
MOV DI, YDATA ;Y轴资料指针→DI
MOV CX, 100
WE0: MOV AL,[SI]
OUT PORTX, AL ;往X轴的D/A转换器输出资料
MOV AL,[DI]
OUT PORTY,AL ;往Y轴的D/A转换器输出资料
CALL DELY1 ;调延迟子程序1,等待笔移动
MOV AL,01H
OUT PORTM,AL ;输出升脉冲,控制笔放下
CALL DELY2 ;调延迟子程序2,等待完成
MOV AL,00H
OUT PORTM,AL ;输出降脉冲,控制笔抬起
CALL DELY2 ;调延迟子程序2,等待完成
INC SI
INC DI
LOOP WE0
HLT
DELY1:┇
RET
DELY2:┇
RET
XDATA DB…
YDATA DB…