您的当前位置:首页正文

十六位模数转换器AD7705 及其应用

2021-08-08 来源:步旅网
第18卷第3期2003年9月

文章编号:167121742(2003)0320281206

成 都 信 息 工 程 学 院 学 报

JOURNALOFCHENGDUUNIVERSITYOFINFORMATIONTECHNOLOGYVol.18No.3

Sep.2003

十六位模数转换器AD7705及其应用

敖振浪, 李源鸿, 谭鉴荣

(广东省气象技术装备中心,广东广州510080)

摘要:AD7705是AD公司最近推出的十六位模数转换器。我们主要介绍了它的功能和特点,给出了基于

AD7705实际应用的硬件、软件设计方法,以及部分程序源代码,总结了实际应用中必须注意的几个技术问题。

关 键 词:AD7705模数转换器;应用;设计中图分类号:TP335+.1   文献标识码:A

1 AD7705简介

  AD7705是十六位分辨率的A/D转换器,2通道全差分模拟输入,使用+5V单电源,主要应用于低频测量。

它利用了Σ-△转换技术实现了16位无G失代码性能,三线数字接口,可以通过串行输入接口由软件配置芯片的增益值、输入信号极性和数据更新速率,非常灵活方便。具有自校准和系统校准功能,能够消除器件本身和系统的增益以及偏移误差。是用于开发智能系统、微控制器系统和基于DSP系统的理想产品。1.1 主要特点

2个全差分输入通道的ADC,十六位无丢失代码,0.003%非线性;可编程增益:1~128;三线串行接口;具有

模拟输入端缓冲器;工作电压:2.7~3.3V或4.75~5.25V;低功耗,3V电压时,最大功耗为1mW;等待电流的

μ最大值为8A;16脚DIP、SOIC和TSSOP封装。1.2 片内寄存器操作

AD7705包含了8个片内寄存器,这些寄存器通过器件的串行口访问,所有的操作都是通过对寄存器的操作。

第一个是通信寄存器,器件复位后,通信寄存器处于等待状态,通过通信寄存器写操作,决定下一次操作是写还是

读,同时决定这一次读操作或写操作发生在那个寄存器上。也就是说所有的寄存器(包括通信寄存器本身和输出数据寄存器)进行读操作之前,必须首先写通信寄存器,然后才能读选定的寄存器。下面简单介绍寄存器的功能。

通信寄存器

0/DRDY-RS2

RS1

RS0

R/W-STBY

CH1

CH0

  0/DRDY-:写操作时此位必须为0,读操作时表示数据寄存器数据是否准备好。RS2,RS1,RS0:寄存器选择位。

R/W-:读写选择。“0”表示下一次是写操作。“1”表示下一次是读操作。STBY:等待模式,写入“0”器件处于正常工作模式。CH1,CH0:通道选择,00选择通道1,01选择通道2。

设置寄存器

MD1

MD0

G2

G1

G0

B-/U

BUF

FSYN

  MD1,MD0:工作模式选择位,00为正常工作模式,01为自校准,10为零刻度系统校准,11为满刻度系统校

准。  

收稿日期:2002211229;修订日期:2003202218

© 1995-2004 Tsinghua Tongfang Optical Disc Co., Ltd. All rights reserved.

282成 都 信 息 工 程 学 院 学 报            第18卷

  G2,G1,G0:增益选择位,00~08分别对应增益值1~128。

B-/U:单极性/双极性择位“,0”表示双极性。

BUF:输入缓冲控制位“,0”表示无缓冲。FSYN:滤波器同步。

时钟寄存器

ZERO

ZERO

ZERO

CLKDIS

CLKDIV

CLK

FS1

FS0

  ZERO:必须为0,否则,会导致器件的非指定操作。CLKDIS:主时钟禁止位“,1”禁止时钟在MCLKOUT引脚输出。CLKDIV:时钟分频位。

CLK:时钟位。时钟频率为2.4576MHz时,该位设置为“1”,时钟频率为1MHz时,该位设置为“0”。

FS1,FS0:滤波器选择位,与CLK一起决定器件的输出更新率。如表1。

