首页 理论教育A/D转换器ADS1216的应用及效果

A/D转换器ADS1216的应用及效果

【摘要】:在ADS1216中,如果通道1被选择作为正差分输入通道,任何其他通道可选为负差分输入通道。当使用ADS1216的内部电压基准时,可用做IDAC的参考电压。ADS1216的内部校准称自校准,通过3个命令实现。时钟发生器ADS1216使用的时钟源可由晶体、陶瓷谐振器、振荡器或外部时钟提供。数字I/O接口ADS1216有8个专用的数字I/O引脚。存储器ADS1216使用两种类型的存储器:寄存器和RAM。ADS1216支持8个模拟输入的任意组合。

ADS1216是一种精密的、宽动态范围的Δ-ΣA/D转换器,具有24位分辨率,可工作在2.7~5.25V电压下。该Δ-ΣA/D转换器具有24位无遗漏码性能和22位有效分辨率,8个输入通道多路复用。当直接与传感器和低电压信号连接时,内部缓冲器可选择提供非常高的输入阻抗并提供了可熔电流源,允许检测传感器的开路或短路。一个8位数/模(D/A)转换器提供FSR(全范围)内的50%的偏差校正。

可编程增益放大器(PGA)提供1~128的可选增益,当增益为128时,有效分辨率为19位。A/D转换通过二阶Δ-Σ和可编程Sinc滤波器完成,参考电压为差分输入,片内电流DAC通过外部电阻设定最大独立工作电流。

串行接口与SPI兼容,8位数字I/O口可用于输出或输入。ADS1216主要用于工业过程控制、便携式仪器、智能变送器、压力传感器、热电偶热电阻信号的测量,其特点如下:

·24位无遗漏码。

·0.0015%积分非线性误差。

·22位有效分辨率(PGA=1),或19位有效分辨率(PGA=128)。

·PGA增益从1~128可选。

·单周期设置模式。

·可编程数据输出,速率可达到1kHz。

·1.25/2.5V片内基准电压。

·0.1~2.5V片外差分基准电压。

·片内校准。

·SPI串行接口。

·工作电压为2.7~5.25V。

·功耗小于1mW。

1.引脚说明

ADS1216为48引脚TQFP封装,其引脚如图6-11所示。

978-7-111-35607-3-Chapter06-46.jpg

图6-11 ADS1216引脚图

ADS1216引脚介绍如下:

AVDD——模拟电源

AGND——模拟地。

AIN0~AIN7——模拟输入通道0~模拟输入通道7。

AINCOM——模拟输入公共端。

VRCAP——VREF旁路电容。

IDAC1——电流DAC1输出。

IDAC2——电流DAC2输出。

RDAC——电流DAC电阻。

BUFEN——缓冲使能。

978-7-111-35607-3-Chapter06-47.jpg——低有效,复位整个芯片

XIN——时钟输入。

XOUT——时钟输出,使用晶振或谐振器。

978-7-111-35607-3-Chapter06-48.jpg——低有效,低功耗功能。

POL——串行时钟极性。

978-7-111-35607-3-Chapter06-49.jpg——低有效,同步控制。

DGND——数字地。

DVDD——数字电源。

978-7-111-35607-3-Chapter06-50.jpg——低有效,数据准备好。

978-7-111-35607-3-Chapter06-51.jpg——低有效,芯片选择。

SCLK——串行时钟。

DIN——串行数据输入。

DOUT——串行数据输出。

D0~D7——数字量输入/输出接口0~7。

VREFOUT——参考电压输出。

VREF+——正差分参考输入。

VREF-——负差分参考输入。

2.应用说明

(1)多路输入选择器

多路输入选择器可选择在任意输入通道进行差分输入的任意组合。在ADS1216中,如果通道1被选择作为正差分输入通道,任何其他通道可选为负差分输入通道。使用这种方法,可以配置8种全差分输入通道。

(2)温度传感器

