16位AD转换芯片AD770506

合集下载

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 作为模数转换器。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

AD7705770616位ΣΔAD转换器原理及其应用

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

[设计]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(); }}。

16位模数转换器AD7705在安全帽质量检测中的应用

16位模数转换器AD7705在安全帽质量检测中的应用
A 75的内部先 进行 放 大 , 后通 过 模 数转 换 D70 然 电路转换 成能被 单 片机识 别 的 l 6位数 据 值并 存
放在 数据 暂存器 中, 位单 片机 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中文资料_数据手册_参数
片上寄存器AD7705/AD7706包含8个片上寄存器,可以通过部件的串口访问。第一个是通信寄存器,它控制信道选择,决定下一个操作 是读操作还是写操作,还决定下一个读操作或写操作访问哪个寄存器。对部件的所有通信都必须从通信寄存器的写操作开始。开机或 复位后,设备期望对其通信寄存器进行写操作。写入到该寄存器的数据决定部件的下一个操作是读操作还是写操作,还决定发生该读 操作或写操作的寄存器。因此,对部分上任何其他寄存器的写访问都是从对通信寄存器的写操作开始,然后是对所选寄存器的写操 作。从部分上的任何其他寄存器(包括通信寄存器本身和输出数据寄存器)开始的读操作从对通信寄存器的写操作开始,然后从所选寄 存器开始的读操作。通信寄存器还控制备用模式和通道的选择,并且还可以通过从通信寄存器读取数据来获得drdy状态。第二寄存器 是aSetup寄存器,它决定校准模式、增益设置、双极/单极操作和缓冲模式。第三个寄存器标记为时钟寄存器,并包含筛选器选择位和 时钟控制位。第四个寄存器是数据寄存器,从该寄存器可以访问部件的输出数据。最后的寄存器是存储通道校准数据的校准寄存器。 下面几节将更详细地讨论寄存器。通信寄存器(RS2, RS1, RS0 = 0,0,0)通信寄存器是一个8位寄存器,可以从中读取数据,也可以从中写 入数据。对部件的所有通信都必须从通信寄存器的写操作开始。写入通信登记程序的数据决定下一个操作是读操作还是写操作,以及 该操作发生在哪个寄存器。对所选寄存器的后续读或写操作完成后,接口返回到它期望对通信寄存器执行写操作的位置。这是接口的 默认状态,在启动或设置之后,AD7705/AD7706处于此默认状态,等待通信寄存器的写操作。在接口序列丢失的情况下,如果使用 DIN high执行足够长时间的写操作(至少包含32个串行时钟周期),AD7705将返回到这个默认状态。表V概述了通信寄存器的位名称。表 V.通信寄存器0/DRDY (0)RS2 (0)RS1 (0)RS0 (0)R/W (0)STBY (0)CH0 (0)如果将“1”写入该位,则该部分将不计时到寄存器中的后续 位。它将保持在这个位的位置,直到一个“0”被写到这个位。一旦将“0”写入该位,接下来的7位将加载到通信寄存器。对于读取操 作,此位提供来自部分的drdy标志的状态。该位的状态与drdy输出引脚相同。RS2-RS0Register选择位。这三个位选择下一个读或写操作 发生在8个片上寄存器中的哪一个,如表VI所示,同时选择寄存器大小。当对受连接寄存器的读或写操作完成时,该部分返回到它正 在等待对CommunicationsRegister的写操作的位置。它不处于将继续访问寄存器的状态。

关于AD7705的技术文档

关于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/输出速率。

【安富莱】AD7705双通道16位ADC模块_电路原理图

【安富莱】AD7705双通道16位ADC模块_电路原理图