表1 FS1、FS0与CLK决定的器件输出更新率

CLK*00001111FS100110011FS001010101输出更新率20Hz25Hz100Hz200Hz50Hz60Hz250Hz500Hz注:假定MCLKIN脚的时钟频率正确,CLKDIV位的设置也是适当的。

  数据寄存器:这是一个十六位只读寄存器,它包含了最新的转换结果。

测试寄存器:用于测试期间器件,用户一般不用。

零标度校准寄存器和满标度校准寄存器:都是24位,用户一般不用。

2 应用设计

  AD7705主要在单片机小系统中应用。本应用实例是一个低频数据采集电路,采用了89C51单片机,下面详细介绍电路设计和软件设计方法。2.1 与单片机的接口

首先介绍AD7705与单片机的连接方法,因为它采用串行接口,使得与大多数单片机很容易连接。AD7705与8xC51单片机的接口电路如图1所示。

图1 AD7705与8XC51单片机的接口电路

  在一般的简单系统中,常常只有1片AD7705或其它共用口线的器件,故CS-通常接低电平,节省了单片机的

输出输入控制线,这样就可以配置成三线连接方式。三线连接方式下决定数据寄存器是否被更新也即是确定数

© 1995-2004 Tsinghua Tongfang Optical Disc Co., Ltd. All rights reserved.

第3期          敖振浪等:十六位模数转换器AD7705及其应用283

据寄存器是否可以被读,只有通过监控通信寄存器DRDY-位来判断,这种做法的代价是时间开销较多,它并不适用于时效性要求比较强的系统。比较好的办法是监控硬件DRDY-引脚的状态,以决定数据寄存器是否被更新,硬件DRDY-引脚的输出与通信寄存器DRDY-位同步,DRDY-引脚一旦变成低电平,表明数据寄存器数据已经更新,可以读取。所以DRDY-输出引脚接至CPU的INT0或INT1就可以实现中断或者查询方式的监控。但不管是查询方式还是中断方式,都需要增加一根数据线。在本设计中采用了硬件DRDY-引脚查询的方法。

串行口包含5个信号,即SCLK、DIN、DOUT、DRDY-和CS-,通常直接连接到8xC51对应的引脚P3.0、P3.1、P3.2、P3.3,DIN线用来向片内寄存器传输数据,而DOUT线用来访问寄存器里的数据。SCLK是串行时钟输入,所有的数据传输都和SCLK信号有关,对于与单片机的接口,为确保芯片数据转换可靠,在两次相邻的数据传输之间,应将本SCLK置为高电平。DRDY-线作为状态信号,表示数据什么时候准备好以便从寄存器读取数据。数据寄存器中有新的数据字的时候,DRDY-脚变为低电平。如果在数据寄存器数据更新之前,若DRDY-脚变为高电平,提示这时候不要读数据,避免在数据寄存器更新的过程中读出不可靠的数据。

AD770的读写操作严格按照时序进行,图2给出AD7705读和写时序。

图2 AD7705读、写时序

2.2 实际应用电路设计

我们设计的是一个气象探测仪器的实际应用电路,专门用于温度和湿度的模数转换。因为实时性要求不太

高,因此数据读取采用了查询方法,这种方法对一般的应用是可以满足要求的。在图3电路中,CLCK、DIN、DOUT和DRDY-引脚直接连接80C52的P1.0-P1.3引脚。由CC3和RC5组成的复位电路,通电时,输入引脚RESET-处于低电平,复位所有的逻辑、数据滤波器和模拟调试器,将所有的片内寄存器设置到其默认状态。使用芯片REF195产生+5V基准电压供给AD7705作为参考电压,同时作为温度传感器的激励电流源。注意基准电压输出

μ和1000p去耦电容CC4和CC8,因为微小的噪声电平都会影响转换精度。实际上,由于AD7705端应该并联10

的功耗很小(最大1.1mA),所以在设计中作者将AD7705的电源输入端VDD直接连接到REF195基准电压输出端第6脚上,从而大大减少了电源干扰造成的转换误差。第一通道的输入端加入去耦电路,3个1000p的去耦电容CC5、CC6、CC7和两个10k电阻,因为引入了大电容去耦电路,因此需要AD7705工作于缓冲模式。通道2作为供电电压的监测。

