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