ADS7824是美国BB公司推出的种低功耗4通道12位并行/串行模数转换芯片。该芯片是一种开关电容式逐次逼近模数转换芯片,其内部自带采样保持器(SHA)、时钟源、+2.5V参考电压及与微处理器的并行/串行接口。同时,它还可以在连续转换模式下对外部4通道模拟输入信号进行顺序转换。与其它ADC相比,ADS6724具有非常低的功耗和丰富的片上资源,且内部结构紧凑,集成度高,工作性能好,可在-40~80℃范围内正常工作,非常适用于仪器仪表及便携式探测器使用。
ADS7824的基本特点和主要参数如下:
*内部带有采样保持器(SHA),采用12位逐次逼这(SAR)模/数转换方式。
*采样频率为40kHz,最大采样与转换时间为25μs。
*数据可并行或串行输出,并带有三态输出缓冲电路,可直接与各种微处理器相连。
*积分非线性(INL)最大为±0.5LSB,无漏码的差分非线性(DNL)最大为12位。
*具有连续转换模式。
*转换无失码。
*典型信噪比(SNR)为73dB。
*孔径延迟(aperture delay)时间为40ns。
*内带+2.5V基准电压,也可选用外部+2.5V基准电压。
*差分电压输入范围为±10V,同时带有四通道多路选择器。
*采用单+5V电源供电。正常工作情况下的功耗为50mW;关闭模式下的功耗仅为50μW。
*采用28脚PDIP或SOIC封装形式。
2 内部结构及引脚说明
2.1 结构原理
图1所示为ADS7824的内部结构框图,它采用的是具有固有采样/保持功能的电容式DAC(CDAC)转换方式,CDAC是根据电荷再分配的原理产生模拟输出电压的。它包括一列有N个按照二进制加权排列的电容,在采样阶段,阵列电容的公共端(所有电容连接的公共点)接地,所有自由端连接到输入信号;采样后,公共端与地断开,自由端与输入信号断开,这样可在电容阵列上有效的获得与输入电压成正比的电荷量;然后,所有电容的自由端接地以驱动公共端至一个负压-VIN。作为二进制搜索算法的第一步,MSB电容的自由端与地断开,并连接到VREF可驱动公共端电压向正端移动VREF/2,若此时该电压小于地电压,比较器输出为逻辑1,则预示MSB大于VREF/2,否则,比较器输出为逻辑0,此时预示着MSB小于VREF/2,接下来,下一个最大的电容与地断开,并连接到VREF,通过比较器确定下一位的数值,如此循环直到判定出全部数字位。
2.2 引脚说明
ADS7824具有28个引脚,各引脚定义如下:
AGND1(1),AGND2(8):模拟地。
AIN0~AIN3(2,3,4,5):模拟信号输入通道0~3,其差分输入电压范围为±10V。
CAP(6):内部参考电压缓冲输出,通过2.2μF钽电容接地,可为CDAC在整个转换周期内提供适宜的开关电流。
REF(7):参考电压输入/输出端。
D7~D5(9,10,11):当PAR/SER端为高时,为8位并行数据高三位输出,为低时呈高阻态。
D4(12):当PAR/SER端为高时,该端输出8位并行数据bit 4,PAR/SER端为低时,该脚为串行时钟选择端。具体选择方式是:当该端输入高电平时,串行转换采用外部串行时钟;为低电平时,串行转换采用内部时钟。
D3(13):当PAR/SER端为高时,该端输出8位并行数据bit3,PAR/SER为低时,该端输出为同步信号SYN,当系统使用多个ADS7824S时,使用该引脚可实现各个芯片数据输出的同步。
DGND(14):数字地。
D1(16):当PAR/SER端为高时,该端输出为8位并行数据bit1,PAR/SER为低时,该端为串行数据输出。
D0(17):当PAR/SER为高时,该端输出为8位并行数据bit0,PAR/SER为低时,该端为串行输出标记端。
A1,A2(18,19):输入信号通道选择端。
PAR/SER(20):并行/串行输出选择端。
BYTE(21):字节选择控制端。在读取期间,若BYTE为0,则高8位有效;若为1,则低4位有效。
R/C(22):读取/转换控制端。
CS(23):片选端。
BUSY(24):输出状态端。转换开始时,BUSY为低电平;转换完成后,该端输出为高电平。
CONTC(25):连续转换模式控制端,CONTC为5V时,ADS7824工作在连续转换模式,此时芯片可对4个输入通道信号进行连续采集和转换。
PWRD(26):电源关闭模式端,高电平有效。关闭模式时,系统将切断芯片内部模拟和数字电路的电源,以使芯片处于低功耗状态。
Vs1,Vs2(27,28):+5V电源输入端。
3 与8051单片机的接口电路
ADS7824内含三态输出缓冲电路和串行/并行输出方式,且与CPU的接口非常灵活。下面分别介绍并行、串行输出方式下,ADS7824与8051单片机的接口方法。
3.1 并行输出方式
ADS7824与8051单片机的并行接口电路如图2所示。
图中,单片机采用查询方式通过P1.0口不断查询BUSY状态,BUSY为1时,表示ADS7824完成一次转换。单片机通常通过两次读取操作来将数据读入,当R/C=1,CS=0,BYTE=0时,读取高8位;当R/C=1,CS=0,BYTE=1时,读取低4位。数据读取完成后,单片机将R/C和CS端置低40ns~12μs以启动下一次转换,此时BUSY输出为低电平。图3为并行方式下数据转换时序图。图2中,由于ADS7824的CS端与8051的锁存地址A0相连,BYTE与8031的锁存地址A6相连,R/C与8031的锁存地址A7相连,因此,启动ADS7824的端口地址为0XXXXXX0B,读/写ADS7824的程序段如下:
MOV DPTR,#0000H //送端口地址0000H入DPTR
MOVX @DPTR,A ;启动ADS7824
SETB P1.0
LOOP:JB P1.0,$ ;检测P1.0
MOV DPTR,#0001H ;读取高8位
MOVX A,@DPTR
MOV 33H,A
MOV DPTR,#0003H ;读取低4位
MOV A,@DPTR
ANL A,#0FH
MOV 32H,A
3.2 串行输出方式
ADS7824与8051的串行接口电路如图4所示。图中,ADS7824采用外部时钟,其时钟输入由8051的串行口TXD提供,数据输入输出端与串行口RXD相连。由8051的P1口完成转换与读取控制。图5为串行输出上ADS7824的时序图。由于单片机串口在方式0(即同步移位寄存器状态下)工作时,波特率固定为fosc/12,数据由RXD端输入输出且低位在先,因此必须将读入的12Bit数据逆序排列,才能得到正确的ADS7824的输出。系统的同步移位时钟由TXD端。其串口读/写程序如下:
MOV SCON,#11H ;初始化串口
MOV IE,#10H
SETB P1.2
Loop:MOV R0,#08H
CPL P1.2 ;开启转换
JB P1.0,$ ;查询
CPL P1.2 ;读取高八位
Read:JB RI,$
CLR RI
MOV A,SBUF
Invert0:RLC A 读入数据侄置
DJNZ R0,Invert0
MOV 32H,A
MOV R0,#08H
SETB P1.1 ;读取低四位
JB RI,$
MOV A,SBUF
Invert1:RLC A ;读入数据倒置
DJNZ R0,Invert1
ANL A,#FFH
MOV 33H,A