14位串行A/D轉(zhuǎn)換器MAX194的特性及應(yīng)用
在一些實時數(shù)據(jù)采集與信息處理電路中,要滿足數(shù)據(jù)采集的精度和速度要求,以必須采用分辨率高,轉(zhuǎn)換速度快的AD轉(zhuǎn)換器。MAX194是一種性能優(yōu)越的高精度、帶采樣保持的高速度十四位串行AD轉(zhuǎn)換器。筆者在課題實踐中應(yīng)用了MAX194芯片取得了很好的效果。由于MAX194的輸出方式是串行輸出而與一般的并行輸出方式不同,因此,在與MC51系列單片機通信時有一些需要注意的事項。在此筆者把在應(yīng)用中遇到的問題及解決方法作以介紹。
1 工作原理及結(jié)構(gòu)
MAX194 的工作原理框圖如圖1所示。它主要由主DAC、控制邏輯、比較器和校準(zhǔn)DAC組成。主DAC用于產(chǎn)生與輸入模擬信號進(jìn)行比較的模擬信號,它的內(nèi)部結(jié)構(gòu)與一般模數(shù)轉(zhuǎn)換器內(nèi)部的DAC不同,它沒有采用T型電阻網(wǎng)絡(luò),而是由帶二進(jìn)制權(quán)值的電容陣列組成(見圖2).模擬電子開關(guān)受數(shù)字量的數(shù)字代碼控制,代碼為0時開關(guān)接地,代碼為1時開關(guān)接到參考電壓上。這樣,d13為1而其它為0時,VA=VREF/2;當(dāng)d12為1而其它為0時,VA=VREF/2 2;依次類推,直到當(dāng)d0=1而其它為0時,VA=VREF/2 14。根據(jù)疊加原理,總的等效電勢為:
VA=d13VREF/2+d12VREF/2 2……+d0VREF/2 14
(1)將電容的自由端均接在AIN,以使電容充電得到電壓VAIN。
(2)將最高位電容接參考電壓,其它電容的自由端接地,以使VA=VAIN,即d13=1而其它位為0,這時,VA=VREF/2-VAIN,當(dāng)VA<0 即VAIN<VREF/2時,比較器的輸出為1,并通過控制邏輯使d13=0,反之使d13=1。在最高位確定后,如果使d12=1而其余為0,則 VA=d13VREF/2+d12VREF/2 2-VAIN。
(3)要通過比較器和控制邏輯來確定次高位,依次向下類推,經(jīng)過16次比較以可以使轉(zhuǎn)換結(jié)束(包括兩位附加位)。需要說明的是:圖中的DUMMY電容是為了使它前面的電容具有權(quán)值而設(shè)置的,其本身沒有權(quán)值。而由電容組成DAC將使MAX194具有采樣保持功能,也就是電路不需加采樣保持部分。
另外,MAX194自身具有校準(zhǔn)功能,可在上電時進(jìn)行校準(zhǔn)。當(dāng)外部環(huán)境改變時(如溫度變化,電源電壓改變等),還可以人為地置RESET為0時進(jìn)行校準(zhǔn)。
2 管腳排列及功能
MAX194的管腳排列如圖3所示。它采用16腳DIP封裝,各管腳的功能如下:
引腳1(BP/UP/SHDN)為三態(tài)輸入,此腳懸空,則模擬信號以雙極性方式輸入;接高電平時以單極性輸入;接低電平時則以10μA的關(guān)閉模式工作。
引腳10(RESET)接低電平時停止工作,并在上升沿開始校準(zhǔn)。
引腳9(CONV)變低后,A/D轉(zhuǎn)換開始。
引腳7(EOC)為轉(zhuǎn)換結(jié)束輸出。轉(zhuǎn)換結(jié)束時輸出低電平,到一下次轉(zhuǎn)換開始時再變成高電平。
引腳2(CLK)外接轉(zhuǎn)換時鐘,最大頻率為1.7MHz;引腳3(SCLK)如果在轉(zhuǎn)換結(jié)束后讀取結(jié)果,則以SCLK的頻率讀取。它可以與CLK的頻率不同,最大為5MHz。
引腳5(DOUT)為串行數(shù)據(jù)輸出腳,先輸出最高位。
引腳8(CS)為片選信號,允許串行輸出。
引腳12(REF)為參考電壓輸入端,輸出范圍為0~5V。
引腳11(AIN)為模擬輸入,輸入范圍為0~VRFEF或-VREF~+VREF。
引腳6,14(DNCD,AGND)分別為數(shù)字地,模擬地。
引腳4,16(VDDD,VDDA)分別為+5V數(shù)字電源,+5V模擬電源。
引腳11,15(VSSD,VSSA)分別為-5V數(shù)字電源,-5V模擬電源。
3 MAX194的應(yīng)用電路
MAX194可廣泛應(yīng)用于工業(yè)控制,測量,數(shù)字信號處理等方面。
圖4為筆者在鍋爐測溫系統(tǒng)中用MAX194與單睡機進(jìn)行接口的接口電路,該接口將CS接P2.7腳,并由軟件發(fā)出片選信號。用于轉(zhuǎn)換的時間脈沖CLK由89C51的ALE腳產(chǎn)生。89C51的TXD經(jīng)非門接SCLK,以用做讀取數(shù)據(jù)的時鐘。
讀出轉(zhuǎn)換結(jié)果有兩種方式,一種是在轉(zhuǎn)換的過程中以CLK的時鐘頻率讀出,另一種是在轉(zhuǎn)換結(jié)束后以SCLK的時鐘頻率讀出。筆者選擇在轉(zhuǎn)換結(jié)束后讀取結(jié)果的方式(第二種)。該方式在轉(zhuǎn)換結(jié)束以后,當(dāng)EOC變低并且在CS也為低時,在DOUT上輸出最高位,之后在SCLK的下降沿依次輸出其它位。SCLK允許的最高頻率是5MHz。圖5為其時序圖。
圖中,tCONV為轉(zhuǎn)換時間;tCSS為CS下降模沿的時間;tCSH為SCLK最后一個下降沿至CS上升沿的時間。
4 注意事項
采用圖4電路進(jìn)行接口設(shè)計時,應(yīng)注意以下幾點;
(1)Tcss必須大于75μs,應(yīng)在程序中先置CS為零,然后再發(fā)轉(zhuǎn)換開始信號。
(2)轉(zhuǎn)換開始脈沖必須與轉(zhuǎn)換時鐘同步,為此在P1.0和ALE之間應(yīng)加一個或門后再接至CONV,以確保同步。
(3)在TXD直接至SCLK相連時,由于89C51在TXD的下降沿讀數(shù),而TXD(SCLK)的第一個下降沿以開始輸出次高位,這樣以會丟失最高位。為此,可在TXD與SCLK之間接一個反相器,這樣在TXD的下降沿讀入數(shù)據(jù)時,即可在TXD的上升沿(SCLK的下降沿)使DOUT輸出數(shù)據(jù)。由于讀入數(shù)據(jù)和輸出數(shù)據(jù)是分時進(jìn)行的,因而保證了這種先讀出最高位,再輸出次高位的全數(shù)據(jù)輸出方式。
(4)由于在收緩沖器SBUF中,數(shù)據(jù)的存儲順序為:
所以要在程序中重新排列其順序,圖6為其程序框圖,具體的程序如下:
ADZHUAN:CLR PSW
CLR C
CLR P2.7
MOV P0,#02H
MOV R1,#03H
SETB P1.0
CLR P1.0
SETB P1.0
SETB P3.2
HERE:JB P3.2,HERE
LOOP:MOV SCON,10H
WAIT1:JNB RI,WAIT1
MOV A,SBUF
MOV @R1,A
INC R1
DJNZ R0,LOOP
SETB P2.7
LCALL EXCH
RET
EXCH:MOV R1,30H
MOV A,#00H
CLR C
MOV R7,#08H
LOOP0:XCH A,R1
RRC A
XCH A,R1
RLC A
DJNZ R7,LOOP0
MOV 32H,A
MOV R1,31H
MOV A,#00H
CLR C
MOV R7,#08H
LOOP1:XCH,A,R1
RRC A
XCH A,R1
RLC A
DJNZ R7,LOOP1
MOV 33H,A
RET