通道數(shù)模轉(zhuǎn)換器AD5532及其應(yīng)用,AD5532,數(shù)模轉(zhuǎn)換
1概述
AD5532是美國ADI公司推出的一款32通道、14位串行輸入、電壓輸出型單片集成數(shù)模轉(zhuǎn)換器。它還內(nèi)置一個額外的A/D轉(zhuǎn)換器,能將外部電壓采樣數(shù)據(jù)傳遞至相應(yīng)D/A單元,可以實現(xiàn)精度高達(dá)0.018%的無限采樣保持功能。AD5532具有串行輸人、多通道模擬輸出等特性,適用于對性能、功耗要求高,模擬通道需求多的測控系統(tǒng)。
2 內(nèi)部結(jié)構(gòu)及引腳功能
圖1所示為AD5532的內(nèi)部結(jié)構(gòu)框圖,AD5532片內(nèi)集成1個A/D轉(zhuǎn)換單元(專為ISHA模式設(shè)置)和32個D/A轉(zhuǎn)換單元,每個D/A轉(zhuǎn)換單元均配有一個輸出緩沖器。此外,片上還有串行、并行邏輯電路易于外部控制器相連。在D/A轉(zhuǎn)換模式下,需要通過串行輸入方式將14 bit的數(shù)據(jù)傳送到32個D/A轉(zhuǎn)換寄存器中的某一個,隨后,該數(shù)據(jù)將轉(zhuǎn)換為模擬輸出VOUT0~VOUT31(帶有增益和偏移)。
AVCC:模擬供電電壓,范圍為4.75 V~5.25 V,只向D/A轉(zhuǎn)換器內(nèi)核供電;
VDD:正電源端,范圍為8 V~16.5 V;
VSS:負(fù)電源端,電壓范圍-4.75 V~-16.5 V;
DGND:數(shù)字地,數(shù)字電路的參考點(diǎn);
DVCC:數(shù)字電源端數(shù)字信號供電電壓,范圍為2.7 V~5.25 V;
DAC_GND:所有D/A轉(zhuǎn)換模塊的參考地;
REF_IN:VOUT0~VOUT31的參考輸入電壓;
REF_OUT:內(nèi)部參考輸出電壓,提供3 V電壓;
VOUT:32個通道的輸出;
VIN:無限采樣/保持模擬輸入電壓,在D/A轉(zhuǎn)換模式時,該引腳接地;
A4~A0:并行模式下端口地址,5個地址引腳選定32個通道。A4是通道地址的MSB,A0是通道地址的LSB。每個引腳均有內(nèi)部上拉電阻,因此,這些引腳懸空時,默認(rèn)為邏輯高電平;
CAL:并行模式下控制32個D/A轉(zhuǎn)換單元同步向VIN采樣,接內(nèi)部下拉電阻,因此,該引腳懸空時,默認(rèn)為邏輯低電平;
nCS/nSYNC:低電平時,在并行模式下,片選使能;在串行模式下為幀同步;
nWR:在并行模式下有效,寫信號,低電平有效,配合nCS/nSYNC引腳可通過并口確定地址,內(nèi)部下拉電阻,懸空時默認(rèn)為邏輯低電平;
OFFSET_SEL:并行模式下有效,偏移選擇,高電平有效,用于選擇偏移通道,內(nèi)部下拉電阻,懸空時默認(rèn)為邏輯低電平;
SCLK:串行模式下的串行時鐘輸入,工作頻率為14 MHz,20 MHz時工作在ISHA模式。
DIN:串行模式下的串行數(shù)字輸入,在SCLK下降沿數(shù)據(jù)有效,內(nèi)部上拉電阻,懸空時默認(rèn)為邏輯高;
DOUT:串行模式下的串行數(shù)字輸出,在SCLK上升沿數(shù)據(jù)輸出;
SER/nPAR:允許用戶選擇串行接口或并行接口模式,當(dāng)拉為低電平時,選擇并行接口模式,當(dāng)拉為高電平時,選擇串行接口模式。內(nèi)部下拉電阻懸空時默認(rèn)為邏輯低;
OFFS_IN:偏移輸入,改變其輸入電壓調(diào)節(jié)VOUT的輸出范圍;
OFFS_OUT:偏移輸出,連接至OFFS_IN可調(diào)節(jié)VOUT的輸出范圍;
BUSY:使能采樣輸入電壓,該引腳下降時,采樣輸入信號,上升時,采樣完成;
nTRACK/nRESET:該引腳保持高電平時,一旦通道被選中,采樣VIN;該引腳保持低電平時,直接切換至GAIN/OFFSET環(huán)節(jié)輸入至VIN,選定通道在nTRACK的上升沿采樣VIN。該引腳也可用于將器件復(fù)位至上電復(fù)位階段。內(nèi)部上拉電阻,懸空時默認(rèn)為邏輯高電平。
3 工作原理
AD5532提供串并行兩種控制方式,數(shù)字/模擬轉(zhuǎn)換、無限采樣/保持、回讀以及采樣回讀四種工作模式,其中并行控制方式只在無限采樣/保持模式下起作用。
圖2的a、b分別是DAC模式和回讀模式下的數(shù)據(jù)傳輸格式。這兩種模式下的數(shù)據(jù)傳輸格式基本相同,只是MODE BIT不同。圖b中DIN引腳上的數(shù)據(jù)在輸入A0位后自動忽略,DOUT在第2個nCS/nSYNC下降沿后輸出相應(yīng)DAC寄存器中DB13~DB0位。
圖3和圖4所示分別為AD5532的串行讀、寫時序。在連續(xù)或非連續(xù)串行時鐘下。在nCS/nSYNC的第一個下降沿復(fù)位計數(shù)串行時鐘計數(shù)器,確保相應(yīng)位移入或移出串行寄存器。一旦在所選的工作模式下移人或移出數(shù)據(jù)位后,SCLK信號被忽略。下一次串行數(shù)據(jù)傳輸時首先利用nCS/nSYNC的下降沿復(fù)位計數(shù)器。
4 典型應(yīng)用
圖5所示為AD5532在DAC工作模式下的典型應(yīng)用原理圖。其中VDD提供+15 V電壓,VSS提供-15 V電壓,AVCC提供+5 V電壓,與三星公司S3C2440相連,DVCC提供+3.3 V電壓。由于本系統(tǒng)僅需DAC功能,所以將SER/nPAR及nTRACK/nRESET引腳電壓拉高,串行輸入/輸出引腳與S3C2440的相應(yīng)SPI引腳相連。其余未涉及引腳如果是輸入端最好接地或拉高。
系統(tǒng)采用Windows CE.NET4.2操作系統(tǒng),程序運(yùn)行空間分成內(nèi)核態(tài)與用戶態(tài),且所有地址均為虛擬地址。由于應(yīng)用程序無法訪問I/O引腳的控制與數(shù)據(jù)寄存器,所以編寫函數(shù)前需先按照WindowsCE.NET驅(qū)動程序方式編寫:先申請某一內(nèi)存地址空間,然后將該地址空間映射到I/O引腳的寄存器,最后對該地址相應(yīng)位進(jìn)行讀寫操作,模擬AD5532所需的串行傳輸方式控制器件。
申請地址空間:
將該地址空間映射到S3C2440的實際I/O地址空間中:
完成了上述步驟,可通過讀寫v_pIOPregs實際控制相應(yīng)引腳。
SPICLK/GPE13,SPIMOSI/GPE12,SPIMISO/GPE11引腳輸人/輸出狀態(tài)設(shè)置:
以上函數(shù)中channel取0~31,被移位到低14位時,表示選擇的通道;value取低14位,表示輸出的具體值。
將以上代碼加入到應(yīng)用程序源代碼中,就可根據(jù)需要調(diào)用函數(shù)訪問AD5532進(jìn)行D/A輸出。當(dāng)然,在編譯前,還需要找到pkfunc.h,ceddk.h,Winbase.h文件,并將其放置在源代碼目錄下,并申請內(nèi)存空間及映射內(nèi)存空間代碼文件頭include進(jìn)去,否則應(yīng)用程序最后無法編譯,提示找不到相應(yīng)函數(shù)。
5 結(jié)束語
采用AD5532串行模式進(jìn)行D/A轉(zhuǎn)換具有速度快、精度高、功耗低、占用口線少的優(yōu)點(diǎn),非常適用于需要多通道,寬范圍模擬信號輸出的場合。該系統(tǒng)電路已在實驗中調(diào)試通過。
評論