并行模數(shù)轉(zhuǎn)換器ADS8364與TMS320F2812的接口設(shè)計(jì)
(2)時(shí)鐘部分:為DSP芯片提供時(shí)鐘一般有兩種方法。一種是采用晶體,一種是采用外部有源時(shí)鐘芯片。本設(shè)計(jì)采用前者。它利用了DSP芯片內(nèi)部所提供的晶振電路,在DSP芯片的X1和X2之間連接一晶體可啟動(dòng)內(nèi)部振蕩器。
(3)仿真部分:這一部分將作為程序的調(diào)試和燒錄所用。2812芯片提供了5個(gè)標(biāo)準(zhǔn)的JTAG信號(hào)(TRST、TCK、TMS、TDI、TDO)和兩個(gè)仿真引腳(EMU0、EMU1)。
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。
在這個(gè)設(shè)計(jì)中,ADS8364采用的是4MHz時(shí)鐘。每個(gè)通道的吞吐率最大可達(dá)200ksps。將ADS的地址線(xiàn)A[2:0]接到TMS320F2812的地址線(xiàn)。當(dāng)A0接到數(shù)字地,A2和A1接到VCC上可迫使ADS8364進(jìn)入周期模式。在這個(gè)模式中,轉(zhuǎn)換器可自動(dòng)對(duì)六個(gè)通道進(jìn)行采樣,并可將數(shù)據(jù)按從A0到C1的順序傳送到輸出端。
將ADS8364的BYTE引腳接到VCC上,可以使能字節(jié)模式。在這個(gè)模式中,要從ADC中正確地讀取數(shù)據(jù),需要對(duì)每個(gè)通道進(jìn)行兩次連續(xù)的讀操作。第一次讀取的是轉(zhuǎn)換數(shù)據(jù)的高位字節(jié),第二次讀取的是低位字節(jié)。假如通道信息要作為數(shù)據(jù)輸出的一部分,那么,應(yīng)將ADS8364的ADD引腳也接到VCC。讀取數(shù)據(jù)時(shí),需要對(duì)ADS8364的每個(gè)通道進(jìn)行三次讀操作。第一次讀取通道和數(shù)據(jù)信息,后兩次分別讀取高位和低位數(shù)據(jù)。
3.3 ADC的初始化操作
觸發(fā)ADS8364的復(fù)位引腳RST可以確保讀指針指向第一個(gè)數(shù)據(jù)位置。作為T(mén)MS320F2812初始化的一部分,由TMS320F2812的通用輸入輸出口GPIOF0提供給ADS8364的引腳RST。當(dāng)系統(tǒng)時(shí)鐘穩(wěn)定后,被觸發(fā)為低電平,從而確保了從ADC輸出的數(shù)據(jù)對(duì)應(yīng)于通道A0、A1、B0、B1、C0、C1的排列。
對(duì)于每一個(gè)轉(zhuǎn)換通道,EOC均是低電平信號(hào)。 ADS8364可為T(mén)MS320F2812提供三個(gè)脈沖。每個(gè)脈沖信號(hào)表明一個(gè)轉(zhuǎn)換的結(jié)束。當(dāng)ADC的這三個(gè)引腳同時(shí)置低時(shí),三個(gè)通道被認(rèn)為有效并同時(shí)進(jìn)行轉(zhuǎn)換。另外,EOC引腳也可被連接到TMS320F2812的一個(gè)中斷引腳,以觸發(fā)一個(gè)讀周期。
ADS8364的片選CS是一個(gè)有源低電平輸入信號(hào)。當(dāng)CS為高時(shí),并行輸出引腳處于高阻態(tài)。當(dāng)CS為低時(shí),并行數(shù)據(jù)線(xiàn)反映了輸出緩沖器的當(dāng)前狀態(tài)。為了正確地從ADS8364的并行數(shù)據(jù)總線(xiàn)上讀取數(shù)據(jù),ADS8364必須被片選CS選中后才能進(jìn)行讀操作。
ADS8364的讀(RD)信號(hào)端也是有源低電平信號(hào)。當(dāng)CS為低時(shí),在讀信號(hào)(RD)的下降沿,ADS8364 中寄存器的內(nèi)容將被更新。這意味著在每個(gè)讀序列之前,RD信號(hào)必須被觸發(fā),這樣才能更新輸出緩沖器。通過(guò)TMS320F2812的中斷子程序?qū)DS8364的RD引腳置低可以保存輸入的數(shù)據(jù),之后可再將RD引腳置高。
ADS8364與TMS320F2812的連接圖
4 初始化編程
(1)頭文件(.H)的編寫(xiě):主要用來(lái)定義片內(nèi)寄存器以便函數(shù)中引用
例如:系統(tǒng)控制與狀態(tài)寄存器的定義:
struct SCSR_BITS
{ // 位描述
Uint16 WDOVERRIDE:1; // 0 允許看門(mén)狗無(wú)效位
……};
union SCSR_REG
{
Uint16 all;
struct SCSR_BITS bit;
};
此外頭文件中還聲明一些全局函數(shù)和常量。
評(píng)論