[1]
AIN1-
U1
取消R7可以做差分输入
7 8 6 11
104/50
AIN1+ AIN1AIN2+ AIN2REFIN+
[1]
AIN2+
R2 10K
AD_DRDY [1]
R10 10K
0 R7
GND
10K R5
模拟电压输入范围: 0-5V
C4
可以去掉 R5 提高输入阻抗
[1] REF_IN+
[1] REF_IN-
9 10
4 CS 1 SCLK 14 DIN 13 DOUT 12 DRDY 5 RESET
AD_CS[1] AD_SCLK[1] AD_MOSI [1] AD_MISO [1]
C10 104/50
106/10
C1
取消R5可以做差分输入
TM7705
0 R9
GND
X1 4.9152M
R1 1M
[1]
AIN2-
1 3 5 7
CN2 GND RESET SCK MISO
CN1 VCC CS MOSI DRDY 2 4 6 8
AD_CS [1] CS AD_MOSI [1] DIN AD_DRDY [1] DRDY
[1] [1] [1] [1]
AIN1+ AIN1AIN2+ AIN2-
1 2 3 4
8P(2X4P)/2.54MM
由于缺省贴装了R7和R9,因此AIN1-和AIN2-实际上就是信号地
GND

【安富莱】AD7705双通道16位ADC模块_原理图
[1] AIN1+
R3 10K 104/50 安装定位孔(直径2mm) TM7705内部带可编程放大器 倍率:1、2、4、8、16、32、64、128
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.引言
在智能仪器仪表的应用中,由于传统的传感器信号是模拟信号,所以对于智能化的仪器,肯定需要A/D转换器以实现单片机的控制。

在许多应用场合需要16位以上的高精度测量,而传统的积分型和逐次比较型A/D实现起来难度较大,且成本很高。

近年来兴起的Σ―ΔA/D转换技术却能以较低的成本获取极高的分辨率。

AD公司的AD7705/06以及AD7707为比较典型的一种16位A/D转换芯片。

2. AD7705/06 简介
AD7705/06是美国AD公司近期推出的一款新型A/D芯片,其总体结构如图1所示。

AD7705/06芯片是带有自校正功能的Σ-Δ于A/D转换器。

其内部由多路模拟开关、缓冲器、可编程增益放大器(PGA)、Σ-Δ调制器、数字滤波器、基准电压输入、时钟电路及串行接口组成。

其中串行接口包括寄存器组,它由通讯寄存器、设置寄存器、时钟寄存器、数据输出寄存器、零点校正寄存器和满程校正寄存器等组成。

该芯片还包括2通道差分输入(AD7705)和3种伪差分通道输入(AD7706)。

AD7705/06的PGA可通过指令设定,对不同幅度的输入信号实现1、2、4、8、16、32、64和128倍的放大,因此AD7705/06芯片既可接受从传感器送来的低电平输入信号,亦可接受高电平(10V)信号,它运用Σ―Δ技术实现16位无误码性能;它的输出速度同样可由指令设定,范围由 20Hz到500Hz;它能够通过指令设定对零点和满程进行校正;AD7705/06与微处理器的数据传送通过串行方式进行,采用了节省端口线的通讯方式,最少只占用控制机的两条端口线。

3. AD7705/06的基本连接及其与微处理器接口电路
3.1 AD7705/06的基本连接
AD7705/06的基本连接如图2所示,其中AD780/REF192提供+2.5V高精度基准电压。