一个片内二极管可用做温度传感器。当输入MUX的配置缓冲器全部置1时,二极管连到A/D转换器的输入上。

(3)可熔电流源(Burnout Current Sources)

当ACR(寄存器)的BOCS位被置位时,多路输入选择器中的两个电流源被使能。正输入通道的电流源提供大约2μA的电流,负输入通道的电流源接收大约2μA的电流,允许对差分输入对的开路(满刻度读数)和短路(0V差分读数)检测。

(4)IDAC1和IDAC2

ADS1216有两个8位电流输出DAC,可被独立控制。可通过RDAC、ACR寄存器的范围选择位和IDAC寄存器内的8位数字值设置输出电流。输出电流=(VREF/8RDAC)(DAC代码)(IDAC1寄存器或IDAC2寄存器的值)。VREFOUT=2.5V且RDAC=150kΩ时,满刻度输出可被选为0.5mA、1mA或2mA。相应的电压范围为0~1V内的AVDD。当使用ADS1216的内部电压基准时,可用做IDAC的参考电压。通过禁止内部参考电压,且将外部参考电压输入连到VREFOUT引脚,IDAC可使用外部参考电压。

(5)可编程增益放大器

可编程增益放大器可设置增益为1、2、4、8、32、64或128。使用PGA能改善A/D转换器的有效分辨率。

(6)校准

ADS1216或整个系统的偏置或增益误差可通过校准来降低。ADS1216的内部校准称自校准,通过3个命令实现。对于系统校准,输入端必须输入适当的信号。

(7)参考电压

ADS1216可以使用内部或外部参考电压。上电时,被配置为内部参考电压2.5V。参考电压的选择通过状态配置寄存器来实现。内部参考电压可选为1.25V或2.5V。

(8)VRCAP引脚

此引脚只对内部VREF电路提供用于噪声滤波的旁路电容,推荐使用0.1μF陶瓷电容。如果使用外部VREF电路,此引脚可悬空。

(9)时钟发生器

ADS1216使用的时钟源可由晶体、陶瓷谐振器、振荡器或外部时钟提供。当使用晶体时,晶体频率为2.4576MHz或4.9152MHz。

(10)数字I/O接口

ADS1216有8个专用的数字I/O引脚。数字I/O引脚的默认上电状态是输入。所有的数字I/O引脚可分别被配置为输入或输出。它们通过DIR控制寄存器配置。DIR寄存器定义引脚是输入还是输出;DIO寄存器定义数字输出的状态。当数字I/O引脚被配置为输入时,DIO被用做读引脚的状态。

(11)978-7-111-35607-3-Chapter06-52.jpg操作

978-7-111-35607-3-Chapter06-53.jpg在外部事件作用下提供A/D转换的精确同步。同步可通过DSYNC引脚或DSYNC命令来实现。

(12)存储器

ADS1216使用两种类型的存储器:寄存器和RAM。16个寄存器直接控制各种功能(PGA、DAC值等),并且可以直接读写。总体来说,寄存器包含配置所需的所有信息,如数据格式、多路选择器设置、校准设置等。

对寄存器和RAM的读写以字节为单位进行。然而,寄存器和RAM之间的复制以区为单位进行。RAM独立于寄存器,也就是说,RAM可被用做通用的RAM。

ADS1216支持8个模拟输入的任意组合。因为这种灵活性,ADS1216很容易支持8个独立的设置——一个输入通道对应一个设置。为了便于这种使用,有8个分别的寄存器区可用。因此,每个配置信息可被写一次,在需要的时候重新调用,这样不必重新发送所有的配置数据。另外,还提供了用于检验RAM完整性的校验和命令。

RAM提供了8个“区”,每个区包括16个字节,因此RAM的总容量是128个字节。RAM在上电时可通过串行接口直接读写。区允许分别存储每个输入的设置。

