中关村元坤智造工厂,注册立享优惠!

国内专业的IC销售商
北京耐芯威科技有限公司
Beijing NaiXinWei Technology Co., Ltd.

新闻中心

ADS7844在低功耗数据采集系统中的应用

    摘要:详细介绍了12位串行模数转换器ADS7844的结构及工作原理,给出了一个实用的低功耗数据采集系统的设计方案,同时给出了相关的硬件电路和软件程序。
     关键词:串行模数转换器;数据采集系统;低功耗;ADS7844
在野外以及一些没有市电或者不适宜使用市电的应用场合,自动化仪表通常要采用电池供电,这就要求仪表中的电子元器件的功耗要低,A/D转换器作为自动化仪表的重要组成部份更不例外。笔者采用ADS7844和PIC16C64构成的数据采集系统便具有功耗极低、结构简单等优点,完全可以适应电池供电系统的要求。

1 ADS7844的结构及工作原理
ADS7844是Burr-Brown公司推出的一种高性能、宽电压、低功耗的12-bit串行模数转换器。它有8个模拟输入端,可用软件编程为8通道单端输入A/D转换器或4通道差分输入A/D转换器,其转换率高达200kHz,而线性误差和差分误差最大仅为±1LSB。ADS7844在电源电压为2.7V~5V之间均能正常工作,最大工作电流为1mA,进入低功耗状态后的耗电仅3μA。ADS7844通过6线串行接口与CPU进行通信,而且接口简单方便。

COM:信号地

VREF:参考电压输入端,最大值为电源电压

CS:片选端,低电平有效,该脚为高电平时,其它数字接口线呈三态

DCLK:外部时钟输入端,在时钟作用下,CPU将控制字写入ADS7844,并将转换结果从中读出

DIN:串行数据输入端,在片选有效时,控制字在DCLK上升沿被逐位锁入ADS7844

DOUT:串行数据输出端,在片选有效时,转换结果在DCLK的下降沿开始被逐位从ADS7844移出

BUSY:“忙”信号输出端,在接收到控制字的第一位数据后变低,只有在转换结束且片选有效时,该脚才输出一个高脉冲

SHDN:电源关闭端,低电平有效。当SHDN为低电平时,ADS7844进入低功耗状态

VCC,GND:分别为电源端和数字地。

1.2 ADS7844的控制字及转换时序

ADS7844的控制字如表1所列。

表1 ADS7844的控制字含义

Bit7(MSB) Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0(LSB)
S A2 A1 A0 - SGL/DIF PD1 PD0

ADS7844的控制字共有8位,其中S是起始位控制字的起始位总为“1”。A2~A0是通道选择位,在单端输入时分别对应8个通道,而对于差分输入,000~011分别对应CH0~CH1、CH2~CH3、CH4~CH5、CH6~CH7,而100~111则分别对应CH0~CH1、CH1~CH0、CH3~CH2、CH5~CH4、CH7~CH6。Bit3没有定义。SGL/DIF是模式控制位,该位为“1”时是单端输入模式,为“0”时是差分输入模式。PD1和PD0是电源关闭模式控制位,若为“00”,则表示ADS7844在不进行数据转换时自动进入电源关闭模式,若为“11”,芯片则始终处于电源开启模式。

ADS7844有多种转换时序,其基本转换时序如图2所示。从图中可见,一个转换周期需要24个时钟周期,其中8个用于输入控制字,16个用于读取转换结果。控制字的所有位在时钟上升沿被锁入芯片,转换结果在时钟的下降沿被逐位移出。所有移入和移出的数据都是高位在前、低位在后。需要说明的是,ADS7844是12位A/D转换器,其转换结果只有12位,故在移出12位结果后,还需送入4个时钟来完成整个转换过程,这4个多余的时钟移出的数据为“0”,使用时不应作为转换结果处理。

2 低功耗数据采集系统的硬件电路

要设计一个低功耗数据采集系统,只有A/D转换器是低功耗器件还不够。PIC16C64是美国MI-CROCHIP公司生产的高性能单片机,它有许多优点:宽电压2.7V~5V,其工作电流只有1mA3.3V@32kHz时,进入休眠状态后只有几微安且可以用中断将其从休眠状态唤醒等。低功耗数据采集系统的硬件电路如图3所示,其中CS、DCLK、DIN和DOUT必须与CPU连接,而BUSY则可以不用,在转换时稍加延时等待即可。控制AD7844进入低功耗状态有两种方式:一是直接控制SHDN端;二是将SHDN接在电源上,它们均可在控制字中设置。为了节省口线,可采用第二种方式。采样控制可以使用外部中断,如外部中断INT0、串行口中断和PB口电平变化引起的中断等,也可以使用内部定时中断。

3 软件程序

下面给出该系统的主程序部分流程图和汇编程序。该设计假设用外部中断INT0唤醒CPU来进行数据采集,且A/D转换程序就是中断服务子程序。

ORG 000H

GOTO MAIN

ORG 004H

GOTO INT PRO

ORG 010H

MAIN MOVLW 10H 关闭总中断控制位,

但开放INT0

MOVWF INTCON

BSF STATUSRP0 初始化A口

MOVLW 0F8H

MOVWF TRISA  A口D0-D2为输

出,D3为输入

BCF STATUS,RP0

BSF PORTA,1 使片选无效

...

BSF INTCON,GIE 开放总中断控制位

LOOP SLEEP 等待中断

NOP

... 数据采集完成后进行其他处理

GOTO LOOP

INT_PRO BCF PORTA,0 时钟置低电平

BCF PORTA,2 数据输入置低

MOVLW 08H 置送控制字所需时钟数

MOVWF NUM

MOVLW 8CH 控制字,假设转换CH0,

单端输入,自动进入低功耗状态

BCF PORTA,1 片选有效

... 送控制字

LCALL DELAY 调用延时子程序

MOVLW 10H 置读转换结果所需

时钟数

MOVWF NUM

... 读转换结果

BSF PORTA,1 结束转换并返回

RETFIE

4 结束语

由于PIC16C64和ADS7844都是低功耗器件,且都有低功耗状态,因而用其设计的数据采集系统功耗是很低的。经实测,当电源电压为3.3V、时钟为32.76kHz时,该电路的正常工作电流为2mA,而进入低功耗状态后的系统消耗电流最大为4μA,因而完全适合于电池供电。另外,PIC16C64和ADS7844都是宽电压器件,并且PIC16C64还有许多功能可以开发利用。如果在本系统基础上做必要的功能扩展,便可用于其它工业控制系统的现场控制等领域。