AD7890型串行數/模轉換器與51系列單片機的接口設計
1 引言
本文引用地址:http://dyxdggzs.com/article/81138.htm串行數/模轉換減少了器件間的硬件連接,特別適用于電路空間較小且數據采集速率要求不是特別高的場(chǎng)合。當然,硬件的簡(jiǎn)化也相應提高了使用的復雜程度。本文介紹AD7890型串行數/模轉換器在自動(dòng)導向鉆井系統控制電路數據采集中的應用。由于井下工具電子倉部分空間狹窄、工作條件惡劣、可靠性要求高,所以特別適合采用串行A/D轉換器。
AD7890是美國Analog Devices公司于20世紀90年代末推出的一款8通道12位串行A/D轉換器。其主要性能特征包括:A/D轉換時(shí)間較快(9.5μs);功耗較低(最大50 mW,體眠狀態(tài)下75μW);信噪比較高(大于70 dB);總諧波失真小(不大于-78 dB);內置跟蹤/保持放大器,片上參考電壓;具有高速、靈活的串行接口等。
2 AD7890的內部結構
圖1示出AD7890的內部功能框圖,由圖1可知AD7890內部含有相應的信號調理(對于A(yíng)D7890-5和AD7890-10)、多路開(kāi)關(guān)、跟蹤保持放大器、通用串行接口及參考電源等,給用戶(hù)的使用帶來(lái)極大的方便。特別是電路中的多路開(kāi)關(guān)輸出(MUX OUU)和跟蹤/保持輸入(SHA IN)采用分離的獨特設計,使用戶(hù)在二者間采用1個(gè)外部濾波電路就可完成全部8個(gè)通道的抗混疊處理。

電路的SMODE端是工作模式的控制輸入端,用戶(hù)可以用其指定器件內部時(shí)鐘(主)和外部時(shí)鐘(從)的工作模式。采用外部時(shí)鐘工作模式時(shí).用戶(hù)需提供讀寫(xiě)數據的幀同步和串行時(shí)鐘信號SCLK,其串行脈沖頻率最大可以達到10 MHz。采用內部時(shí)鐘模式時(shí),AD7890本身向系統提供幀同步行時(shí)鐘,此時(shí)的工作頻率取決于CLK IN引腳輸入的主時(shí)鐘頻率。電路的8路模擬輸入端為VINl-VIN8,由多路開(kāi)關(guān)根據3位通道地址選擇,多路切換時(shí)按先開(kāi)后合方式操作。REF OUT/REF IN是參考電壓輸出/輸入端。使用外部參考電壓時(shí)外部+2.5 V參考電壓由該端接入,而使用內部參考電壓時(shí)需要在該端和模擬地AGND之間接入一只0.1μF的電容器。
AD7890通過(guò)片內的高速雙向串行數據接口成輸出數據和接收控制字。其控制寄存器由5位組成,如圖2所示,各位的默認狀態(tài)均為0。其中A2、A1、A0分別為多路開(kāi)關(guān)通道地址選擇的最高位、次高位和最低位。通道選擇算法為:被選通道號=A2x4+Alx2+AO+1??刂谱炙腿肟刂萍拇嫫?,器件即開(kāi)始啟動(dòng)內部延時(shí)脈沖,該脈沖寬度取決于CEXT引腳的電容值,用戶(hù)可以根據外部濾波和信號處理的實(shí)際延時(shí),適當調節該電容值,確保在A(yíng)/D轉換開(kāi)始前有足夠的時(shí)間進(jìn)行多路轉換建立和跟蹤保持的采集。該內部延時(shí)脈沖時(shí)間到后,跟蹤/保持器立即進(jìn)入保持狀態(tài)并且開(kāi)始啟動(dòng)12位A/D轉換器的本次操作。