RAM地址是线性的,因此可通过自增量指针访问RAM。可以连续地在整个存储器映像中访问RAM,而不需要分别寻址每一个区。例如,如果正在访问区0的偏移为0xF的单元(区0的最后一个单元),下一个访问单元将是区1的偏移为0x0的单元。区7的偏移为0xF的单元后的任何访问都会返回到区0的偏移为0x0的单元。

3.寄存器定义

1)SETUP(地址00H):设置寄存器。

复位值=iii01110B

位7位0

978-7-111-35607-3-Chapter06-54.jpg

位5~7 出厂编程位

位4 SPEED:调节器时钟速率

0:fMOD=fOSC/128(默认)

1:fMOD=fOSC/256

位3 REF EN:内部参考电压使能

0=内部参考电压禁止

1=内部参考电压使能(默认)

位2 REF HI:内部参考电压选择

0=内部参考电压=1.25 V

1=内部参考电压=2.5 V(默认)

位1 BUF EN:缓冲器使能

0=缓冲器禁止

1=缓冲器使能(默认)

位0 BIT ORDER:设置位传送顺序

0=先传送最高有效位(默认)

1=先传送最低有效位

数据总是先传进或传出最高有效位。此配置位只是控制传出字节的位顺序。

2)MUX(地址01H):多路选择器控制寄存器。

复位值=01H

位7 位0

978-7-111-35607-3-Chapter06-55.jpg

位4~7 PSEL0~PSEL3:阳极通道选择

0000=AIN0(默认)

0001=AIN1

0010=AIN2

0011=AIN3

0100=AIN4

0101=AIN5

0110=AIN6

0111=AIN7

1×××=AINCOM(除去位全为1的情况)

1111=温度传感器二极管阳极

位0~3 NESL0~NESL3:阴极通道选择

0000=AIN0

0001=AIN1

0010=AIN2

0011=AIN3

0100=AIN4

0101=AIN5

0110=AIN6

0111=AIN7

1×××=AINCOM(除去位全为1的情况)

1111=温度传感器二极管阴极模拟地

3)ACR(地址02H):模拟控制寄存器。

复位值=00H

位7 位0

978-7-111-35607-3-Chapter06-56.jpg

位7 BOCS:可熔电流源

0=非使能(默认)

1=使能

位5、6 IDAC2R0和IDAC2R1:IDAC2的满刻度范围选择

00=关(默认)

01=范围1

10=范围2

11=范围3

位3、4 IDAC1R0和IDAC1R1:IDAC1的满刻度范围选择

00=关(默认)

01=范围1

10=范围2

11=范围3

位0~2 PGA0~PGA2:可编程增益放大器增益选择

000=1(默认)

001=2(www.chuimin.cn)

010=4

011=8

100=16

101=32

110=64

111=128

4)IDAC1(地址03H):电流DAC1。

复位值=00H

位7 位0

978-7-111-35607-3-Chapter06-57.jpg

DAC代码位可将DAC1的输出范围设为0至满刻度。满刻度电流值由此字节、VREF、RDAC和ACR寄存器的DAC1范围位设置。

5)IDAC2(地址04H):电流DAC2。

复位值=00H

位7 位0

978-7-111-35607-3-Chapter06-58.jpg

DAC代码位可将DAC2的输出范围设为0至满刻度。满刻度电流值由此字节、VREFRDAC和ACR寄存器的DAC2范围位设置。

6)ODAC(地址05H):偏移DAC设置。

复位值=00H

位7 位0

978-7-111-35607-3-Chapter06-59.jpg

位7 SIGN:偏移标志

0=阳极

1=阴极

位0~6 OSET0~OSET6:偏移

偏移=(VREF/2PGA)(Code/127)

7)DIO(地址06H):数字I/O。

复位值=00H

位7 位0

978-7-111-35607-3-Chapter06-60.jpg

如果在DIR寄存器中I/O引脚被配置为输出,那么写入这个寄存器的值会出现在数字I/O引脚上。读此寄存器会返回数字I/O引脚值。