从图3可以看出,AD7705输入基准电压等于+5V,被y输入端input2输入电压负端接地,正端最大输入幅度+0.3V,故增益可以选择8或者16。input1是从+12V电源分压得到2.0V左右,可以选择增益2。注意输入信号

© 1995-2004 Tsinghua Tongfang Optical Disc Co., Ltd. All rights reserved.

284成 都 信 息 工 程 学 院 学 报            第18卷

幅度与增益关系,通道增益太大放大结果会超过基准电压+5V,造成转换结果错误。

AD7705内部只有一套模数转换电路,通道1和通道2的选择通过软件设置进行切换,实际应用中往往需要对不同通道采取不同的增益,动态地对AD7705进行增益、通道设置,很灵活方便地达到这一目的。

图3 气象探测仪电路图   

2.3 软件设计

使用AD7705之前,首先要对所有寄存器进行设置,才能保证器件正常工作。在实际使用中,首先选择模拟输入模式(单极性还是双极性)、是否需要缓冲、时钟分频和输出更新速率;根据外部输入信号的幅度来决定设置器件的增益值,本实例里通道1和通道2输入信号都是单极性,但幅度不同,所以循环选择通道,选择相应参数,应用中选择输入通道单极性、初始增益等于8、数据更新速率为250Hz。根据实际确定所有参数以后,对AD7705芯片进行设置,参数设置方法比较独特,在设置参数之前,首先对通信寄存器进行一次写操作,来决定下一个是什么样的寄存器和什么样的操作内容,再进行下一步的参数写入,读者可参考下面的AD7705初始化程序InitADC()。

模拟输入电路前端加入了一个简单的R、C滤波器,会在输入电压中引起增益误差,必须对器件进行校准,因为每次系统校准可以对系统的增益、偏移误差、以及器件本身的内部误差进行补偿,所以参数设置完毕以后,应该对器件进行一次系统校准,写入设置寄存器位MD1和MD0分别为0和1完成系统自校准,自校准后自动返回正常模数转换工作模式。实际中各路输入信号幅度往往不完全相同,因此每转换一路就需要一次参数设置和系统校准。还需注意的是,在非缓冲模式下使用时,系统校准还可以消除模拟输入端由电源阻抗引起的任何误差。

下面是用C51语言编写的初始化程序:

voidInitADC(void){unsignedchari;

ADC-CLK=1;ADC-DIN=1;

for(i=0;i<40;i++){ADC-CLK=0;ADC-CLK=1;}  //防止接口迷失,通信寄存器返回到等待写状态WriteToReg-ADC-Init(0x20);         //通道1,下一个写时钟寄存器WriteToReg-ADC-Init(0x06);      //写时钟寄存器设置更新速率为250HzWriteToReg-ADC-Init(0x10);      //通道1,下一个写设置寄存器

WriteToReg-ADC-Init(0x5c);  //写设置寄存器,设置成单极性、无缓冲、增益为8、滤波器工作、自校准Delay-1ms(50);  //延时}

© 1995-2004 Tsinghua Tongfang Optical Disc Co., Ltd. All rights reserved.

第3期          敖振浪等:十六位模数转换器AD7705及其应用

unsignedintWriteToReg-ADC(unsignedintbyteword){unsignedintAD16bit,Token;

285

 unsignedchari;

  ADC-CLK=1;ADC-CS=0;/*开始*/  Token=0x80;AD16bit=byteword;  for(i=0;i<8;i++)

  {if(AD16bit&Token)ADC-DIN=1;/*输入数据位*/    elseADC-DIN=0;

   ADC-CLK=1;ADC-CLK=0;ADC-CLK=1;   Token=Token>>1;  }

  ADC-CLK=1;ADC-DIN=1;/*结束*/  return(TRUE);

}

初始化以后,CPU就可以从模数转换器中读数据,读取数据之前必须确定数据寄存器的状态,有两种不同的方式查询,第一种是查询DRDY-引脚,如果DRDY-引脚处于低电平,这表示数据已经转换完成,可以读取。第二种是查询通信寄存器中的DRDY-位,如果是“0”表示数据可以读取。本例使用前者。读数据流程图如图4所示,读数据的频率为大约每分钟60次,远小于数据寄存器更新速率,确保了避免在数据寄存器更新的过程中读出不可靠的数据。

图4 读数据流程图

  为了便于读者理解,给出读数据寄存器的函数原代码如下:

unsignedintReadADC-16BitValue(unsignedcharchannel)

{unsignedintAD16bit,Token;

 unsignedchari;

 WriteToReg-ADC(0x38|channel); //设置读当前通道数据 while(ADC-DRDY==1){;}  //等待数据准备好 ADC-CLK=1;ADC-CS=0; AD16bit=0x00; for(i=0;i<16;i++) {AD16bit=AD16bit<<1;

  ADC-CLK=0;  if(ADC-DOUT==1)AD16bit=AD16bit|0x01;//读取数据位  ADC-CLK=1;

© 1995-2004 Tsinghua Tongfang Optical Disc Co., Ltd. All rights reserved.

286成 都 信 息 工 程 学 院 学 报            第18卷

 }

 ADC-CLK=1;ADC-DIN=1; return(AD16bit);}

