高速D/A转换芯片MX7541原理及应用
摘要:美国美信公司生产的MX7541系列器件是一种12位并行高速D/A转换器,此芯片可方便地应用于精密仪器的输出控制系统中。文中介绍了该芯片的基本参数和主要特性,给出了MAX7541与单片机和CPLD连接的具体应用电路。
关键词:D/A MAX7541 数模转换器 CPLD 单片机
1 概述
MX7541是美国MAXIM公司生产的高速高精度12位数字/模拟转换器芯片,由于MX7541转换器件的功耗特别低,而且其线性失真可低达0.012%,因此,该D/A转换器芯片特别适合于精密模拟数据的获得和控制。此外,由于MX7541器件内部带有激光制作的精密晶片电阻和温度补偿电路以及NMOS开关,因而可充分保证MX7541具有12位的精度。还有一个重要特点是:MX7541的所有输入均与CMOS和TTL电平兼容。
MX7541在电气和管脚上都与AD公司的AD7541芯片兼容,它们都采用标准的18脚封装。其主要电气特点如下:
●转换时间:0.6μs;
●具有12位线性输出(1/2LSB);
●准确度:1LSB;
●功耗低,5V情况下通常为450mW;
●可进行四象限乘法转换;
●与TTL、CMOS电平兼容。
javascript:window.open(this.src);" style="cursor:pointer;"/>
2 引脚功能和内部结构
图1所示是MX7541的引脚排列图,各引脚功能如下
VREFDAC转换器的电压参考输入端,其电压值在±25V之间;
RFB反馈电阻接入端,在双极模式时与外置运算放大器输出相连;
OUT1OUT2电流输出,I1+I2为常数;
BIT1~BIT12数字量输出,BIT1为最高位
VDD电源输入范围为+17V~+5V
GND数字地。
图2所示是MX7541 高速D/A转换芯片的内部结构功能图。
3 MX7541的输入与输出
MX7541有两种输出方式,即单极性输出和双极性输出,两种方式的电路连接图分别如图3和图4所示。两种输出方式的输入输出对应关系分别列于表1和表2。
表 单极性输入输出关系
数字输入量 | 模拟量输出 | ||
最高位 | 最低位 | ||
1 1 1 1 | 1 1 1 1 | 1 1 1 1 | -VREF(4095/4096) |
1 0 0 0 | 0 0 0 0 | 0 0 0 0 | -VREF(2048/4096)=-1/2-VREF |
0 0 0 0 | 0 0 0 0 | 0 0 0 1 | -VREF(1/4096) |
0 0 0 0 | 0 0 0 0 | 0 0 0 0 | 0V |
表2 双极性方式中输入输出关系
数字输入量 | 模拟量输出 | ||
最高位 | 最低位 | ||
1 1 1 1 | 1 1 1 1 | 1 1 1 1 | +VREF(2047/2048) |
1 0 0 0 | 0 0 0 0 | 0 0 0 1 | +VREF(1/2048) |
1 0 0 0 | 0 0 0 0 | 0 0 0 0 | 0V |
0 1 1 1 | 1 1 1 1 | 1 1 1 1 | -VREF(1/2048) |
0 0 0 0 | 0 0 0 0 | 0 0 0 0 | -VREF(2048/2048)=-VREF |
4 MX7541与单片机的连接
由于MX7541是12位数字输入,因此它必须与16位以上的单片机相连。当其与MCS-96单片机进行连接时,其电路非常简单,只需把单片机的数据线直接与MX7541的输入线相连即可。程序也很简单,只要不停地向其送数据即可。
javascript:window.open(this.src);" style="cursor:pointer;"/>
5 与CPLD的连接
由于目前8位单片机应用比较多,再加上MX7541是高速D/A转换器,因此,用单片机来控制MX7541显得不是很方便。为此,本文介绍一种运用可编程逻辑器件,这里以ALTERA公司的MAX7000系列中的MAX7128S为例,来控制MX7541的方法,该方法进而可推广到其它高速D/A转换芯片。
图5 仿真输出波形
这种控制方法的基本思想是利用CPLD连接8位单片机与12位D/A转换器,其中单片机与CPLD之间采用两根控制线来进行通讯,同时用它们来决定数据线中数据的种类,表3给出了控制线中的数据意义。但应注意:该方案的输入时钟周期应小于单片机的指令周期。下面给出的是利用VERILOG语言所编写的程序:
module mx7541(clk,a,b,in,out);
output out;
input a,b,clk;
input[7..0]in;
reg[7..0]out;
reg[7..0] di;
reg[7..0]gao;
always @(negedge clk)
begin
if(a==0 & b==1)
di<=in;
else
if(a==1 & b==0)
gao<=in[3:0];
else
if(a==1 & b==1)
out<={gao[3:0],di[7:]};
end
endmodule
其仿真输出波形如图5所示。
表3 控制线中的数据意义
控制线A | 控制线B | 控制意义 |
0 | 0 | 不工作 |
0 | 1 | 低8位数据 |
1 | 0 | 高8位数据 |
1 | 1 | 输出到DA转换器 |
6 结束语
笔者将MX7541芯片用于高频波形发生器结果证明:该芯片性能稳定D/A转换线性良好使用简单。另外,这种方法也同样适用于其它同类产品(如MX7542,MX7543,MX7545等芯片)。