8)DIR(地址07H):数字I/O的方向控制。

复位值=FFH

位7 位0

978-7-111-35607-3-Chapter06-61.jpg

DIR0~DIR7的某一位为0,表示对应的数字量输入/输出接口是输出:某一位为1,表示对应的数字量输入/输出接口是输入。默认上电状态是输入。

9)DEC0(地址=08H):抽取寄存器(最低有效8位)。

复位值=80H

位7 位0

978-7-111-35607-3-Chapter06-62.jpg

抽取值用11位定义了范围20~2047。此寄存器是最低有效8位。3个最高有效位包含在M/DEC1寄存器中。默认数据速率是2.4567MHz晶振下的10Hz。

10)M/DEC1(地址09H):模式和抽取寄存器。

复位值=07H

位7 位0

978-7-111-35607-3-Chapter06-63.jpg

位7 978-7-111-35607-3-Chapter06-64.jpg:数据准备好(只读)

此位复制978-7-111-35607-3-Chapter06-65.jpg引脚的状态。

位6 978-7-111-35607-3-Chapter06-66.jpg:数据格式。

0=双极,1=单极

ADS1216数据格式见表6-1。

表6-1 ADS1216数据格式

978-7-111-35607-3-Chapter06-67.jpg

位4、5 SMODE0和SMODE1:设置模式

00=自动(默认)

01=Fast Settling(快速建立)滤波器

10=Sinc2滤波器

11=Sinc3滤波器

位0~2 DEC8~DEC10:抽取值的最高有效位

11)OCR0(地址0AH):偏移校准系数(低有效字节)。

复位值=00H

位7 位0

978-7-111-35607-3-Chapter06-68.jpg

12)OCR1(地址0BH):偏移校准系数(中间字节)。

复位值=00H

位7 位0

978-7-111-35607-3-Chapter06-69.jpg

13)OCR2(地址0CH):偏移校准系数(高有效字节)。

复位值=00H

位7 位0

978-7-111-35607-3-Chapter06-70.jpg

14)FSR0(地址0DH):满刻度寄存器(低有效字节)。

复位值=24H

位7 位0

978-7-111-35607-3-Chapter06-71.jpg

15)FSR1(地址0EH):满刻度寄存器(中间字节)。

复位值=90H

位7 位0

978-7-111-35607-3-Chapter06-72.jpg

16)FSR2(地址0FH):满刻度寄存器(高有效字节)。

复位值=67H

位7 位0

978-7-111-35607-3-Chapter06-73.jpg

4.命令

ADS1216的操作命令见表6-2。一些命令是独占的(如978-7-111-35607-3-Chapter06-74.jpg),然而其他命令需要附加字节(如WREG需要操作码、计数和数据字节)。操作码规定在数据准备好之前(如RDATA),输出数据最少需要4个fOSC周期。

表6-2 ADS1216操作命令

978-7-111-35607-3-Chapter06-75.jpg

(续)

978-7-111-35607-3-Chapter06-76.jpg

注:n=计数(0~127);r=寄存器(0~15);x=无关位;a=RAM组地址(0~7)。

A/D首先接收最高位,数据输出格式由ACR寄存器中的BIT ORDER位设置。

串行外围接口(SPI)允许一个控制器与ADS1216同步通信。ADS1216只工作在从模式。

在一次SPI传送中,数据同时发送和接收。SCLK信号同步两个串行数据线:DIN和DOUT上的信息的移位和采样。978-7-111-35607-3-Chapter06-77.jpg为ADS1216的片选信号。978-7-111-35607-3-Chapter06-78.jpg高电平时,ADS1216总线浮空。

时钟极性由POL引脚指定,POL选择高有效或低有效,对传送格式没有影响。

ADS1216的可编程功能由片内寄存器组来控制。数据通过部分串行接口写入这些寄存器,此接口也提供片内寄存器的读访问功能。