3 AD7890的工作時(shí)序
控制寄存器中的CONV為轉換開(kāi)始狀態(tài)位,為l時(shí)表示進(jìn)入轉換狀態(tài),與CONVST引腳輸入效果完全相同。在向CONV寫(xiě)操作(寫(xiě)1)的第6個(gè)串行時(shí)鐘周期結束后內部延時(shí)脈沖開(kāi)始啟動(dòng),轉換過(guò)程開(kāi)始。另外,在CONV為1時(shí),CONVST的輸入命令無(wú)效。STBY為休眠狀態(tài)位,該位為1時(shí),電路處于低功耗體眠狀態(tài)。電路在寫(xiě)操作SCLK的第7個(gè)脈沖下降沿進(jìn)入休眠。因此,系統向AD7890寫(xiě)操作至少需要6個(gè)時(shí)鐘脈沖,使其休眠的寫(xiě)操作至少需要7個(gè)時(shí)鐘脈沖。如果在6個(gè)時(shí)鐘脈沖前TFS回到高電平,則不會(huì )有任何數據寫(xiě)入控制寄存器。但是需要注意的是,當CONV位置為1時(shí),轉換過(guò)程都會(huì )在寫(xiě)操作發(fā)生時(shí)開(kāi)始,無(wú)論TFS的低電平能夠保持多少個(gè)時(shí)鐘脈沖。
CONVST為轉換開(kāi)始時(shí)的硬件輸入端,上升沿觸發(fā)。AD7890可以由CONVST輸入或CONV位寫(xiě)1兩種方式啟動(dòng)。如前所述,從轉換過(guò)程開(kāi)始到正式啟動(dòng)A/D轉換器的時(shí)間間隔是由每次串行寫(xiě)操作啟動(dòng)的內部延時(shí)脈沖來(lái)控制。這也意味著(zhù)該脈沖總會(huì )給軟件啟動(dòng)的轉換過(guò)程帶來(lái)一定的延時(shí)。若內部延時(shí)時(shí)間已到,由CONVST上升沿開(kāi)始的A/D轉換時(shí)間為9.5μs,跟蹤/保持器的采集時(shí)間為2μs。另外,為了保證正常的A/D轉換,任何串行讀寫(xiě)操作均不可在A(yíng)/D轉換期間及下次轉換開(kāi)始前500 ns內進(jìn)行。
4 AD7890的讀寫(xiě)操作
AD7890串行數據輸入引腳是DATA IN,寫(xiě)操作時(shí)通過(guò)該引腳向AD7890控制寄存器寫(xiě)入數據,寫(xiě)入時(shí)用傳輸幀同步TFS變?yōu)榈碗娖胶骃CLK的前5個(gè)下降沿寫(xiě)入DATA IN上串行數據的前5位。而同一次TFS中的5個(gè)SCLK脈沖下降沿以后的串行數據均無(wú)效。
串行數據輸出引腳是DATA OUT,輸出數據由1位起始位(O)、3位通道地址和由最低有效位開(kāi)始的12位轉換數據共16位組成。輸出數據碼制,在雙極性輸入型(AD7890-10)中為補碼,在單極性輸入型(AD7890-4和AD7890-2)中為無(wú)符號的二進(jìn)制數。
AD7890-4的讀寫(xiě)操作在不同工作模式下略有區別,其時(shí)序如圖3所示。

