MAX1032是Maxim公司最新推出的一种多通道、多量程、低功耗、分辨率为14位的串行输出模数转换器。该器件具有转换速率高、功耗低、接口方便等优点,特别适合在航空电子、数据采集、工业控制、多媒体、机器人等领域的应用。 2 MAX1032的特性和结构 2.1 MAX1032的特性 (1)输入通道:八个单端或四个差分模拟输入; (2)输入范围:由软件编程确定(每通道独立), 单端输入范围为0V到+6V、 -6V到0V、 0V到+12V、-12V到0V、 ±3V、±6V及± 12V,;差分输入范围为±6V、±12V及±24V ; (3)接口特性:数据和信号接口电平与SPITM/QSPITM/MICROWIRETM兼容,可以和供电电压为2.7V至5.25V的计算机系统直接连接; (4)采样速率: 115ksps; (5)基准电压:可采用内部基准,也可采用外部基准,基准电压范围3.800V~4.136V。 2.2 MAX1032的结构 MAX1032内置14位逐次逼近寄存器和输入跟踪/保持电路,实现将模拟信号转换成14位数字信号,数据输出方式为串行。其内部结构和引脚排列分别如图1、图2所示。 (1)CH0-CH7:模拟信号输入端。 (2)CS:片选输入,低电平有效。只有置低时,数据才可同步输入(DIN)或输出(DOUT)。 (3)DIN:串行数据输入。在CS为低时,DIN上的数据在SCLK的上升沿时刻输入片内。 (4)SSTRB:串行触发输出。在内部时钟模式下,SSTRB的上升沿跳变表明转换完成;在外部时钟模式下,SSTRB一直为低电平。 (5)SCLK:串行时钟输入。 (6)DOUT:串行数据输出。在CS为低时,DOUT上的数据在SCLK的下降沿时刻输出;CS置高时,DOUT为高阻状态。 (7)REF:内部基准电压输出或外部基准电压输入。在外部参考电压模式下,REF端可连接由外部电路提供的3.800V-4.0136V的基准电压;在内部参考电压模式下,REF端与AGND1端之间必须连接容量为1uF的滤波电容。 图1 图1 MAX1032的内部结构 图2 MAX1032的引脚 3 工作原理 在进行A/D转换之前,要确认被转换的模拟信号是否满足模数转换器只有17KΩ输入阻抗的要求,然后向MAX1032依次送入信号输入控制字和工作模式控制字。 3.1 信号输入控制字 信号输入控制字用来选择被转换的模拟通道、转换方式和转换范围,其格式如表1所示。 表1 信号输入控制字 3.2 工作模式控制字 MAX1032有外部时钟、外部采样、内部时钟等三种工作模式,通过表2所示的工作模式控制字进行选择。 (1) 外部时钟模式。在此模式下能达到最快的转换速率。SCLK控制模拟信号的采集及转换,这样在模拟信号的获取时,更加便于精度的控制。 (2) 外部采样模式。在此模式下以最慢的转换速率达到最大限度的吞吐量。其主要特点是由SCLK控制模拟信号的采集、内部时钟控制模拟信号的转换。在前15个时钟周期内CS必须保持低电平,然后发生跳变并保持高电平。为了得到最佳的转换效果,应将DIN和SCLK置空闲位。 (3) 内部时钟模式。在此模式下,内部时钟控制模拟信号的采集和转换,内部时钟在SCLK的第8个周期的下降沿后的100ns-400ns时间内启动转换,其速率大约为4.5MHz。转换结束后,SSTRB置位高电平、CS置位低电平导出转换结果。 表2 工作模式控制字 4 应用举例 本文以MAX1032在DS87C520中的应用为例,介绍MAX1032与CPU的接口方法与软件设计。 DS87C520介绍 达拉斯公司生产的DS87C520是一种新型高速全静态CMOS单片机,其引脚和指令集与8051单片机完全兼容。DS87C520的处理器核心经过重新设计,一个机器周期只占4个时钟周期。实际应用表明,若时钟频率相同,DS87C520执行相同指令的速度是8051的1.5到3倍,加上DS87C520最高时钟频率为33MHz,而8051仅为12MHz,因此DS87C520为一款高速单片机,可以满足高速数据传输过程中的速率要求。此外,DS87C520还有两个全双工串行口、13个中断源、16KB片内 EPROM、1KB片内SRAM、双数据指针、电源电压下降自动复位、可编程看门狗定时器等丰富的硬件功能,使其具有了广阔的应用领域与前景。
MAX1032与DS87C520的连接 图3是MAX1032与DS87C520的应用连接。在本例中,我们采取的是内部时钟模式,工作模式控制字为10101000B。为了提高计算机系统的抗干扰能力,在MAX1032与DS87C520之间增加了高速光电耦合器6N136,以隔离现场干扰对计算机的影响。对MAX1032的控制是通过DS87C520的P1口进行的。其中,SSTRB反映了A/D转换的工作状态,可以用查询方式或中断方式监测该信号,以便及时读取正确的转换结果。 程序采用C51语言编写,并在KEILC51 V6.20环境下通过了调试。程序的编写思路是:定义DS87C520的P1.0为MAX1032的片选信号CS,P1.1为数据输入DIN,P1.2为数据输出DOUT,ALE提供MAX1032的时钟信号SCLK。在确定并送入信号输入控制字和工作模式控制字后,A/D转换被启动,经过一段时间的延时(A/D转换),SSTRB端发生上升沿跳变,表明A/D转换结束。在时钟SCLK的作用下,从数据输出端DOUT读出两个字节长度的转换结果。将读出的数据存入两个无符号字符变量中,将这2个字符变量拼成一个16位无符号整型变量作用函数返回值返回,返回值的低14位有效。 图3 MAX1032与DS87C520的连接 4.3 软件设计 按照图3连接的系统,完整的A/D转换子程序如下: // 采用P1口作控制 sbit DOUT = P1^2 ; // 数据输出 sbit CS = P1^0 ; // MAX1032片选 #define uint unsigned int #define uchar unsigned char //MAX1032 14位A/D操作程序 uint max1032(void) { uchar i; uchar hbyte,lbyte; cs=0; //低电平有效,开始转换 for(i=0;i<8;i++) //延时,等待转换结束 { _nop_(); } SCLK=1; SCLK=0; //开始读数据 hbyte=0; for(i=0;i<6;i++) //高6位 { DOUT=1; SCLK=1; if (DOUT) { hbyte="Ox01"; } SCLK=0; if (i!=5) { hbyte<<=1; } } lbyte=0; for(i=0;i<8;i++) //低8位 { DOUT=1; SCLK=1; if (DOUT) { lbyte="Ox01"; } SCLK=0; if (i!=7) { lbyte<<=1;} } } 5 结论 Maxim公司的高性能A/D系列的产品已在多种场合得到了广泛的应用,如高精度数据采集系统、工业过程控制、便携式数字仪表、医疗仪器等。本文介绍了Maxim最新推出的14位多通道串行ADC MAX1032的性能和特点,给出了典型的应用实例及程序,读者可将其灵活运用于自己的系统设计中。