十六位模数转换器AD7705及其应用
AD7705中文资料

参数 静态特性 无丢失代码 输出噪声 积分非线性 2 单极性偏移误差 单极性失调漂移 4 双极性零误差 双极性零漂移 4
正满标度误差 5 满标度漂移 4.6 增益误差 7 增益漂移 4,8 双极性负满标度误差 2 双极负满标度漂移 4
模拟输入/基准输入 输入共模抑制(CMR)2 VDD=5V
增益 1 增益=21 增益=41 增益=8→128 VDD=3V 增益=11 增益=21 增益=41 增益=8→128 Normal-Mode50Hz 抑制 2 Normal-Mode60Hz 抑制 2 共模 50Hz 抑制 2 共模 60Hz 抑制 2 绝对/共模 REFIN 电压 2 绝对/共模 AIN 电压 2,9
绝对/共模 AIN 电压 2,9
AIN DC 输入电流 2 AIN 采样电容 2 AIN 差分电压范围 10
AIN 输入采样率,fs
基准电压输入范围 REFIN(+)-REFIN(-)电压
B级1
单位
16 见表 I 和 III ±0.003 见注 3 0.5 见注 3 0.5 0.1 见注 3 0.5 见注 3 0.5 ±0.003 1 0.6
封装选项 N-16 R-16 RU-16
PlasticDIP SOIC TSSOP
N-16 R-16 RU-16
2.1 极限参数
(TA=+25℃,除非另有说明) VDD 对 GND 模拟输入电压对 GND 基准输入电压对 GND 数字输入电压对 GND 数字输出电压对 GND 工作温度范围(商业级,B) 储存温度范围 结温 功耗(塑料 DIP 封装) θJA 热阻 引脚温度(焊接,10 秒) 功耗(塑料 SOIC 封装) θJA 热阻 引脚温度(焊接) 汽相(60 秒) 红外线(15 秒) 功耗(SSOP 封装) θJA 热阻 引脚温度(焊接) 汽相(60 秒) 红外线(15 秒) 抗 ESD
AD7705 及其应用

为此, 我们选用 AD7705 作为模数转换器。AD7705
1 闸位荷重仪的基本原理
在 闸 位 荷 重 仪 中 ,最 基 本 的 测 量 参 数 包 括 开 度 和荷重。闸位编码传感器与闸门启闭机主轴相连, 把闸门的提升高度转换为数字编码后可直接送入微 处 理 器;而 测 量 荷 重 我 们 采 用 压 力 传 感 器 。起 吊 闸 门时,传感器受力,输出电压信号。此信号经 A/D 转换后,由微处理器读入、处理并显示输出,进行 报警控制。图 1所示为闸位荷重仪的原理框图。
在我们的系统中,由于89C51的串行口用于扩展 RS-485 接口。因此,采用另一种方法,即用 89C51的 并行口模拟串行口的时序,完成对 AD7705的操作, 详细的连接方法如图 1 所示。把 89C51 的 P1.7、P1.6、
P1.5、P1.4 分别与 AD7705 的 DIN、SCLK、DOUT、CS
程增益 (具有 1、 2、 4、 8、 16、 32、 64、 128 八种
的 24 位并行输入口完全可以满足不同位数的编码
放 大 倍 数 )、可 编 程 输 出 数 据 更 新 率 及 自 校 准 和 系
器需要 ; 另一片 8255 用作键盘显示接口。
统 校 准 功 能;同 时 具 有 三 线 串 行 接 口 ,与 微 处 理 器
AD7705 是 AD 公司新推出的 16 位 Σ - Δ A/D 转换器。器件包括由缓冲器
图1 闸位荷重仪的原理框图
和 增 益 可 编 程 放 大 器( PGA )组 成 的 前 端来自拟调节电路、Σ - Δ调制器、可编
综 合 考 虑 仪 器 的 功 能 、运 行 环 境 及 经 济 效 益 等
程数字滤波器等部件。能直接将传感器测量到的 2
十六位模数转换器AD7705及其应用

