ADS8364與TMS320F2812的接口設(shè)計方案
1 芯片簡介
ADS8364是美國TI公司的一種高速、低能耗、6通道同步采樣轉(zhuǎn)換,單十5V供電的16位高速并行接口的高性能模數(shù)轉(zhuǎn)換芯片,片上帶2.5V基準電壓源,可用作ADS8364的參考電壓。每片ADS8364實際由3個轉(zhuǎn)換速率為250kb/s(當外部時鐘為5MHz)的ADC構(gòu)成,每個ADC有2個模擬輸入通道,每個通道都有采樣保持器,3個ADC組成3對模擬輸入端,可同時對其中的1~3對輸入信號同時采樣保持,然后逐個轉(zhuǎn)換。由于6個通道可以同時采樣,適用于需同時采集多種信號的場合。
TMS320F2812是TI公司推出的一款用于控制系統(tǒng)的高性能、多功能、高性價比的32位定點DSP芯片。TMS320F2812采用哈佛總線結(jié)構(gòu),具有密碼保護機制,可在一個周期內(nèi)進行雙16×16乘加和32×32乘加操作,從而兼顧控制和快速運算的雙重功能;芯片上集成了多種外設(shè),尤其是2個事件管理器為電動機以及功率變換控制提供了很大的便利,特別適用于有大批量數(shù)據(jù)處理的測控場合。
2 ADS8364的工作原理
ADS8364的最大工作頻率可達5MHz,采樣/轉(zhuǎn)換可在20個轉(zhuǎn)換時鐘周期內(nèi)完成。ADS8364的六個通道可以同時進行采樣/轉(zhuǎn)換。吞吐率最大可達250ksps。ADS8364采用+5V工作電壓,并帶有80DB共模抑制的全差分輸入通道以及六個4μs連續(xù)近似的模數(shù)轉(zhuǎn)換器、六個差分采樣放大器。另外,在REFIN和REFOUT引腳內(nèi)部還帶有+2.5V參考電壓。ADS8364的差分輸入可在-VREF到+VREF之間變化。三個保持信號(HOLDA、HOLDB、HOLDC)可以啟動指定通道的轉(zhuǎn)換。當三個保持信號同時被選通時,其轉(zhuǎn)換結(jié)果將保存在六個寄存器中。對于每一個讀操作,ADS8364均輸出十六位數(shù)據(jù),地址/模式信號(A0,A1,A2)可以選擇如何從ADS8364讀取數(shù)據(jù),也可以選擇單通道、單周期或FIFO模式。在ADS8364的HOLDX保持至少20ns的低電平時,轉(zhuǎn)換開始。當轉(zhuǎn)換結(jié)果被存入輸出寄存器后,引腳EOC的輸出將保持半個時鐘周期的低電平。另外,通過置RD和CS為低電平可使數(shù)據(jù)讀出到并行輸出總線。
ADS8364工作時序圖
3 ADS8364與TMS320F2812的接口電路
3.1 TMS320F2812的最小系統(tǒng)設(shè)計
?。?)電源和復(fù)位部分:本設(shè)計采用外部5V直流電壓供電。通過DC/DC器件產(chǎn)生3.3V的內(nèi)核電壓VDD和1.8V的I/O電壓VDDIO電壓。電源芯片TPS767D318為雙電源輸出,一路為3.3V、一路為1.8V。每路電源的最大輸出電流為1A。本設(shè)計的復(fù)位信號分兩種:上電復(fù)位、手動復(fù)位。上電復(fù)位由芯片TPS767D318產(chǎn)生,手動復(fù)位由電阻電容組成的電路產(chǎn)生。
?。?)時鐘部分:為DSP芯片提供時鐘一般有兩種方法。一種是采用晶體,一種是采用外部有源時鐘芯片。本設(shè)計采用前者。它利用了DSP芯片內(nèi)部所提供的晶振電路,在DSP芯片的X1和X2之間連接一晶體可啟動內(nèi)部振蕩器。
?。?)仿真部分:這一部分將作為程序的調(diào)試和燒錄所用。2812芯片提供了5個標準的JTAG信號(TRST、TCK、TMS、TDI、TDO)和兩個仿真引腳(EMU0、EMU1)。
3.2 ADS8364的接口設(shè)計
ADS8364采用+5V模擬電源(AVDD)和數(shù)字電源(DVDD),而其內(nèi)部的緩沖器采用與TMS320F2812相同的+3.3V電壓。緩沖器電壓(BVDD)允許直接連接到3V或5V電壓系統(tǒng)。TMS320F2812的I/O電壓為+3.3V,因此,若使用該元件,ADS8364的BVDD必須設(shè)置成3.3V。
將ADS8364的BYTE引腳接到VCC上,可以使能字節(jié)模式。在這個模式中,要從模擬中正確地讀取數(shù)據(jù),需要對每個通道進行兩次連續(xù)的讀操作。第一次讀取的是轉(zhuǎn)換數(shù)據(jù)的高位字節(jié),第二次讀取的是低位字節(jié)。假如通道信息要作為數(shù)據(jù)輸出的一部分,那么,應(yīng)將ADS8364的ADD引腳也接到VCC。讀取數(shù)據(jù)時,需要對ADS8364的每個通道進行三次讀操作。第一次讀取通道和數(shù)據(jù)信息,后兩次分別讀取高位和低位數(shù)據(jù)。
3.3 ADC的初始化操作
觸發(fā)ADS8364的復(fù)位引腳RST可以確保讀指針指向第一個數(shù)據(jù)位置。作為TMS320F2812初始化的一部分,由TMS320F2812的通用輸入輸出口GPIOF0提供給ADS8364的引腳RST。當系統(tǒng)時鐘穩(wěn)定后,被觸發(fā)為低電平,從而確保了從ADC輸出的數(shù)據(jù)對應(yīng)于通道A0、A1、B0、B1、C0、C1的排列。
ADS8364的片選CS是一個有源低電平輸入信號。當CS為高時,并行輸出引腳處于高阻態(tài)。當CS為低時,并行數(shù)據(jù)線反映了輸出緩沖器的當前狀態(tài)。為了正確地從ADS8364的并行數(shù)據(jù)總線上讀取數(shù)據(jù),ADS8364必須被片選CS選中后才能進行讀操作。
ADS8364的讀(RD)信號端也是有源低電平信號。當CS為低時,在讀信號(RD)的下降沿,ADS8364 中寄存器的內(nèi)容將被更新。這意味著在每個讀序列之前,RD信號必須被觸發(fā),這樣才能更新輸出緩沖器。通過TMS320F2812的中斷子程序?qū)DS8364的RD引腳置低可以保存輸入的數(shù)據(jù),之后可再將RD引腳置高。
ADS8364與TMS320F2812的連接圖
4 初始化編程
(1)頭文件(.H)的編寫:主要用來定義片內(nèi)寄存器以便函數(shù)中引用。
例如:系統(tǒng)控制與狀態(tài)寄存器的定義:
此外頭文件中還聲明一些全局函數(shù)和常量。
例如:extern void InitAdc(void); //初始化ADC函數(shù)
(2)命令文件(.CMD)的編寫:該文件中用到了兩個偽指令MEMORY和SECTIONS。
MEMORY偽指令用來標示實際存在的目標系統(tǒng)中可被使用的存儲器范圍。
SECTIONS偽指令用來定位一些代碼和數(shù)據(jù)塊。
部分代碼:
?。?)主程序及中斷程序:
5 結(jié)語
本文以ADS8364模數(shù)轉(zhuǎn)換芯片為基礎(chǔ),討論了ADS8364和TMS320F2812的接口設(shè)計和工作原理,介紹了TMS320F2812控制芯片的最小系統(tǒng)設(shè)計、ADS8364和TMS320F2812的連接、初始化程序三部分內(nèi)容。該設(shè)計方案在電機控制、多軸定位系統(tǒng)、多通道數(shù)據(jù)采集等場合有著廣泛的應(yīng)用。
評論