在一些實時數(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、控制邏輯,、比較器和校準DAC組成,。主DAC用于產(chǎn)生與輸入模擬信號進行比較的模擬信號,它的內(nèi)部結(jié)構(gòu)與一般模數(shù)轉(zhuǎn)換器內(nèi)部的DAC不同,,它沒有采用T型電阻網(wǎng)絡(luò),,而是由帶二進制權(quán)值的電容陣列組成(見圖2).模擬電子開關(guān)受數(shù)字量的數(shù)字代碼控制,代碼為0時開關(guān)接地,,代碼為1時開關(guān)接到參考電壓上,。這樣,d13為1而其它為0時,,VA=VREF/2,;當d12為1而其它為0時,VA=VREF/2 2,;依次類推,,直到當d0=1而其它為0時,VA=VREF/2 14,。根據(jù)疊加原理,,總的等效電勢為:
VA=d13VREF/2+d12VREF/2 2……+d0VREF/2 14
以單極性輸入為例,其具體的轉(zhuǎn)換過程如下:
?。?)將電容的自由端均接在AIN,,以使電容充電得到電壓VAIN。
?。?)將最高位電容接參考電壓,,其它電容的自由端接地,以使VA=VAIN,,即d13=1而其它位為0,,這時,VA=VREF/2-VAIN,,當VA<0 即VAIN
?。?)要通過比較器和控制邏輯來確定次高位,依次向下類推,,經(jīng)過16次比較以可以使轉(zhuǎn)換結(jié)束(包括兩位附加位),。需要說明的是:圖中的DUMMY電容是為了使它前面的電容具有權(quán)值而設(shè)置的,其本身沒有權(quán)值,。而由電容組成DAC將使MAX194具有采樣保持功能,,也就是電路不需加采樣保持部分。
另外,MAX194自身具有校準功能,,可在上電時進行校準,。當外部環(huán)境改變時(如溫度變化,電源電壓改變等),,還可以人為地置RESET為0時進行校準,。
2 管腳排列及功能
MAX194的管腳排列如圖3所示。它采用16腳DIP封裝,,各管腳的功能如下:
- 引腳1(BP/UP/SHDN)為三態(tài)輸入,,此腳懸空,則模擬信號以雙極性方式輸入,;接高電平時以單極性輸入,;接低電平時則以10μA的關(guān)閉模式工作。
- 引腳10(RESET)接低電平時停止工作,,并在上升沿開始校準,。
- 引腳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與單睡機進行接口的接口電路,,該接口將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é)束以后,,當EOC變低并且在CS也為低時,在DOUT上輸出最高位,,之后在SCLK的下降沿依次輸出其它位,。SCLK允許的最高頻率是5MHz。圖5為其時序圖,。
圖中,,tCONV為轉(zhuǎn)換時間;tCSS為CS下降模沿的時間,;tCSH為SCLK最后一個下降沿至CS上升沿的時間,。
4 注意事項
采用圖4電路進行接口設(shè)計時,應(yīng)注意以下幾點,;
?。?)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ù)是分時進行的,因而保證了這種先讀出最高位,,再輸出次高位的全數(shù)據(jù)輸出方式,。
(4)由于在收緩沖器SBUF中,,數(shù)據(jù)的存儲順序為:
d6 d7 d8 d9 d10 d11 d12 d13
所以要在程序中重新排列其順序,,圖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