內部時(shí)鐘模式讀操作時(shí)序如圖3(a)所示,轉換結束后RFS自動(dòng)變?yōu)榈碗娖?,同時(shí)開(kāi)始輸出SCLK脈沖和串行數據,每位數據在SCLK下降沿時(shí)有效。RFS在第16個(gè)SCLK上升沿時(shí)刻變?yōu)楦唠娖?。DA-TA OUT數據結束。內部時(shí)鐘寫(xiě)操作時(shí)序如圖3(b)所示,TFS輸入為低電平表示寫(xiě)操作的開(kāi)始,同時(shí)也啟動(dòng)SLCK的輸出,DATA IN上的串行數據在SCLK的下降沿寫(xiě)入,故寫(xiě)入操作至少需要6個(gè)SCLK脈沖。
外部時(shí)鐘模式讀操作時(shí)序如圖3(c)所示,從RFS低電平開(kāi)始讀取16位串行數據,為保證正常操作,無(wú)論RFS和SCLK的時(shí)間關(guān)系如何,起始位O都將維持至少一個(gè)SCLK脈沖周期,并在第一個(gè)脈沖周期之后的第一個(gè)下降沿時(shí)結束。此外,在讀操作進(jìn)行中若有新的A/D轉換結束,則輸出數據寄存器的刷新會(huì )被延遲到讀操作完成和RFS返回到高電平后進(jìn)行。外部時(shí)鐘模式寫(xiě)操作時(shí)序如圖3(c)所示,串行數據寫(xiě)操作在TFS變?yōu)榈碗娖綍r(shí)開(kāi)始,5位控制寄存器寫(xiě)操作至少需要6個(gè)SCLK脈沖,與內部時(shí)鐘寫(xiě)操作工作模式相同。
5 應用實(shí)例
AD7890在51系列單片機系統中的應用實(shí)例硬件接口原理如圖4所示。系統采用外部時(shí)鐘工作模式,用89C52的P1.3口作為時(shí)鐘輸出;P1.0口連接串行數據輸入和輸出。也可以應用5l系列單片機的串口RXD和TXD連接AD7890實(shí)現數據讀寫(xiě)操作,此時(shí)需要特別注意的是AD7890的串行數據總是最高有效位在前,而51系列單片機串行通信收發(fā)操作總是最低有效位在前。P1.1、P1.2分別連接RFS可和TFS。MUX OUT和SHA IN直接連接,這種連接方式的缺點(diǎn)是系統不能同時(shí)訪(fǎng)問(wèn)控制寄存器和輸出數據寄存器。內部延時(shí)脈沖寬度只需考慮2 μs的跟蹤/保持器采集時(shí)間,因此電容C的最小容值可以為120 pF。
軟件啟動(dòng)AD7890轉換的C51函數程序框圖如圖5所示。執行中由實(shí)際參數傳遞欲轉換的通道地址(0x00--Ox07對應VINl-VIN8),將通道地址A2、Al、A0分別送控制字第7位、第6位和第5位??刂谱值?位置1作為CONV標志。如果寫(xiě)入的是置電路為休眠狀態(tài)的命令,則應將控制字第3位也置為1。通過(guò)P1.2置TFS為低電+平并在SCLK脈沖作用下串行輸出控制字。經(jīng)過(guò)軟件延時(shí)等待,延時(shí)時(shí)間大于內部延時(shí)脈沖加5.9μs的A/D轉換時(shí)間。當主頻為11.0592 MHz時(shí),89C52系統的1個(gè)機器周期約為l.085μs。所以執行空操作至少8次后再發(fā)送RFS命令,進(jìn)行讀操作。讀操作過(guò)程中主機在SCLK脈沖同步下讀入16個(gè)串行數據。轉換結果在函數返回數字中的低12位中。若采用硬件啟動(dòng)方式,則需要先將控制寄存器CONV標志寫(xiě)0,然后用P3.2口輸出A/D轉換啟動(dòng)命令。由于沒(méi)有加入內部延時(shí)脈沖,因此如果不改變轉換通道,硬件啟動(dòng)方式可以得到最快的轉換速率。

下面是應用實(shí)例的C51程序清單。實(shí)例中所用軟硬件條件為:89C52單片機、11.0592 MHz時(shí)鐘、AD7890-10和V2.40版本KEIL Cx51開(kāi)發(fā)工具。


電容器相關(guān)文章:電容器原理
51單片機相關(guān)文章:51單片機教程
單片機相關(guān)文章:單片機教程
單片機相關(guān)文章:單片機視頻教程
單片機相關(guān)文章:單片機工作原理
評論