AD7705由于只有2个通道,所以它可以进行两种模拟量的转换,而AD7706具有3个通道,所以它可以进行三种模拟量的转换,笔者在设计压力变送器时就充分运用了`该芯片的功能,AD7706的基本连接与图2相似。

3.2 AD7705/06与单片机的接口电路
AD7705/06与微处理器的接口非常方便,在对它的操作过程中,涉及到接口的引脚有CS、SCLK、DOUT、DIN和DRDY,它与微处理器的接口有三线、四线、五线及多线方式。

在三线方式下,通常使用DOUT、DIN及SCLK引脚进行控制,其中DOUT和DIN与微处理器的串行口相连,用于数据的输出和输入,SCLK用于输入串行时钟脉冲,CS始终为低电平。

在四线方式下,CS引脚也可以由微处理器的某一端口线控制。

在五线方式下,DRDY引脚也可以由微处理器的某条端口线控制。

在多线控制方式下,所有的接口引脚都由微处理器来控制。

图3是笔者使用INTEL 8031对AD7706进行控制的简化电路图。

AD7706的输出信号直接接到8031的RXD(P3.0)端,而8031的TXD(P3.1)端则为AD7706提供时钟信号,可见在这样的连接方式下,A/D转换器的时钟是由8031的TXD引脚提供的。

单片机利用串行口与AD7706进行通信,将串行口设定为工作方式0,即同步移位寄存器方式。

此外,单片机还通过P1.0引脚来控制CS,通过P1.1引脚来判断DRDY。

这样,在多芯片系统中,我们首先应选中芯片,系统就得先清P1.1口线。

接收数据时,首先要判断P1.0的引脚电平,若为低电平,则表明已有有效的转换数据在芯片的数据输出寄存器中,这样,单片机置位REN=1,此时,接收数据开始,当接收到8位数据时,中断标志位 R1置位,一次串行接收结束,单片机自动停止发送移位脉冲,该8位数据从串行口缓冲器读入内存,并使用软件清除RI 标志,单片机又开始发送移位脉冲,直到又收到8位数据,则另一次串行接收结束。

这样,这次的8位数据与刚才接收的高8位数据组合成为16位数据,即一次 A/D 转换的结果。

这种接口方法直接利用了单片机本身的硬件资源,从而简化了电路的设计。

程序1 AD7706的初始化程序
BEGIN:
CLR A
MOV A ,#010H;设置串行工作方式0
MOV SCON ,A
CLR P1.0;选中芯片AD7706
MOV A ,#20H;对CMR进行写操作,下一操作选定CKR
MOV SBUF ,A
JNB TI ,﹩;接收完毕,TI复位
CLR TI
MOV A ,#0CH;设置CLK
MOV SBUF ,A
JNB TI ,
CLR TI
MOV A ,#010H;对CMR进行写操作,下一操作选定STR MOV SBUF ,A
JNB TI ,﹩
CLR TI
MOV A ,#40H;设置STR
MOV SBUF ,A
JNB TI ,﹩
CLR TI
RET
程序2 输入字节程序(判断DRDY引脚):
INB1: CLR C
JB P1.1 ,INB1;判断DRDY引脚电平
CLR P1.0;DRDY为0,有效数据,进行读数据操作
MOV A ,#38H;对CMR进行写操作,下一操作选定DOR MOV SBUF ,A
MOV A ,SBUF;从AD7706中读入转换数据
MOV R3 ,A;高8位存入R3中
JNB TI ,﹩
CLR TI
MOV A ,SBUF;从AD7706中读入转换数据
MOV R4 ,A;低8位存入R4中
JNB TI ,﹩
CLR TI
RET
程序3 输入字节程序(判断CMR的最高位):
INB2: CLR P1.0;对AD7706进行操作
MOV A ,#08H;对CMR进行写操作,下一操作选定CMR
MOV SBUF,A
MOV SBUF ,A;读AD7706的CMR
ANL A ,#10000000B ;判断DRDY位,若为0,则有有效数据
JNZ INB2;等待
MOV A ,#38H;对CMR进行写操作,下一操作选定DOR
MOV SBUF ,A
MOV A ,SBUF
MOV R3 ,A
JNB TI ,﹩
CLR TI
MOV A ,SBUF
MOV R4 ,A
JNB TI ,﹩
RET
4. 实用程序举例
下面给8031对AD7706进行控制的程序,包括初始化程序(见程序清单)。

对转换器芯片设置为:增益为1,无滤波器同步,双极输入模式和缓冲器关闭方式。

5. 结语
笔者在设计智能型压力变送器时,采用了图3的接线方式,AD7706的三通道分别接收来自压力(差压)传感器、温度传感器和静压传感器的信号,这样,可以对压力(差压)进行补偿,,从而消除温度和静压所带来的影响,并应用以上程序进行初始化及读转换数据,使用后效果令人满意。

相关文档
最新文档