在一些實(shí)時(shí)數(shù)據(jù)采集與信息處理電路中,要滿足數(shù)據(jù)采集的精度和速度要求,,以必須采用分辨率高,,轉(zhuǎn)換速度快的AD轉(zhuǎn)換器。MAX194是一種性能優(yōu)越的高精度,、帶采樣保持的高速度十四位串行AD轉(zhuǎn)換器,。筆者在課題實(shí)踐中應(yīng)用了MAX194芯片取得了很好的效果。由于MAX194的輸出方式是串行輸出而與一般的并行輸出方式不同,,因此,,在與MC51系列單片機(jī)通信時(shí)有一些需要注意的事項(xiàng)。在此筆者把在應(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時(shí)開關(guān)接地,,代碼為1時(shí)開關(guān)接到參考電壓上,。這樣,d13為1而其它為0時(shí),VA=VREF/2,;當(dāng)d12為1而其它為0時(shí),,VA=VREF/2 2;依次類推,,直到當(dāng)d0=1而其它為0時(shí),,VA=VREF/2 14。根據(jù)疊加原理,,總的等效電勢為:
VA=d13VREF/2+d12VREF/2 2……+d0VREF/2 14
以單極性輸入為例,,其具體的轉(zhuǎn)換過程如下:
(1)將電容的自由端均接在AIN,,以使電容充電得到電壓VAIN,。
(2)將最高位電容接參考電壓,,其它電容的自由端接地,,以使VA=VAIN,即d13=1而其它位為0,,這時(shí),,VA=VREF/2-VAIN,當(dāng)VA<0 即VAIN
?。?)要通過比較器和控制邏輯來確定次高位,,依次向下類推,經(jīng)過16次比較以可以使轉(zhuǎn)換結(jié)束(包括兩位附加位),。需要說明的是:圖中的DUMMY電容是為了使它前面的電容具有權(quán)值而設(shè)置的,,其本身沒有權(quán)值。而由電容組成DAC將使MAX194具有采樣保持功能,,也就是電路不需加采樣保持部分,。
另外,MAX194自身具有校準(zhǔn)功能,,可在上電時(shí)進(jìn)行校準(zhǔn),。當(dāng)外部環(huán)境改變時(shí)(如溫度變化,電源電壓改變等),,還可以人為地置RESET為0時(shí)進(jìn)行校準(zhǔn),。
2 管腳排列及功能
MAX194的管腳排列如圖3所示。它采用16腳DIP封裝,,各管腳的功能如下:
- 引腳1(BP/UP/SHDN)為三態(tài)輸入,,此腳懸空,,則模擬信號以雙極性方式輸入;接高電平時(shí)以單極性輸入,;接低電平時(shí)則以10μA的關(guān)閉模式工作,。
- 引腳10(RESET)接低電平時(shí)停止工作,并在上升沿開始校準(zhǔn),。
- 引腳9(CONV)變低后,,A/D轉(zhuǎn)換開始。
- 引腳7(EOC)為轉(zhuǎn)換結(jié)束輸出,。轉(zhuǎn)換結(jié)束時(shí)輸出低電平,,到一下次轉(zhuǎn)換開始時(shí)再變成高電平。
- 引腳2(CLK)外接轉(zhuǎn)換時(shí)鐘,,最大頻率為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ī)進(jìn)行接口的接口電路,該接口將CS接P2.7腳,,并由軟件發(fā)出片選信號,。用于轉(zhuǎn)換的時(shí)間脈沖CLK由89C51的ALE腳產(chǎn)生。89C51的TXD經(jīng)非門接SCLK,,以用做讀取數(shù)據(jù)的時(shí)鐘,。
讀出轉(zhuǎn)換結(jié)果有兩種方式,一種是在轉(zhuǎn)換的過程中以CLK的時(shí)鐘頻率讀出,,另一種是在轉(zhuǎn)換結(jié)束后以SCLK的時(shí)鐘頻率讀出,。筆者選擇在轉(zhuǎn)換結(jié)束后讀取結(jié)果的方式(第二種)。該方式在轉(zhuǎn)換結(jié)束以后,,當(dāng)EOC變低并且在CS也為低時(shí),,在DOUT上輸出最高位,之后在SCLK的下降沿依次輸出其它位,。SCLK允許的最高頻率是5MHz,。圖5為其時(shí)序圖。
圖中,,tCONV為轉(zhuǎn)換時(shí)間,;tCSS為CS下降模沿的時(shí)間;tCSH為SCLK最后一個下降沿至CS上升沿的時(shí)間,。
4 注意事項(xiàng)
采用圖4電路進(jìn)行接口設(shè)計(jì)時(shí),,應(yīng)注意以下幾點(diǎn);
?。?)Tcss必須大于75μs,,應(yīng)在程序中先置CS為零,然后再發(fā)轉(zhuǎn)換開始信號,。
?。?)轉(zhuǎn)換開始脈沖必須與轉(zhuǎn)換時(shí)鐘同步,為此在P1.0和ALE之間應(yīng)加一個或門后再接至CONV,,以確保同步,。
(3)在TXD直接至SCLK相連時(shí),,由于89C51在TXD的下降沿讀數(shù),,而TXD(SCLK)的第一個下降沿以開始輸出次高位,這樣以會丟失最高位,。為此,,可在TXD與SCLK之間接一個反相器,這樣在TXD的下降沿讀入數(shù)據(jù)時(shí),,即可在TXD的上升沿(SCLK的下降沿)使DOUT輸出數(shù)據(jù),。由于讀入數(shù)據(jù)和輸出數(shù)據(jù)是分時(shí)進(jìn)行的,,因而保證了這種先讀出最高位,再輸出次高位的全數(shù)據(jù)輸出方式,。
?。?)由于在收緩沖器SBUF中,數(shù)據(jù)的存儲順序?yàn)椋?/p>
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