ADS1216的串行接口包括4个信号:978-7-111-35607-3-Chapter06-79.jpg、SCLK、DIN和DOUT。DIN用于将数据传送到片内寄存器,而DOUT用于访问片内寄存器中的数据。SCLK是器件的串行时钟输入,且所有的数据传送(或是DIN上的,或是DOUT上的)与SCLK相关。978-7-111-35607-3-Chapter06-80.jpg用做状态信号,标志数据何时准备好,并从ADS1216的数据寄存器中读取。当DOR(数据输出寄存器)中有一个新的数据字可用时,978-7-111-35607-3-Chapter06-81.jpg变为低电平。当从数据寄存器的读操作完成后,978-7-111-35607-3-Chapter06-82.jpg被复位到高电平。在输出寄存器更新前,978-7-111-35607-3-Chapter06-83.jpg也变为高电平,以此来标志何时不读器件,以保证当寄存器被更新时不读数据。978-7-111-35607-3-Chapter06-84.jpg用做选择器件。它可在多个部件被连接到串行总线的系统中用于对ADS1216解码。通过置978-7-111-35607-3-Chapter06-85.jpg输入为低电平,ADS1216串行接口可以工作在三线模式。在这种情况下,SCLK、DIN和DOUT被用于与ADS1216通信。可以通过访问M/DEC1寄存器的位7来获得978-7-111-35607-3-Chapter06-86.jpg的状态。

5.ADS1216与CPU的接口

(1)硬件电路设计

ADS1216与AT89S52 CPU的接口电路如图6-12所示。

978-7-111-35607-3-Chapter06-87.jpg

图6-12 ADS1216与AT89S52 CPU的接口电路

在图6-12中,AT89S52通过P1口与ADS1216相连,ADS1216采用内部参考电压,因此将VREF+接到VREFOUT,对地接0.1μF的滤波电容。IDAC1和IDAC2为可编程恒流源输出,用于测量热电阻信号,接线方式可为二线制、三线制和四线制。模拟输入AIN0~AIN7可直接接收毫伏电压信号,根据输入信号的幅度选择ADS1216内部PGA的增益,D0~D7可用做扩展I/O端口。

(2)程序设计

ADS1216程序设计如下:

1)预定义。

978-7-111-35607-3-Chapter06-88.jpg

978-7-111-35607-3-Chapter06-89.jpg

2)时钟子程序。

①入口:无。

②出口:无。

978-7-111-35607-3-Chapter06-90.jpg

978-7-111-35607-3-Chapter06-91.jpg

3)送数据子程序,将数据从累加器A送到ADS1216。

①入口:待送数据放在A中。

②出口:无。

978-7-111-35607-3-Chapter06-92.jpg

4)写寄存器子程序,将A中数据送至B中数据所指定的寄存器。

①入口:待写数据放在A中,目标寄存器偏移地址在B中。

②出口:无。

978-7-111-35607-3-Chapter06-93.jpg

5)等待DRDY信号有效子程序。

①入口:无。

②出口:无。

978-7-111-35607-3-Chapter06-94.jpg

6)数据输出子程序,单字节数据从ADS1216输出至A中。

①入口:无。

②出口:输出单字节数据放在A中。

978-7-111-35607-3-Chapter06-95.jpg

7)读取A/D转换结果子程序。

①入口:R0中放置存放结果单元首地址。

②出口:3字节转换结果输出至指定结果单元,首地址单元存放最高字节。

978-7-111-35607-3-Chapter06-96.jpg

8)短时间延时子程序,等待DOUT有数据输出。

①入口:无。

②出口:无。

978-7-111-35607-3-Chapter06-97.jpg

9)系统自校准。

①入口:无。

②出口:无。

978-7-111-35607-3-Chapter06-98.jpg

10)延时子程序。

①入口:无。

②出口:无。

978-7-111-35607-3-Chapter06-99.jpg