AD7810是美國模擬器件公司(Analog Devices)生產的一種低功耗10位高速串行A/D轉換器。該產品有8腳DIP和SOIC兩種封裝形式,并帶有內部時鐘。它的外圍接線極其簡單,AD7810的轉換時間為2μs,采用標準SPI同步串行接口輸出和單一電源(2.7V~5.5V)供電。在自動低功耗模式下,該器件在轉換吞吐率為1kSPS時的功耗僅為27μW,因此特點適合于便攜式儀表及各種電池供電的應用場合使用。
1 AD7810引腳功能
AD7810引腳排列如圖1所示,各引腳的功能如下:
1 腳CONVST:轉換啟動輸入信號。
2 腳VIN+:模擬信號同相輸入端。
3 腳VIN-:模擬信號反相輸入端。
4 腳GND:接地端口。
5 腳VREF:轉換參考電壓輸入端。
6 腳DOUT:串行數據輸出端。
7 腳SCLK:時鐘輸入端。
8 腳VDD:電源端。
2 AD7810主要參數
AD7810的主要參數如下:
分辨率:10位二進制;
轉換時間:2μs;
非線性誤差:±1LSB;
電源電壓范圍:2.7~5.5V;
電源功耗:高速方式時為17.5mW,低功耗方式時為5μW;
參考電壓VEFR范圍:1.2V~VDD;
模擬電壓輸入范圍:0V~VREF;
輸出形式:SPI同步串行輸出,與TTL電平兼容。
3.1 高速模式工
圖2是AD7810工作在高速模式時的時序圖。在此模式下,啟動信號CONVST一般處于高電平。在CONVST端輸入一個負脈沖,其下降沿將啟動一次轉換。若采用內部時鐘,那么,轉換需要2μs的時間(圖中t1)。當轉換結束時(圖中A點),AD7810會自動將轉換結果鎖存到輸出移位寄存器中。此后,在每一個SCLK脈沖的上升沿,數據按由高到低的原則(首先發(fā)送DB9,最后發(fā)送DB0)依次出現(xiàn)在DOUT上。如果在轉換還未結束之前就發(fā)出SCLK信號來啟動數據輸出,那么,在DOUT上出現(xiàn)的將是上一次轉換的結果。
啟動信號CONVST應在轉換結束前變?yōu)楦唠娖剑磘3應小于t1,否則器件將自動進入低功耗模式。另外,串行時鐘SCLK的最高頻率不能超過20MHz。
3.2 自動低功耗模式
圖3是AD7810工作在自動低功耗模式時的時序圖。在此模式下,啟動信號CONVST為低電平時,器件處于低功耗休眠狀態(tài)。當在CONVST端輸入一個正脈沖時,可在其上升沿將器件從休眠狀態(tài)喚醒,喚醒過程需要1μs的時間(圖中t2)。當器件被喚醒后,系統(tǒng)將自動啟動一次轉換,轉換時間也是2μs(圖中t1)。轉換結束時,AD7810將轉換結果鎖存到輸出移位寄存器中,同時自動將器件再一次置于低拉耗狀態(tài)。
啟動信號CONVST正脈沖的寬度(圖2中t3)應小于1μs,否則器件被喚醒后將不會自動啟動轉換,而是將A/D轉換的啟動時間順延至CONVST的睛降沿處。自動低功耗模式是AD7810是一大特鐸,一般當數據吞吐率小于100kSPS時,應使器件工作在此模式下。在5V電源電壓下,當數據吞吐率為100kSPS時,器件的功耗2.7mW;而當數據吞吐率為 10kSPS時,功耗為270μW;若數據吞吐率為1kSPS,則其功耗僅27μW。
4 AD7810的典型應用
AD7810應用時幾乎不需外圍元件。圖4所示是其典型應用電路,其參考電壓VREF接至VDD,模擬輸入VIN-接至GND,而待轉換電壓則從VIN+輸入。
AD7810 幾乎可與各種MCU進行接口,圖4中的MCU可以是8051 或PIC16C6X/7X。當與PIC16C6X/7X系列單片機進行接口時,可將SCLK接至單片機的SCK(RC3),將DOUT接至SDI(RC4),而其啟動信號CONVST則可接至單片機的任意輸出口上(如RC0)。由于PIC單片機的 SPI方式每次只能接收8位數據,因此10位數據應分兩次讀取。當AD7810與8051接口時,電路采用的是一種模擬串口方式,AD7810的 SCLK、DOUT和CONVST分別接至8051的P1.0、P1.1和P1.2,只要嚴格按照AD7810的時序要求操作,一般接口都不會有問題。這種方式實際上可擴展到所有的MCU種類。另外,8051也可利用其串行口工作方式0與AD7810進行通訊(圖中未畫出),但這時應解決好兩個問題:一是由于8051在TXD的上升沿進行采樣,這樣,TXD應經過一個反相器再接到SCLK,而將RXD接至DOUT,然后將CONVST接至任意一個輸出端口。二是8051串行口首先接收低位數據,這一點與AD7810剛好相反,因此,編程時應當注意。
下面給出PIC16C6X/7X和8051分別與AD7810進行通訊的兩段程序,作者只對與A/D轉換有關的部分進行了編寫(常用資源定義、芯片定義等均未列出),兩段程序均可鈄AD7810的工作控制在自動低功耗方式。8051與AD7810通訊程序如下:
START:CLR P1.0 ;初始化
SETB P1.0
CLR P1.2
LOOP:CALL CON0
... ;主程序省略
;
;A/D轉換子程序,返回時數據低8位在R2中,高2位在R3中
CON0:MOV R1,#`10 ;10位數據
MOV R2,#0
SETB P1.2 ;喚醒啟動AD7810
CLR P1.2
CON1:SETB P1.0 ;發(fā)送SCLK信號
MOV C,P1.1 ;讀一位數據
CLR P1.0
MOV A,R2 ;數據移位
RLC A
MOV R2,A
MOV A,R3
RLC A
MOV R3,A
DJNZ R1,CON1
RET
PIC16C6X/7X與AD7810的通訊程序如下:
REG1 EQU 0X20 ;寄存器定義
REG2 EQU 0X21
CLRF PORTC ;端口初始化
BSF STATUS,RP0
MOVLW 0X30
MOVWF TRISC
BCF STATUS,PR0
BCF SSPCON,SSPEN
MOVLW 0X00 ;SPI初始化
MOVWF SSPCON
BSF SSPCON,SSPEN SPI開放
LOOP CALL ADCON
... ;主程序省略
;
;A/D轉換子程序,返回時數據低8位在REFG1中,高2位在REG2中
ADCON BSF PORTC,0 ;喚醒啟動AD7810
BCF PORTC,0
MOVWF SSPBUF ;啟動接收高8位
BSF STATUS,RP0
CON1 BTFSS SSPSTAT,BF ;數據已接收?
GOTO CON1 ;沒有收到
BCF STATUS,RP0
MOVF SSPBUF,W
MOVWF REG1 ;高8位送REG1
MOVWF SSPBUF ;啟動接收低2位
BSF STATUS,PR0
CON1 BTFSS SSPSTAT,BF ;數據已接收?
GOTO CON1 ;沒有收到
BCF STATUS,RP0
MOVF SSPBUF,W
ANDLW B11000000 ;保留有效位
MOVWF REG2 ;低2位送REG2
BCF STATUS,C ;進位位清零
RLCF REG2,1 ;數據調整
RLCF REG1,1
RLCF REG2,1
RLCF REG1,1 ;低8位
RLCF REG2,1 ;高2位
RETURN
:
發(fā)布評論請先 登錄
相關推薦
評論