由于DSP有先進的并行結構使其特別適合于信號處理,故已經越來越多的應用于工業(yè)控制領域和各類儀器儀表的開發(fā)設計。而在用數字信號微處理器構成的智能儀器儀表中,外部的各種模擬信號必須通過A/D轉換器變換為數字信號后才能送入微處理器芯片。而BB公司的高精度轉換器ADS7805具有較高的性能價格比,最高的轉換頻率可達100KHz,在儀器儀表中得到廣泛的應用。ads7805芯片有28腳雙排直插式或貼片式封裝,只需單端5V電源供電即可正常工作;芯片內部含有采樣保持、電壓基準和時鐘等電路,極大簡化用戶的電路設計,同時提高了系統(tǒng)的穩(wěn)定性。ADS7805采用CMOS工藝制造,功耗低(最大功耗為100mW),單通道輸入,模擬輸入電壓的范圍為±10V,采用逐次逼近式工作原理,轉換結果由16位數據線并行輸出,啟動轉換和讀取上次轉換的結果可以同時進行。 1、引腳及功能 ADS7805共有28個引腳,圖1為其引腳圖。這些引腳大體可以劃分為3類。 i. 電源類 數字電源Vdig(28腳)和模擬電源Vana(27腳)通常一起接到5V電源上;數字地DGND(14腳)和模擬地AGND1(2腳)、AGND2(5腳)通常共地;參考電壓端REF(3腳)對地接2.2μF鉭電容,則芯片內部就會產生2.5V基準電壓;參考電容端CAP(4腳)對地接2.2μF鉭電容。 ii.信號類 模擬信號輸入端Vin(1腳);D15~D8(6腳到13腳)與D7~D0(15腳到22腳)為數字信號并行輸出口。 iii.控制信號類 片選信號輸入端/CS(25腳);讀取結果/模數轉換控制信號輸入端R/C(24腳);轉換結果指示輸出端/BUSY(26腳);控制從總線讀出的數據是轉換結果的高字節(jié)還是低字節(jié)信號輸入端BYTE(23腳)。 2、 啟動A/D轉換和讀取轉換結果 美國BB公司生產的ADS78XX系列A/D轉換器的啟動轉換和讀取轉換結果的時序都比較特別,且大致相同,ADS7805的轉換時序圖如圖2所示。 圖2 ADS7805的轉換時序圖 首先要在R/C引腳輸入一個低電平信號,此低電平信號的持續(xù)時間要求在40~7000ns之間;這時BUSY引腳電平被拉低表示正在進行轉換,在經過了大約8μs(即為/BUSY信號保持低電平的時間)以后,轉換完成,BUSY引腳電平相應變高;再把R/C腳電平拉高,此時ADS7805就會將轉換結果輸出到數據總線上。雖然轉換結果為16位,但對于具有16位數據總線的DSP微處理器而言,不必分兩次讀入,故可將BYTE腳從始至終同一信號電平,當BYTE腳為高電平時,Pin6~13輸出低字節(jié),Pin15~22輸出高字節(jié);反之當BYTE腳為低電平時,Pin6~13輸出高字節(jié),Pin6~13輸出低字節(jié)。如果用/CS引腳來控制ADS7805的轉換,其時序同R/C引腳相似,故這里就不詳細說明。ADS7805轉換得到的數字結果是以補碼形式給出的,現(xiàn)給出其理想的數據轉換表,表1所列即為ADS7805的模擬電壓與其補碼形式的數字輸出關系, -10V~9.99512V為量程 表1 模擬電壓輸入和數字信號輸出關系 3、 與DSP的接口 TI公司的16-bit定點DSP TMS320F206,是一種低功耗器件,采用了改進的哈佛結構,有1條程序總線和3條數據總線,流水線操作,有高度并行32-bit算術邏輯單元、16*16-bit并行硬件乘法器、片內存儲器、片內外設和高度專業(yè)化的指令集。當TMS320F206外接16MHZ的晶振,工作時鐘控制模式選為×1時,可以將ADS7805的/CS腳接到DSP的/RD信號引腳,但為了減少控制線,可以將/CS引腳直接接成低電平,R/C引腳接到DSP的擴展輸出口,而/BUSY信號只需連接到普通的端入端口即可,如DSP的IO口、擴展芯片74LS244的輸入口等。圖3是一個ADS7805與TMS320F206的典型接口電路。 4、 C語言程序設計 TMS320F206的用戶可以用匯編語言或C語言進行源程序的編寫,而C語言開發(fā)出的系統(tǒng)易于維護,可靠性高,可移植性好,故下面介紹用C語言編寫的ADS7805的開發(fā)程序。 源程序如下: #include #include ioport unsigned int port90ac; ioport unsigned int porte0f7; #define ic273n port90ac #define ads7805 porte0f7 #define Wait asm(" nop "); int i, ia[8]; double bv_coil,IA; reg_aspcr=0x0e00; reg_iosr=0x0000; asm( " clrc intm "); ic273n=0x0008; Wait; for(i=0;i 2; return();) ic273n=0x0008; Wait; ia[ i]=(int)(ads7805&0xffff); } 5、 結束語 ADS7805為16位的A/D轉換器,它不僅分辨率高、轉換速度快,而且接口簡單方便、應用靈活,因而具有廣泛的應用前景。筆者在GKNDC-H型高壓開關特性精密測量儀中就使用了ADS7805,并取得了很好的測量效果。 |