文章编号:167121742(2003)0320281206十六位模数转换器AD7705及其应用敖振浪, 李源鸿, 谭鉴荣(广东省气象技术装备中心,广东广州510080)摘要:AD7705是AD 公司最近推出的十六位模数转换器。
我们主要介绍了它的功能和特点,给出了基于AD7705实际应用的硬件、软件设计方法,以及部分程序源代码,总结了实际应用中必须注意的几个技术问题。
关 键 词:AD7705模数转换器;应用;设计中图分类号:TP335+.1 文献标识码:A1 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 ;等待电流的最大值为8μA ;16脚DIP 、S OIC 和TSS OP 封装。
1.2 片内寄存器操作AD7705包含了8个片内寄存器,这些寄存器通过器件的串行口访问,所有的操作都是通过对寄存器的操作。
第一个是通信寄存器,器件复位后,通信寄存器处于等待状态,通过通信寄存器写操作,决定下一次操作是写还是读,同时决定这一次读操作或写操作发生在那个寄存器上。
也就是说所有的寄存器(包括通信寄存器本身和输出数据寄存器)进行读操作之前,必须首先写通信寄存器,然后才能读选定的寄存器。
下面简单介绍寄存器的功能。
通信寄存器0/DRDY -RS2RS1RS0R/W -ST BY CH1CH0 0/DRDY -:写操作时此位必须为0,读操作时表示数据寄存器数据是否准备好。
AD7705770616位ΣΔAD转换器原理及其应用