3 系统设计时值得注意的问题

  AD7705功能独特,具有分辨率高、接口简单等特点,实际应用有时会遇到一些问题,只要注意是完全可以避免的,作者提供几点实际应用经验供参考:

(1)在实际应用中,由于强电磁场、系统中的闪烁信号干扰或者软件错误,不可避免会造成接口迷失,一旦接口迷失,就无法对AD7705进行正常操作,数据也无法从中正常读出。因此,在系统软件设计中应当定时复位系统接口,使通信寄存器回到等待写状态,这一过程可以通过向DIN输入端写入至少32个串行时钟周期的逻辑“1”以复位串行接口。同时也应当注意,由于接口出现迷失,写入任何寄存器的信息都是不可预料的,所以接口复位后建议将所有的寄存器重新设置一次。

(2)输出数据可以从串行口上随机地或周期性地读出,读出速率应不超过预设的输出寄存器更新速率。读数据的例程里面不应该加入太多的其它操作,确保在下一次输出数据更新之前读操作已经完成,这样才能避免连续两次从数据寄存器读到同样的数据(没有被更新数据)。

(3)在设计AD7705印刷板电路必须讲究布线技巧,布线的好坏直接影响数据转换精度,甚至会引起芯片工作失常。经验表明,AD7705应该布设在一个相对独立和集中的区域,器件面用覆铜作接地平面,起到屏蔽作用。数字区和模拟区尽可能在底面分开布线,模拟接地与数字接地应只在一个点连接在一起,以避免出现接地环路,并用屏蔽网格技术加以屏蔽,最后要以星型结构接入系统公共接地点。所有电源都要加电容去耦电路,电容器尽可能靠近芯片的电源输入端。

参考文献:

[1] 邬宽明.80C51系列微控制器系统原理、功能集成与应用[M].北京:北京航空航天大学出版社,1995.[2] 徐爱钧,彭秀华.单片机高级语言C51应用程序设计[M].北京:电子工业出版社,1998.

16bitsconverterAD7705anditsapplication

AOZhen2lang, LIYuan2hong, TANJian2rong

(CenterofMeteorologicalandTechnologicalEquipmentofGuangdongProvince,Guangzhou510080,China)

Abstract:TheAD7705isa16bitsA/DwhichisintroducedbytheANALOGDEVICESCompany.Itsfunctionsandcharac2teristicsareintroduced.ThehardwarebasedontheAD7705,thedesignmethodofthesoftwareandsomeproceduresourcecodeshavebeenpresented.Severaltechnologicalproblemsshouldbepaidattentiontointhepracticalapplication.Keywords:AD7705A/D;application;design

© 1995-2004 Tsinghua Tongfang Optical Disc Co., Ltd. All rights reserved.

因篇幅问题不能全部显示,请点此查看更多更全内容