AD7705 7706 16位Σ ΔA D转换器原理及其应用AD7705/7706 16位Σ-ΔA/D转换器原理及其应用AD7705/7706是 AD公司新推出的16位Σ-ΔA/D转换器。
器件包括由缓冲器和增益可编程放大器(PGA)组成的前端模拟调节电路,Σ-Δ调制器,可编程数字滤波器等部件。
能直接将传感器测量到的多路微小信号进行A/D转换。
这两种器件还具有高分辨率、宽动态范围、自校准、优良的抗噪声性能以及低电压低功耗等特点,非常适合应用在仪表测量、工业控制等领域。
一.主要特点1. AD7705:两个全差分输入通道的ADC2. AD7706:三个准差分输入通道的ADC3. 16位无丢失代码4. %非线性5. 可编程增益:1、2、4、8、16、32、64、1286. 可编程输出数据更新率7. 可选择输入模拟缓冲器8. 自校准和系统校准9. 三线串行接口,QSPITM,MICROWIRETM和DSP兼容或5V工作电压电压时,最大功耗为1mW13. 等待模式下电源电流为8μA二.功能框图和引脚排列引脚排列如图1所示,功能框图见图2,,AD7706部分引脚(6,7,8,11)与图1 AD7705的引脚AD7705不同,已标注在图中括号内。
图 2 AD7705/7706功能框图三.应用说明AD7705/7706是完整的16位A/D转换器。
外接晶体振荡器、精密基准源和少量去耦电容,即可连续进行A/D转换。
下面对器件的几个重要部分和特性作简要说明。
1.增益可编程放大器和采样频率AD7705包括两个全差分模拟输入通道,AD7706包括三个准差分模拟输入通道。
片内的增益可编程放大器PGA可选择1、2、4、8、16、32、64、128八种增益之一,能将不同摆幅范围的各类输入信号放大到接近A/D转换器的满标度电压再进行A/D转换,这样有利于提高转换质量。
当电源电压为5V,基准电压为时,器件可直接接受从0~+20mV至0~+摆幅范围的单极性信号和从0~±20mV至0~±范围的双极性信号。
[设计]AD转换芯片7705
![[设计]AD转换芯片7705](https://img.taocdn.com/s3/m/49bd190fdc36a32d7375a417866fb84ae45cc360.png)
[设计]AD转换芯片7705AD7705 性价比比较高的 16位 ad 使用比较简单用做单通道的时候基本不怎么需要设置做双通道的时候,发现的点问题,而这几点问题在网上的前辈那也没有特别说明这里提出来供用的着 AD7705 的参考下1. 关于时钟寄存器 AD7705 只有一个时钟寄存器而不是两个。
2.4576MHZ 是标准频率,如果用 4.9152MHZ的时候,要将 CLKDIV位置位也就是 2 分频到 2.4576 具体设置看手册2. 关于数据寄存器 AD7705 也只有一个数据寄存器,一段时间内只能对一路AD输入做数据转换。
数据转换范围单极性 0 -- Vref/Gain 对应 0 -- 0xffff(65535)双极性 -Vref/Gain -- 0 对应 0 -- 0x8000(32768) 0 - Vref/Gain 对应0x8000(32768) -- 0xffff(65535)3. 关于设置寄存器同样也只有一个,要用哪个通道就要先设置这个通道对应的寄存器值4. 校准寄存器虽然有 4对但只是对应外部校准的所以在用自校准,通道切换的时候也要重新自校准一下,校准的时候 DRDY 为高电平,校准完后为低电平校准完后第一次读的数据不怎么准应该读第二次转换出来的数据。
下边是我单通道切换转换的程序:#include <iom16v.h>//SPI 引脚定义 PB 口#define CS_DRDY 3#define CS_CS 4#define CS_MOSI 5#define CS_MISO 6#define CS_SCK 7extern void SpiInit(void); // SPI 初始化 M16extern void InitAD7705(void); // AD7705 初始化extern unsigned int ReadDataCH1(void); //读取转换数据extern unsigned int ReadDataCH2(void); //读取转换数据#include "AD7705.H"//定义位操作#define SET_BIT(x,y) ((x) |= (0x0001 << (y))) #define CLR_BIT(x,y) ((x) &= ~(0x0001 <<(y))) #define CPL_BIT(x,y) ((x) ^= (0x0001 << (y))) #define GET_BIT(x,y) (((x) & (1 << (y))) == 0? 0:1)#define LET_BIT(x,y,z) ((x) = (x) & (~(1 << (y))) | ((z) << (y))) //**********************短延时程序50us**************************// void delay50us(unsigned int t) {unsigned int j;for(;t>0;t--)for(j=0;j<70;j++);}// SPI 初始化 M16void SpiInit(void){//cs 置为输出方可不影响 SPI 总线DDRB|=(1<<CS_MOSI)|(1<<CS_SCK)|(1<<CS_CS);//使能 spi 设置为主机时钟极性为空闲时高平上升沿采样下降沿设置分频系数为128分频SPCR|=(1<<SPE)|(1<<MSTR)|(1<<SPR0);SPSR = 0x00; //setup SPISET_BIT(PORTB,CS_DRDY); //设置 REDY 信号输入端口上拉电阻使能SET_BIT(PORTB,CS_MISO); //设置 MISO 信号输入端口上拉电阻使能 }// SPI 发送接收数据unsigned char TransmitterSpi(unsigned char cData){SPDR = cData;while(!(SPSR&(1<<SPIF)));return SPDR;}//复位 AD7705void ResetAD(void){unsigned char i ;for(i = 10;i>0;i--) //持续DIN高电平写操作,恢复AD7705接口{TransmitterSpi(0xff);}}// AD7705 初始化void InitAD7705(void){CLR_BIT(PORTB,CS_CS); //CS置为输出低电平,使能 AD7705ResetAD() ;TransmitterSpi(0x20); //通讯寄存器 //通道 1,下一个写时钟寄存器自校准TransmitterSpi(0x00); //时钟寄存器 //写时钟寄存器设置 2.459Mhz更新速率为20hzTransmitterSpi(0x10); //通讯寄存器 //通道 1,下一个写设置寄存器TransmitterSpi(0x48); //设置寄存器 //自校准,增益 1,双极 ,缓冲delay50us(100); //延时TransmitterSpi(0x21); //通讯寄存器 //通道 2,下一个写时钟寄存器自校准TransmitterSpi(0x00); //时钟寄存器 //写时钟寄存器设置 2.459Mhz更新速率为20hzTransmitterSpi(0x11); //通讯寄存器 //通道 2,下一个写设置寄存器TransmitterSpi(0x48); //设置寄存器 //自校准,增益 1,双极,缓冲delay50us(100);}//*************************** 按照通道 1 读取****************************//unsigned int ReadDataCH1(void) {unsigned int getData = 0;unsigned char bufR[5];TransmitterSpi(0x10); //通讯寄存器 //通道 1,下一个写设置寄存器TransmitterSpi(0x48); //设置寄存器 //自校准,增益 1,双极 ,缓冲while(PINB&(1<<CS_DRDY)); //等待校准完成 READY 信号变为低电平TransmitterSpi(0x38); //发送 0x38 读取 CH1 数据寄存器while(PINB&(1<<CS_DRDY)); //等待 READY 信号变为低电平bufR[0]=TransmitterSpi(0xff); //转换结果高位bufR[1]=TransmitterSpi(0xff); //转换结果低位getData=(bufR[0]<<8)|bufR[1]; //获得数据 16 位return getData ; //返回数据}//***************************按照通道 2 读取****************************//unsigned int ReadDataCH2(void) {unsigned int getData = 0;unsigned char bufR[5];TransmitterSpi(0x11); //通讯寄存器 //通道 1,下一个写设置寄存器TransmitterSpi(0x48); //设置寄存器 //自校准,增益 1,双极 ,缓冲while(PINB&(1<<CS_DRDY)); //等待校准完成 READY 信号变为低电平TransmitterSpi(0x39); //发送 0x01 读取 AD7705 数据寄存器while(PINB&(1<<CS_DRDY)); //等待 READY 信号变为低电平bufR[0]=TransmitterSpi(0xff); //转换结果高位bufR[1]=TransmitterSpi(0xff); //转换结果低位getData=(bufR[0]<<8)|bufR[1]; //读取数据前 16 位return getData ;}void main(void){unsigned char adi ;unsigned int getData,getData2;SpiInit();InitAD7705();while(1){if(adi++ >=1) adi = 0;if(adi == 0) getData = ReadDataCH1(); if(adi == 1) getData2 = ReadDataCH2(); }}。
AD7705原理及其在电子秤称重系统中的应用

AD7705原理及其在电子秤称重系统中的应用黄昆(攀枝花学院电信学院,四川攀枝花617000)摘要:AD7705是AD公司新推出的一种基于Σ-Δ转换技术16位A/D转换芯片,可用于测量低频模拟信号。
它具有分辨率高、增益可编程、动态范围广、自校准、功耗低等特点,因而非常适合于工业控制、仪表测量等领域。
关键词:Σ-Δ型A/D转换;AD7705;电子秤称重系统在工业控制、智能仪器仪表等许多应用场合需要16位以上的高精度测量,而传统的积分型和逐次比较型A/D转换器实现起来难度较大,且成本很高。
近年来兴起的Σ-Δ转换技术却能以较低的成本获得极高的分辨率。
AD7705是AD公司新推出的一种基于Σ-Δ转换技术16位A/D转换芯片,可用于测量低频模拟信号。
它具有分辨率高、增益可编程、动态范围广、自校准、功耗低等特点,因而非常适合于工业控制、仪表测量等领域。
一、Σ-Δ型A/D转换技术Σ-Δ转换器又称为过采样转换器,具有相对简单的结构。
它由Σ-Δ模拟调制器及数字滤波器构成(图1)。
调制器的结构非常近似于双斜率ADC,包括一个积分器和一个比较器,以及含有一个1位DAC的反馈环。
这个内置的DAC仅仅是一个开关,它将积分器输入切换到一个正或负的参考电压。
图1Σ-Δ转换器的结构窄带信号送入Σ-△ADC后被以非常低的分辨率(1位)进行量化,但采样频率却非常高,如2MHz或更高。
经数字滤波处理后这种过采样被降低到一个比较低的采样率,如8kHz左右,同时ADC的分辨率(即动态范围)被提高到16位或更高。
这种Σ-△技术在模数转换器市场上占据了很重要的位置。
它具有三个主要优势:①低价格、高性能;②集成化的数字滤波;③与DSP技术的兼容性便于实现系统集成。
二、AD7705原理1.内部结构AD7705内部由多路模拟开关(MUX)、缓冲器、可编程增益放大器(PGA)、Σ-Δ调制器、数字滤波器、基准电压输入、时钟电路及串行接口组成(图2)。
AD7705及其校准
AD7705及其校准16位∑-Δ模数转换器AD7705及其校准1、AD7705简介AD7705是AD公司推出的16位∑-Δ(电荷平衡式)A/D转换器。
他包括由缓冲器和增益可编程放大器(PGA)组成的前端模拟调节电路、∑-Δ调制器及可编程数字滤波器等,能直接对来自传感器的微弱信号进行A/D转换。
此外他还具有高分辨率、宽动态范围、自校准,低功耗及优良的抗噪声性能,因此非常适用于仪表测量和工业控制等领域。
1.1基本特性AD7705的基本特性为:16位无丢失代码;0.003%的非线性度;PGA可选择1,2,4,8,16,32,64,128;8种增益;输出数据更新速率可编程;具有自校准和系统校准功能,三线串行接口,可缓冲模拟输入;低功耗。
1.2引脚功能AD7705的引脚排列如图1所示,各引脚的功能说明如下:SCLK:串行时钟输入。
MCLK IN:主时钟输入。
时钟频率为500kHz-5MHz。
MCLK OUT:主时钟输出。
CS反:片选,低电平有效。
RESET反:复位。
该端口为低电平时,可以将控制逻辑、接口逻辑、校准系数以及数字滤波器等复位为上电状态;AIN2(+)、AIN2(-):分别为差分模拟输入通道2的正、负输入端。
AIN1(+)、AIN1(-):分别为差分输入通道1得正、负输入端。
REF IN(+)、REF IN(-):分别为参考电压的正、负端。
为了确保元件的正常工作,REF IN(+)端口的输入信号必须大于REF IN(-)端的输入。
DRDY反:逻辑输出。
低电平表示可以读取新的数据转换;高电平时不可读取数据。
IDN,DOUT:分别为串行数据输入和输出端。
1.3片内寄存器AD7705共有8个片内寄存器,他们是通信寄存器、设置寄存器、时钟寄存器、数据寄存器以及几个测试和校准寄存器。
这些寄存器的任何操作都必须先写通信寄存器,然后才能对其他寄存器进行操作。
(1)通信寄存器通信寄存器是一个8位读/写寄存器,写入通信寄存器的数据决定下一次读/写操作在哪一个寄存器上进行,完成对所选寄存器的读/写操作后,该端口等待下一次写操作,这也是通信寄存器的缺省状态,如果在DIN为高电平时,写操作持续的时间足够长(至少32个串行时钟周期),那么AD7705将返回该缺省状态。
16位模数转换器AD7705在安全帽质量检测中的应用
放在 数据 暂存器 中, 位单 片机 L9 S 5 5通 过 上 T 0 8l
A T90 8 5 S 5l
图 1 A 70 D 75与 A 9 S 5 5单 片 机 的 接 口 电路 T 08 1
在 一 般 的 简 单 系 统 中 , 常 只 有 l片 常
S I 口将 A 70 P接 D 75内部数据暂 存器 中的 l 6位数 据提 取出来然后计算 出安 全帽所受最大 冲力值 ,
A 75或其 它共 用 口线 的器件 , C 通 常连 接 D70 故 S
低 电平 , 节省 了单 片机 的输 出输 入控 制 线 , 这样
关键词 : AD 7 5 数转换器 ; 增益 ; 接 口 70 模
中 图分 类 号 : TP 3 35 文献 标 识 码 : A
安全 帽在建 筑 施 工 中是 保 护施 工 人 员 人 身 安全一 项重要 保证 , 因此安全 帽质量 的检 测也越
S CLK
S K CL
D0UT
(B7 P )
介绍 A 7 0 D 7 5与 单 片机 的连接 方法 , 因为它
采用 S I P 同步 串行 接 口… , 因此使 得与单 片机 的 连接 方法 必须按 照 S I P 同步 串行 接 口连接规 则 . AD 75与 A 9 S 55单 片机接 口电路见 图 1 70 T 081 .
收 稿 日期 : 2 0 —0 0 5 4—2 6
否被更新 , 硬件D D 引脚的输 出与通信寄存器 RY
D DY 同 , R Y引脚 一 旦 变 成 低 电 平 , 明 R 位 D D 表 数据 寄存 器 数 据 已更 新 , 以读 取 . 以D D 可 所 R Y
AD7705 及其应用
AD7705/06的PGA可通过指令设定,对不同幅度的输入信号实现1、2、4、8、16、32、64和128倍的放大,因此AD7705/06芯片既可接受从传感器送来的低电平输入信号,亦可接受高电平(10V)信号,它运用Σ―Δ技术实现16位无误码性能;它的输出速度同样可由指令设定,范围由20Hz到500Hz;它能够通过指令设定对零点和满程进行校正;AD7705/06与微处理器的数据传送通过串行方式进行,采用了节省端口线的通讯方式,最少只占用控制机的两条端口线。
3.AD7705/06的基本连接及其与微处理器接口电路AD7705/06的基本连接AD7705/06的基本连接如图2所示,其中AD780/REF192提供+2.5V高精度基准电压。
AD7705由于只有2个通道,所以它可以进行两种模拟量的转换,而AD7706具有3个通道,所以它可以进行三种模拟量的转换,笔者在设计压力变送器时就充分运用了`该芯片的功能,AD7706的基本连接与图2相似。
AD7705/06与单片机的接口电路AD7705/06与微处理器的接口非常方便,在对它的操作过程中,涉及到接口的引脚有CS、SCLK、DOUT、DIN和DRDY,它与微处理器的接口有三线、四线、五线及多线方式。
在三线方式下,通常使用DOUT、DIN及SCLK引脚进行控制,其中DOUT和DIN与微处理器的串行口相连,用于数据的输出和输入,SCLK用于输入串行时钟脉冲,CS始终为低电平。
在四线方式下,CS引脚也可以由微处理器的某一端口线控制。
在五线方式下,DRDY 引脚也可以由微处理器的某条端口线控制。
在多线控制方式下,所有的接口引脚都由微处理器来控制。
图3是笔者使用INTEL8031对AD7706进行控制的简化电路图。
MOV SBUF,AJNB TI,﹩;接收完毕,TI复位CLR TIMOV A,#0CH;设置CLKMOV SBUF,AJNB TI,CLR TIMOV A,#010H;对CMR进行写操作,下一操作选定STR MOV SBUF,AJNB TI,﹩CLR TIMOV A,#40H;设置STRMOV SBUF,AJNB TI,﹩CLR TIRET程序2输入字节程序(判断DRDY引脚):INB1:CLR CJB P1.1,INB1;判断DRDY引脚电平CLR P1.0;DRDY为0,有效数据,进行读数据操作MOV A,#38H;对CMR进行写操作,下一操作选定DOR MOV SBUF,AMOV A,SBUF;从AD7706中读入转换数据。
关于AD7705的技术文档
关于AD7705模块的技术文档一、模块描述1、简介:D7705/7706 是应用于低频测量的2/3 通道的模拟前端。
该器件可以接受直接来自传感器的低电平的输入信号,然后产生串行的数字输出。
利用Σ-∆转换技术实现了16 位无丢失代码性能。
选定的输入信号被送到一个基于模拟调制器的增益可编程专用前端。
片内数字滤波器处理调制器的输出信号。
通过片内控制寄存器可调节滤波器的截止点和输出更新速率,从而对数字滤波器的第一个陷波进行编程。
2、产品性能参数及特点:�AD7705:2 个全差分输入通道的ADC�AD7706:3 个伪差分输入通道的ADC16位无丢失代码0.003%非线性�可编程增益前端增益:1~128�三线串行接口SPITM、QSPITM、MICROWIRETM和DSP 兼容�有对模拟输入缓冲的能力�2.7~3.3V或4.75~5.25V工作电压� 3V电压时,最大功耗为1mW�等待电流的最大值为8μA�16脚DIP、SOIC和TSSOP封3、产品应用场合:AD7705/7706 是用于智能系统、微控制器系统和基于DSP 系统的理想产品。
其串行接口可配置为三线接口。
增益值、信号极性以及更新速率的选择可用串行输入口由软件来配置。
该器件还包括自校准和系统校准选项,以消除器件本身或系统的增益和偏移误差。
二、模块原理图三、引脚功能四、校准1、自校准过向设置寄存器的MD1和MD0写入相应值(0,1),器件开始自校准。
在单极性输入信号范围内,用来确定校准系数的零标度点是用差分输入对的输入端在器件内部短路(即,对于AD7705,AIN(+)=AIN(-)=内部偏置电压;对于AD7706,AIN=COMMON=内部偏置电压)。
增益可编程放大器(PGA)设置为用于零标度校准转换时选定的增益(由通信寄存器内的G1和G0位设置)。
满标度标准转换是在一个内部产生的VREF电压和选定增益的条件下完成的。
校准持续时间是6×1/输出速率。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
文章编号:167121742(2003)0320281206十六位模数转换器AD7705及其应用敖振浪, 李源鸿, 谭鉴荣(广东省气象技术装备中心,广东广州510080)摘要:AD7705是AD 公司最近推出的十六位模数转换器。
我们主要介绍了它的功能和特点,给出了基于AD7705实际应用的硬件、软件设计方法,以及部分程序源代码,总结了实际应用中必须注意的几个技术问题。
关 键 词:AD7705模数转换器;应用;设计中图分类号:TP335+.1 文献标识码:A1 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 ;等待电流的最大值为8μA ;16脚DIP 、S OIC 和TSS OP 封装。
1.2 片内寄存器操作AD7705包含了8个片内寄存器,这些寄存器通过器件的串行口访问,所有的操作都是通过对寄存器的操作。
第一个是通信寄存器,器件复位后,通信寄存器处于等待状态,通过通信寄存器写操作,决定下一次操作是写还是读,同时决定这一次读操作或写操作发生在那个寄存器上。
也就是说所有的寄存器(包括通信寄存器本身和输出数据寄存器)进行读操作之前,必须首先写通信寄存器,然后才能读选定的寄存器。
下面简单介绍寄存器的功能。
通信寄存器0/DRDY -RS2RS1RS0R/W -ST BY CH1CH0 0/DRDY -:写操作时此位必须为0,读操作时表示数据寄存器数据是否准备好。
RS2,RS1,RS0:寄存器选择位。
R/W -:读写选择。
“0”表示下一次是写操作。
“1”表示下一次是读操作。
ST BY:等待模式,写入“0”器件处于正常工作模式。
CH1,CH0:通道选择,00选择通道1,01选择通道2。
设置寄存器M D1M D0G 2G 1G 0B -/U BUF FSY N M D1,M D0:工作模式选择位,00为正常工作模式,01为自校准,10为零刻度系统校准,11为满刻度系统校准。
收稿日期:2002211229;修订日期:2003202218第18卷第3期2003年9月成 都 信 息 工 程 学 院 学 报JOURNA L OF CHE NG DU UNIVERSITY OF INFORM ATION TECH NO LOGY V ol.18N o.3Sep.2003 电子发烧友 电子技术论坛 G 2,G 1,G 0:增益选择位,00~08分别对应增益值1~128。
B -/U :单极性/双极性择位,“0”表示双极性。
BUF :输入缓冲控制位,“0”表示无缓冲。
FSY N :滤波器同步。
时钟寄存器ZERO ZERO ZERO C LK DIS C LK DI V C LK FS1FS0 ZERO :必须为0,否则,会导致器件的非指定操作。
C LK DIS :主时钟禁止位,“1”禁止时钟在MC LK OUT 引脚输出。
C LK DI V :时钟分频位。
C LK:时钟位。
时钟频率为2.4576MH z 时,该位设置为“1”,时钟频率为1MH z 时,该位设置为“0”。
FS1,FS0:滤波器选择位,与C LK 一起决定器件的输出更新率。
如表1。
表1 FS1、FS0与C LK 决定的器件输出更新率C LK *FS1FS0输出更新率00020H z 00125H z 010100H z 011200H z 10050H z 10160H z 110250H z 111500H z注:假定MC LK IN 脚的时钟频率正确,C LK DIV 位的设置也是适当的。
数据寄存器:这是一个十六位只读寄存器,它包含了最新的转换结果。
测试寄存器:用于测试期间器件,用户一般不用。
零标度校准寄存器和满标度校准寄存器:都是24位,用户一般不用。
2 应用设计 AD7705主要在单片机小系统中应用。
本应用实例是一个低频数据采集电路,采用了89C51单片机,下面详细介绍电路设计和软件设计方法。
2.1 与单片机的接口首先介绍AD7705与单片机的连接方法,因为它采用串行接口,使得与大多数单片机很容易连接。
AD7705与8xC51单片机的接口电路如图1所示。
图1 AD7705与8XC51单片机的接口电路 在一般的简单系统中,常常只有1片AD7705或其它共用口线的器件,故CS -通常接低电平,节省了单片机的输出输入控制线,这样就可以配置成三线连接方式。
三线连接方式下决定数据寄存器是否被更新也即是确定数282成 都 信 息 工 程 学 院 学 报 第18卷据寄存器是否可以被读,只有通过监控通信寄存器DRDY -位来判断,这种做法的代价是时间开销较多,它并不适用于时效性要求比较强的系统。
比较好的办法是监控硬件DRDY -引脚的状态,以决定数据寄存器是否被更新,硬件DRDY -引脚的输出与通信寄存器DRDY -位同步,DRDY -引脚一旦变成低电平,表明数据寄存器数据已经更新,可以读取。
所以DRDY -输出引脚接至CPU 的I NT0或I NT1就可以实现中断或者查询方式的监控。
但不管是查询方式还是中断方式,都需要增加一根数据线。
在本设计中采用了硬件DRDY -引脚查询的方法。
串行口包含5个信号,即SC LK 、DI N 、DOUT 、DRDY -和CS -,通常直接连接到8xC51对应的引脚P3.0、P3.1、P3.2、P3.3,DI N 线用来向片内寄存器传输数据,而DOUT 线用来访问寄存器里的数据。
SC LK 是串行时钟输入,所有的数据传输都和SC LK 信号有关,对于与单片机的接口,为确保芯片数据转换可靠,在两次相邻的数据传输之间,应将本SC LK 置为高电平。
DRDY -线作为状态信号,表示数据什么时候准备好以便从寄存器读取数据。
数据寄存器中有新的数据字的时候,DRDY -脚变为低电平。
如果在数据寄存器数据更新之前,若DRDY -脚变为高电平,提示这时候不要读数据,避免在数据寄存器更新的过程中读出不可靠的数据。
AD770的读写操作严格按照时序进行,图2给出AD7705读和写时序。
图2 AD7705读、写时序2.2 实际应用电路设计我们设计的是一个气象探测仪器的实际应用电路,专门用于温度和湿度的模数转换。
因为实时性要求不太高,因此数据读取采用了查询方法,这种方法对一般的应用是可以满足要求的。
在图3电路中,C LCK 、DI N 、DOUT 和DRDY -引脚直接连接80C52的P1.0-P1.3引脚。
由CC3和RC5组成的复位电路,通电时,输入引脚RESET -处于低电平,复位所有的逻辑、数据滤波器和模拟调试器,将所有的片内寄存器设置到其默认状态。
使用芯片REF195产生+5V 基准电压供给AD7705作为参考电压,同时作为温度传感器的激励电流源。
注意基准电压输出端应该并联10μ和1000p 去耦电容CC4和CC8,因为微小的噪声电平都会影响转换精度。
实际上,由于AD7705的功耗很小(最大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。
注意输入信号382第3期 敖振浪等:十六位模数转换器AD7705及其应用幅度与增益关系,通道增益太大放大结果会超过基准电压+5V ,造成转换结果错误。
AD7705内部只有一套模数转换电路,通道1和通道2的选择通过软件设置进行切换,实际应用中往往需要对不同通道采取不同的增益,动态地对AD7705进行增益、通道设置,很灵活方便地达到这一目的。
图3 气象探测仪电路图 2.3 软件设计使用AD7705之前,首先要对所有寄存器进行设置,才能保证器件正常工作。
在实际使用中,首先选择模拟输入模式(单极性还是双极性)、是否需要缓冲、时钟分频和输出更新速率;根据外部输入信号的幅度来决定设置器件的增益值,本实例里通道1和通道2输入信号都是单极性,但幅度不同,所以循环选择通道,选择相应参数,应用中选择输入通道单极性、初始增益等于8、数据更新速率为250H z 。
根据实际确定所有参数以后,对AD7705芯片进行设置,参数设置方法比较独特,在设置参数之前,首先对通信寄存器进行一次写操作,来决定下一个是什么样的寄存器和什么样的操作内容,再进行下一步的参数写入,读者可参考下面的AD7705初始化程序InitADC ()。
模拟输入电路前端加入了一个简单的R 、C 滤波器,会在输入电压中引起增益误差,必须对器件进行校准,因为每次系统校准可以对系统的增益、偏移误差、以及器件本身的内部误差进行补偿,所以参数设置完毕以后,应该对器件进行一次系统校准,写入设置寄存器位M D1和M D0分别为0和1完成系统自校准,自校准后自动返回正常模数转换工作模式。
实际中各路输入信号幅度往往不完全相同,因此每转换一路就需要一次参数设置和系统校准。
还需注意的是,在非缓冲模式下使用时,系统校准还可以消除模拟输入端由电源阻抗引起的任何误差。
下面是用C51语言编写的初始化程序:v oid InitADC (v oid ){unsigned char i ;ADC -C LK=1;ADC -DI N =1;for (i =0;i <40;i ++){ADC -C LK=0;ADC -C LK=1;} //防止接口迷失,通信寄存器返回到等待写状态WriteT oReg -ADC -Init (0x20); //通道1,下一个写时钟寄存器WriteT oReg -ADC -Init (0x06); //写时钟寄存器设置更新速率为250H zWriteT oReg -ADC -Init (0x10); //通道1,下一个写设置寄存器WriteT oReg -ADC -Init (0x5c ); //写设置寄存器,设置成单极性、无缓冲、增益为8、滤波器工作、自校准Delay -1ms (50); //延时}482成 都 信 息 工 程 学 院 学 报 第18卷unsigned int WriteT oReg -ADC (unsigned int bytew ord ){unsigned int AD16bit ,T oken ; unsigned char i ; ADC -C LK=1;ADC -CS =0;/*开始*/ T oken =0x80;AD16bit =bytew ord ; for (i =0;i <8;i ++) {if (AD16bit &T oken )ADC -DI N =1;/*输入数据位*/ else ADC -DI N =0; ADC -C LK=1;ADC -C LK=0;ADC -C LK=1; T oken =T oken >>1; } ADC -C LK=1;ADC -DI N =1;/*结束*/ return (TRUE );}初始化以后,CPU 就可以从模数转换器中读数据,读取数据之前必须确定数据寄存器的状态,有两种不同的方式查询,第一种是查询DRDY -引脚,如果DRDY -引脚处于低电平,这表示数据已经转换完成,可以读取。