DSP2812講義7(研究生2013)模數(shù)轉(zhuǎn)換器(ADC)_第1頁
DSP2812講義7(研究生2013)模數(shù)轉(zhuǎn)換器(ADC)_第2頁
DSP2812講義7(研究生2013)模數(shù)轉(zhuǎn)換器(ADC)_第3頁
DSP2812講義7(研究生2013)模數(shù)轉(zhuǎn)換器(ADC)_第4頁
DSP2812講義7(研究生2013)模數(shù)轉(zhuǎn)換器(ADC)_第5頁
已閱讀5頁,還剩122頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、F2812模/數(shù)轉(zhuǎn)換器(ADC)模數(shù)轉(zhuǎn)換器模塊的結(jié)構(gòu)2812的ADC模塊是一個(gè)12位分辨率的、具有流水線結(jié)構(gòu)的模數(shù)轉(zhuǎn)換器,具有16個(gè)通道。對(duì)于每個(gè)序列發(fā)生器,一旦轉(zhuǎn)換結(jié)束,已選擇采樣的通道值就會(huì)被保存到各個(gè)通道的結(jié)果寄存器中去??偣灿?6個(gè)結(jié)果寄存器ResultReg0ResultReg15,用于分別保存16個(gè)通道的轉(zhuǎn)換結(jié)果。2812內(nèi)部?jī)?nèi)部ADC的特點(diǎn)的特點(diǎn)模數(shù)轉(zhuǎn)換模塊應(yīng)用實(shí)例ADCINA2ADCINA3程序設(shè)計(jì)F2812硬件電路設(shè)計(jì)F2812封裝形式與引腳定義引腳說明不同硬件模塊的設(shè)計(jì)1.時(shí)鐘電路F28x系列的芯片提供了兩種不同的產(chǎn)生時(shí)鐘方案:利用電路板上的內(nèi)部晶體振蕩器或者利用外部時(shí)鐘。

2、基本外部輸入的時(shí)鐘頻率是在20MHz-35MHz范圍內(nèi)。芯片上的時(shí)鐘鎖環(huán)既(PL L)可以來倍頻輸入的時(shí)鐘頻率連接到CLKIN引腳上的外部時(shí)鐘可以和CPU工作的最大頻率是一樣的。CPU工作頻率的范圍很大,將來的所有外設(shè)的時(shí)鐘信號(hào)都是從CPU時(shí)鐘信號(hào)得來。一般來說對(duì)于時(shí)鐘信號(hào)而言發(fā)生概率最大的頻率被選擇為獲取最大的運(yùn)行速度然而電源的消耗是和CPU的時(shí)鐘頻率成線性關(guān)系.內(nèi)部晶振和外部晶振時(shí)鐘產(chǎn)生電路首先要考慮的是利用內(nèi)部的晶振還是外部時(shí)鐘源,或其它系統(tǒng)中的其它設(shè)備。一個(gè)基本的選擇標(biāo)準(zhǔn)是成本問題。一個(gè)晶振和內(nèi)部振蕩需要的一些器件通常要比外部振蕩器便宜,因此利用晶振和內(nèi)部的振蕩電路是最好的選擇。除非需

3、要系統(tǒng)的其它設(shè)備來提供同樣的時(shí)鐘。因?yàn)椴煌扑]使用利用外加的器件和振蕩電路連接在一起的方法,所以唯一的選擇是利用F28xx時(shí)鐘輸出或利用寬脈沖調(diào)制時(shí)鐘連接到系統(tǒng)中其它設(shè)備時(shí)鐘發(fā)生器。然而DSP芯片不是經(jīng)常在晶體的頻率下工作,所以如果系統(tǒng)中的其它設(shè)備需要同樣的時(shí)鐘利用外部振蕩器是比較簡(jiǎn)單的,通常也是大家喜歡采用一種方法。F28xx/F28xxx芯片的內(nèi)部振蕩電路能夠把晶振和X1、X2引腳直接相連,X1引腳通常是數(shù)字參考電壓(VDD) , X2引腳是內(nèi)部振蕩的輸出,晶振直接和X1 , X2引腳直接相連,如果引腳X2不用,必須懸空。F281x芯片有相同的引腳X1和XCLKIN。a. 利用內(nèi)部振蕩器圖3

4、顯示了利用晶振來連接的外部電路上拉電容的大小根據(jù)等式而定。它和兩個(gè)外部電容有關(guān)。外部時(shí)鐘的模式控制著是否使用內(nèi)部的晶振。當(dāng)使用內(nèi)部的振蕩器時(shí)選擇讓內(nèi)部的晶振可用的時(shí)鐘模式。有效的負(fù)載電容C(Load),在振蕩電路中是C1和C2并聯(lián)的等效電容。正確的有效負(fù)載電容對(duì)于正確的運(yùn)行頻率是非常重要的對(duì)于不同的負(fù)載電容的值都有不同的晶振與其對(duì)應(yīng)但是內(nèi)部的數(shù)字控制器振蕩器對(duì)于太高或太低的負(fù)載電容是沒法工作的可以從晶振的廠商的數(shù)據(jù)手冊(cè)得到更多的信息。并聯(lián)諧振模式需要的負(fù)載電容大概是12pF等效電阻是30-60W。由于PCB板布局和數(shù)字控制器焊錫的兼容性問題,有效的C1和C2的值一般不大于5 pf。布局電路板也

5、是非常重要的方面。如果想要得到準(zhǔn)確的頻率控制器那么準(zhǔn)確的離散電容值要根據(jù)利用頻率計(jì)數(shù)器測(cè)量的電容和頻率的準(zhǔn)確關(guān)系來定。b.利用外部振蕩器為了選擇合適的外部振蕩器需要考慮頻率、穩(wěn)定性、時(shí)效性、上升和下降時(shí)間、占空比、信號(hào)電平等問題設(shè)計(jì)者必須考慮到時(shí)鐘偏差的問題。必須注意事項(xiàng)是,只有F28xxx芯片能接收VDD (1.8 V/1.9 V)或者3.3 V的外部時(shí)鐘的電壓,F(xiàn)281x時(shí)鐘信號(hào)應(yīng)該在0和電壓值之間變換。F280 x和F28xxx連接外部振蕩器的輸出如圖4所示X1或XCLKIN引腳必須連接地如果它們都被懸空的話,那么CLKOUT引腳的頻率就會(huì)不正確,數(shù)據(jù)控制器也不能正常工作。F281x芯片

6、設(shè)備選擇外部時(shí),鐘振蕩器的電壓時(shí)電壓范圍在0 -V DD (0 - 1.8V/1.9V)之間。2.電源電路設(shè)計(jì)采用雙電源供電3.通用輸入/輸出(GPIO) 絕大部分是多功能復(fù)用引腳,通過GPIOMUX寄存器來選擇配置具體的功能。 可以獨(dú)立操作也可以作為外設(shè)I/O信號(hào)(通過GPxMUX寄存器配置)使用。 如果引腳工作在數(shù)字量I/O模式,通過方向控制寄存器(GPxDIR)控制數(shù)字量I/O的方向,并可以通過量化寄存器(GPxQUAL)量化輸入信號(hào),消除外部噪聲信號(hào) GPIO多路復(fù)用器的各寄存器如下:通用輸入/輸出(GPIO)GPIO A 功能選擇控制寄存器功能選擇控制寄存器GPIO B 功能選擇控制

7、寄存器功能選擇控制寄存器GPIO D功能選擇控制寄存器功能選擇控制寄存器GPIO E功能選擇控制寄存器功能選擇控制寄存器GPIO F功能選擇控制寄存器功能選擇控制寄存器GPIO G功能選擇控制寄存器功能選擇控制寄存器GPIO A 方向控制寄存器方向控制寄存器GPIO B方向方向控制寄存器控制寄存器GPIO D方向方向控制寄存器控制寄存器GPIO E方向方向控制寄存器控制寄存器GPIO F方向方向控制寄存器控制寄存器GPIO G方向方向控制寄存器控制寄存器GPIO A 輸入量化寄存器輸入量化寄存器GPIO B 輸入量化寄存器輸入量化寄存器GPIO D 輸入量化寄存器輸入量化寄存器GPIO E 輸

8、入量化寄存器輸入量化寄存器C28xGPIO寄存器結(jié)構(gòu) 如果多功能引腳配置成數(shù)字I/O模式,芯片將用寄存器來對(duì)相應(yīng)的引腳進(jìn)行操作。 GPxSET寄存器設(shè)置每個(gè)I/O信號(hào) GPxCLEAR寄存器清除每個(gè)I/O信號(hào) GPxTOGGLE寄存器反轉(zhuǎn)觸發(fā)各個(gè)I/O信號(hào) GPxDAT寄存器讀寫各個(gè)I/O信號(hào)。 GPIO數(shù)據(jù)寄存器如下GPIO A 數(shù)據(jù)寄存器數(shù)據(jù)寄存器GPIO B 數(shù)據(jù)寄存器數(shù)據(jù)寄存器GPIO D 數(shù)據(jù)寄存器數(shù)據(jù)寄存器GPIO A 置位寄存器置位寄存器GPIO B 置位寄存器置位寄存器GPIO D 置位寄存器置位寄存器GPIO A 清零寄存器清零寄存器GPIO B 清零寄存器清零寄存器GPIO

9、 D 清零寄存器清零寄存器GPIO A 取反寄存器取反寄存器GPIO B 取反寄存器取反寄存器GPIO D 取反寄存器取反寄存器GPIO E 數(shù)據(jù)寄存器數(shù)據(jù)寄存器GPIO F 數(shù)據(jù)寄存器數(shù)據(jù)寄存器GPIO G 數(shù)據(jù)寄存器數(shù)據(jù)寄存器GPIO E 置位寄存器置位寄存器GPIO F 置位寄存器置位寄存器GPIO G 置位寄存器置位寄存器GPIO E 清零寄存器清零寄存器GPIO F 清零寄存器清零寄存器GPIO G 清零寄存器清零寄存器GPIO E 取反寄存器取反寄存器GPIO F 取反寄存器取反寄存器GPIO G 取反寄存器取反寄存器 GPIO的數(shù)據(jù)輸入功能和外設(shè)輸入功能的路徑總是暢通的,而數(shù)字輸

10、出功能和外設(shè)輸出功能要通過多路開關(guān)切換。 引腳的輸出緩沖器總是連回到輸入緩沖器,所以作為數(shù)字I/O使用時(shí),輸出數(shù)字信號(hào)可能會(huì)傳到外設(shè)輸入,從而意外觸發(fā)中斷。 因此,當(dāng)引腳配置成數(shù)字I/O時(shí),引腳相應(yīng)的外設(shè)功能(包括中斷)必須被禁止。GPIO的功能選擇框圖C28xGPIO功能框圖 10MUX Control Bit0 = I/O Function1 = Primary FunctionPinPrimaryPeripheralFunctionI/O DATBit (R/W)InOutI/O DIR Bit0 = Input1 = OutputGPxMUXGPxDIRGPxDATGPxSETGPxC

11、LEARGPxTOGGLEQUALPRDreservedSome digital I/O andperipheral I/O inputsignals include an Input Qualificationfeature多路復(fù)用器的寄存器 GPIO口通過功能控制、方向、數(shù)據(jù)、設(shè)置、清除和反轉(zhuǎn)觸發(fā)寄存器來控制 1.GPxMUX功能選擇寄存器,配置I/O工作在外設(shè)操作模式或數(shù)字量I/O模式。在復(fù)位使所有GPIO配置成I/O功能。 如果GPxMUX.bit=0,配置為I/O功能; 如果GPxMUX.bit=1,配置為外設(shè)功能。 IO的輸入功能和外設(shè)的輸入通道總是被使能的,輸出通道是GPIO和外

12、設(shè)公用的。因此,引腳如果配置成為IO功能,就必須屏蔽相應(yīng)的外設(shè)功能,否則,將會(huì)產(chǎn)生隨機(jī)的中斷信號(hào)。 2.GPxDIR方向控制寄存器,用來配置IO的方向(輸入/輸出)。復(fù)位時(shí),所有GPIO為輸人。 如果GPxDIR.bit=0,引腳配置為數(shù)字量輸人; 如果GPxDIR.bit=1,引腳配置成數(shù)字量輸出。 3.GPxDAT數(shù)據(jù)寄存器,如果IO配置為輸入,反映當(dāng)前經(jīng)過量化后IO輸人信號(hào)的狀態(tài)。如果IO配置為輸出,向寄存器寫值設(shè)定IO的輸出。 如果GPxDAT.bit=0,且設(shè)置為輸出功能,將相應(yīng)的引腳拉低; 如果GPxDAT.bit=1,且設(shè)置為輸出功能,將相應(yīng)的引腳拉高。 4.GPxSET設(shè)置寄存

13、器,是只寫寄存器,任何讀操作都返回0。如果相應(yīng)的引腳配置成數(shù)字量輸出,寫1后相應(yīng)的引腳將被拉高,寫0時(shí)沒有影響。 如果GPxSET.bit=0,沒有影響; 如果GPxSET.bit=1,且引腳設(shè)置為輸出,將相應(yīng)的引腳置成高電平。 5.GPxCLEAR清除寄存器,是只寫寄存器,任何讀操作都返回o。如果相應(yīng)的引腳配置成數(shù)字量輸出,寫1后相應(yīng)的引腳將被拉低,寫0時(shí)沒有影響。 如果GPxCLEAR.bit=0,沒有影響; 如果GPxCLEAR.bit=1,且引腳設(shè)置為輸出,將相應(yīng)的引腳置成低電平。 6.GPxTOGGLE反轉(zhuǎn)觸發(fā)寄存器,是只寫寄存器,任何讀操作都返回0。如果相應(yīng)的引腳配置成數(shù)字量輸出,

14、寫1后相應(yīng)的引腳信號(hào)將被取反。寫0時(shí)沒有影響。 如果GPxTOGGLE.bit=0,沒有影響; 如果GPxTOGGLE.bit=1,且引腳設(shè)置為輸出,將相應(yīng)的引腳取反。 7.GPxQUAL量化寄存器 每個(gè)I/O接口都有一個(gè)輸入量化寄存器,該寄存器可讀可寫,可以設(shè)置D7D0位改善輸入信號(hào),去除噪聲。D7D00 x00與與SYSCLKOUT同步同步0 x01QUALPRD=SYSCLKOUT/20 x02QUALPRD=SYSCLKOUT/40 x03QUALPRD=SYSCLKOUT/60 xFEQUALPRD=SYSCLKOUT/5080 xFFQUALPRD=SYSCLKOUT/510 當(dāng)G

15、PIO作為數(shù)字I/O時(shí),GPxQUAL寄存器用來量化采樣周期。 如采樣窗口是6個(gè)采樣周期寬度,那么只有6個(gè)采樣數(shù)據(jù)相同時(shí)輸出才會(huì)改變。 這個(gè)功能可以有效的消除毛刺脈沖(干擾信號(hào))對(duì)輸出信號(hào)的干擾4.3 GPIO應(yīng)用舉例88LED點(diǎn)陣控制4.3.1 硬件電路設(shè)計(jì)74164為串行輸入并行輸出移位寄存器。設(shè)計(jì)中,選擇兩片74164分別控制點(diǎn)陣模塊的行和列,控制數(shù)據(jù)從DSP端口輸出。其中,GPIOF0輸出數(shù)據(jù)與U1的74164的A端口相連,GPIOF1與B口連接,兩個(gè)端口用來輸出對(duì)點(diǎn)陣進(jìn)行顯示控制的數(shù)據(jù),GPIOF2輸出模擬時(shí)鐘脈沖信號(hào),與74164的CLK引腳相連,GPIOF3連接CLR清零端。DS

16、P F2812的GPIOB0-GPIOB3與另外一片74164的A、B、CLR、CLK對(duì)應(yīng)相連。4.3.1.1 88點(diǎn)陣內(nèi)部電路點(diǎn)陣內(nèi)部為排列的88個(gè)發(fā)光二極管,每一個(gè)二極管都在行線和列線的交點(diǎn)處,要同時(shí)受到行和列的控制才能點(diǎn)亮。二極管陣列的正向端分別由COL1-COL8端口控制,負(fù)向端通過端口ROW1-ROW8控制。在驅(qū)動(dòng)某個(gè)點(diǎn)陣點(diǎn)點(diǎn)亮?xí)r,需要同時(shí)控制該發(fā)光二極管正端接高電平,負(fù)端接低電平即可。例如:要使得COL4和ROW4交點(diǎn)處二極管點(diǎn)亮,則需要在端口COL端輸入數(shù)據(jù):00001000(08H),在ROW端輸入:00001000(08H)。4.3.1.2 串行輸入并行輸出移位寄存器7416

17、4功能CLEAR為清零端,CLOCK為時(shí)鐘脈沖輸入端,A、B端口為串行輸入數(shù)據(jù)引腳, Q0Q7為數(shù)據(jù)輸出引腳。從真值表可以看出,CLEAR為邏輯低電平時(shí),無論其他引腳電平信號(hào)如何,從QA-QH端口輸出均為低電平,實(shí)現(xiàn)輸出清零。 A、B輸入信號(hào)為相與的關(guān)系,相與后的結(jié)果送入內(nèi)部RS觸發(fā)器。在CLOCK脈沖信號(hào)的上升沿,采樣輸入腳A、B相與后的結(jié)果,作為內(nèi)部RS觸發(fā)器的輸入信號(hào),根據(jù)輸入數(shù)據(jù)觸發(fā)輸出,從QA端口輸出。在QA端口輸出更新數(shù)據(jù)時(shí),QB端口輸出數(shù)據(jù)為QA端口更新前的QAn,QC端口輸出數(shù)據(jù)為QBn,依次類推。4.3.2 程序設(shè)計(jì)主程序主要包括系統(tǒng)初始化、中斷向量初始化、設(shè)置GPIO端口、

18、控制數(shù)據(jù)傳輸幾個(gè)步驟。4.3.2.1 設(shè)置GPIO端口的配置函數(shù)void Gpio_select(void)EALLOW; GpioMuxRegs.GPBMUX.all=0 x0000; /設(shè)置B組端口為GPIO功能 GpioMuxRegs.GPBDIR.all=0 xFFFF; / 設(shè)置B組端口為輸出端口 GpioMuxRegs.GPFMUX.all=0 x0000; /設(shè)置F組端口為GPIO功能 GpioMuxRegs.GPFDIR.all=0 xFFFF ; / 設(shè)置F組端口為輸出端口 EDIS; 需要注意:EALLOW在DSP28_Device.h頭文件中,通過“#define EAL

19、LOWasm( EALLOW)”在C語言主函數(shù)中嵌入?yún)R編語言指令,匯編指令“EALLOW”其含義為開放存儲(chǔ)器映像寄存器,設(shè)置該命令后,可以對(duì)MMR內(nèi)容進(jìn)行修改。當(dāng)需要配置或修改MMR內(nèi)容時(shí),必須先寫入EALLOW匯編指令。反之,如果不首先寫入EALLOW匯編指令,無法完成對(duì)相應(yīng)MMR內(nèi)容的修改。EDIS:為結(jié)束修改MMR的匯編命令。當(dāng)MMR配置完成后,需要寫入該命令。4.3.2.2 控制數(shù)據(jù)串行輸出函數(shù)void sendto1(unsigned char kdab) unsigned char i; CLK1=0; /控制時(shí)鐘脈沖引腳輸出設(shè)置為低電平 for(i=0;i1; /數(shù)據(jù)右移,提取下

20、一位串行數(shù)據(jù) 74164為串行輸入/并行輸出移位寄存器,控制點(diǎn)陣的數(shù)據(jù)需要從DSP的gpio端口串行輸出。為滿足74164工作時(shí)序,采用GPIO端口模擬74164的工作時(shí)序。從DINC輸出串行輸出數(shù)據(jù),同時(shí),在CLK1腳模擬控制脈沖信號(hào)。 4.3.2.3 輸出字符與字模陣列在點(diǎn)陣模塊中字符的顯示,應(yīng)用字模生成軟件獲得顯示字符的字模,采用動(dòng)態(tài)掃描的控制方式顯示。以在點(diǎn)陣模塊顯示字符“中”為例,首先采用字模提取軟件獲得字符的字模?!爸小弊值淖帜=M合為“10H,F(xiàn)EH,92H,F(xiàn)EH,10H,10H,10H,10H”。在控制顯示時(shí),采用動(dòng)態(tài)掃描的顯示方式。首先將字模中二進(jìn)制數(shù)10H送入點(diǎn)陣模塊的行掃

21、描數(shù)據(jù)輸入端口,然后在列掃描線上輸出控制第一行點(diǎn)陣二極管點(diǎn)亮的數(shù)據(jù)“0111 1111”,則點(diǎn)陣中第一行的第四個(gè)二極管點(diǎn)亮,顯示“中”字上面的一點(diǎn)。接下來,將“FEH” 送入點(diǎn)陣模塊的行掃描數(shù)據(jù)輸入端口,然后在列掃描線上輸出控制第二行點(diǎn)陣二極管點(diǎn)亮的數(shù)據(jù)“1011 1111”,此時(shí),第二行的1-7二極管點(diǎn)亮,顯示出“中”字的上面一橫,之前第一行的第四個(gè)二極管滅。繼續(xù),行端口輸入“92H”,列端口輸入控制第三行二極管點(diǎn)亮的控制信號(hào)“1101 1111”,于是,在第三行上1、4、7二極管亮,其他行滅。依次類推,直到第八行顯示。在編寫程序中,采用數(shù)組數(shù)組dispdata存放行值,用數(shù)組dispbit

22、存放列值。dispdata8=0 x10,0 xFE,0 x92,0 xFE,0 x10,0 x10,0 x10,0 x10, dispbit8=0 x7f,0 xbf,0 xdf,0 xef,0 xf7,0 xfb,0 xfd,0 xfe,用兩個(gè)函數(shù)sendto1(dispbit)和sendto2(dispdata)分別發(fā)送數(shù)據(jù),由此顯示出字模。調(diào)整延時(shí)程序void DELAY() unsigned long k,j; for(k=0;k10;k+) for(j=0;j100;j+);由于掃描速度很快,掃描8列的數(shù)據(jù)在人眼看來是同時(shí)的,所以就可以看到8_8LED字模中顯示的字模。4.3.3

23、參考主程序:#include DSP28_Device.h#include DSP28_Globalprototypes.h/*端口GPIOF0用DINA表示,“#define”為宏定義,以下程序中用字符“DINA”代表成員變量GpioDataRegs.GPFDAT.bit.GPIOF0,增加程序的可讀性。其他端口定義用法相同。*/#define DINA GpioDataRegs.GPFDAT.bit.GPIOF0 #define DINB GpioDataRegs.GPFDAT.bit.GPIOF1#define CLK2 GpioDataRegs.GPFDAT.bit.GPIOF2#de

24、fine CLEAR2GpioDataRegs.GPFDAT.bit.GPIOF3#define DINC GpioDataRegs.GPBDAT.bit.GPIOB0#define DIND GpioDataRegs.GPBDAT.bit.GPIOB1#define CLK1 GpioDataRegs.GPBDAT.bit.GPIOB2#define CLEAR1 GpioDataRegs.GPBDAT.bit.GPIOB3/*程序中引用的函數(shù)定義*/void delay_loop(void); /點(diǎn)陣動(dòng)態(tài)顯示控制的延時(shí)程序void Gpio_select(void); /GPIO端口設(shè)置程

25、序void sendto1(unsigned char kdab); /串行數(shù)據(jù)輸出函數(shù),輸出行掃描數(shù)void sendto2(unsigned char dat); /串行數(shù)據(jù)輸出函數(shù),輸出列掃描數(shù)void DELAY(void); /*定義變量數(shù)組*/unsigned char dispdata8=0 x10,0 xFE,0 x92,0 xFE,0 x10,0 x10,0 x10,0 x10;/顯示字符“中”字的行掃描數(shù)組unsigned char dispbit8=0 x7f,0 xbf,0 xdf,0 xef,0 xf7,0 xfb,0 xfd,0 xfe/顯示字符“中”字的列掃描數(shù)組

26、unsigned char kdab;unsigned char kdat;4.3.3 參考主程序:/*主程序*/void main(void) unsigned char i;InitSysCtrl(); /系統(tǒng)初始化函數(shù)InitPieCtrl(); /初始化PIE模塊到默認(rèn)狀態(tài)InitPieVectTable();Gpio_select(); /設(shè)置端口函數(shù)/*初始化74164各控制引腳*/CLEAR2=0; /74164進(jìn)行清零操作CLEAR1=0; /74164進(jìn)行清零操作CLEAR2=1; /74164復(fù)位CLEAR1=1; /74164復(fù)位CLK1=1; /74164的CLOCK引

27、腳置為高電平CLK2=1; /74164的CLOCK引腳置為高電平DINA=1; /74164數(shù)據(jù)輸入端口置為高電平DINB=1; /74164數(shù)據(jù)輸入端口置為高電平DINC=1; /74164數(shù)據(jù)輸入端口置為高電平DIND=1; /74164數(shù)據(jù)輸入端口置為高電平while(1) sendto1(dispbit0);sendto2(dispdata0);DELAY();sendto1(dispbit1); sendto2(dispdata1);DELAY();sendto1(dispbit2);sendto2(dispdata2); DELAY();sendto1(dispbit3);sen

28、dto2(dispdata3); DELAY(); /*GPIO端口配置函數(shù)*/void Gpio_select(void)EALLOW; GpioMuxRegs.GPBMUX.all=0 x0000; /設(shè)置B組端口為GPIO功能 GpioMuxRegs.GPBDIR.all=0 xFFFF; / 設(shè)置B組端口為輸出端口 GpioMuxRegs.GPFMUX.all=0 x0000; /設(shè)置F組端口為GPIO功能 GpioMuxRegs.GPFDIR.all=0 xFFFF ; / 設(shè)置F組端口為輸出端口 EDIS; /*行掃描數(shù)據(jù)串行輸出函數(shù)*/void sendto1(unsigned

29、char kdab) unsigned char i; kdab=dab; CLK1=0; /控制時(shí)鐘脈沖引腳輸出設(shè)置為低電平 for(i=0;i1; /數(shù)據(jù)右移,提取下一位串行數(shù)據(jù) /*列掃描數(shù)據(jù)串行輸出函數(shù)*/void sendto1(unsigned char kdab) unsigned char i; kdab=dab; CLK1=0; /控制時(shí)鐘脈沖引腳輸出設(shè)置為低電平 for(i=0;i1; /數(shù)據(jù)右移,提取下一位串行數(shù)據(jù) =外部擴(kuò)展接口外部擴(kuò)展接口外部擴(kuò)展接口XINTF(ExternalInterface) F2812的XINTF采用異步非復(fù)用總線結(jié)構(gòu) XINTF采用16位數(shù)據(jù)

30、總線,可提供1M字的尋址空間,用于擴(kuò)展外部存儲(chǔ)器或并行的外設(shè)接口芯片。 F2812不支持I/O空間,當(dāng)用戶需要對(duì)片外設(shè)備進(jìn)行操作時(shí),可以使用XINTF接口,也可以使用哪個(gè)GPIO進(jìn)行擴(kuò)展外部接口有哪些線? 片選信號(hào)線 數(shù)據(jù)總線 地址總線 讀寫使能信號(hào)線、以及其他信號(hào)線。外設(shè)接口描述 外部接口(XINTF)映射到5個(gè)獨(dú)立的存儲(chǔ)空間Zone0、Zone1、Zone2、Zone6、Zone7、 當(dāng)訪問相應(yīng)的存儲(chǔ)空間時(shí),就會(huì)產(chǎn)生一個(gè)片選信號(hào);XINTF的5個(gè)空間共有3個(gè)片選引腳。 其中Zone0、Zone1共用XZCS0AND1。 Zone6、Zone7共用XZCS6AND7。 Zone2單獨(dú)使用片選

31、信號(hào)。 每個(gè)空間都可以獨(dú)立地設(shè)置訪問等待、選擇、建立以及保持時(shí)間,同時(shí)還可以使用XREADY信號(hào)來控制外設(shè)的訪問。 外部接口的訪問時(shí)鐘頻率由內(nèi)部的XTIMCLK提供 XTIMCLK可以等于SYSCLKOUT或SYSCLKOUT/2。3.2.1外設(shè)接口描述,16位數(shù)據(jù)總線位數(shù)據(jù)總線19位地址總線位地址總線寫信號(hào),低電平有效寫信號(hào),低電平有效讀信號(hào),低電平有效讀信號(hào),低電平有效讀寫控制信號(hào)讀寫控制信號(hào)外設(shè)準(zhǔn)備好,高電平有效外設(shè)準(zhǔn)備好,高電平有效設(shè)定為微處理器模式或微計(jì)算機(jī)模式設(shè)定為微處理器模式或微計(jì)算機(jī)模式低電平有效,有效時(shí)表明低電平有效,有效時(shí)表明外設(shè)請(qǐng)求外設(shè)請(qǐng)求XINTF釋放外部釋放外部總線,

32、即將地址、數(shù)據(jù)總總線,即將地址、數(shù)據(jù)總線和宣統(tǒng)信號(hào)置為高祖狀線和宣統(tǒng)信號(hào)置為高祖狀態(tài)態(tài)時(shí)鐘輸入引腳時(shí)鐘輸入引腳當(dāng)當(dāng)XINTF準(zhǔn)許準(zhǔn)許XHOLD的的DMA請(qǐng)求時(shí),該引腳輸出請(qǐng)求時(shí),該引腳輸出低電平,表明擴(kuò)展的外設(shè)低電平,表明擴(kuò)展的外設(shè)可以驅(qū)動(dòng)外部總線執(zhí)行可以驅(qū)動(dòng)外部總線執(zhí)行DMA操作操作外部接口的訪問1.Zone2和Zone6 Zone2和Zone6共享外部19條地址總線。 Zone2的片選信號(hào)為XZCS2, Zone6的片選信號(hào)為XZCS6AND7 因?yàn)閮蓚€(gè)區(qū)域采用不同的片選信號(hào),所以對(duì)這兩個(gè)區(qū)域的訪問可以采用不同的時(shí)序。2.Zone0和Zone1 Zone0和Zone1共用一個(gè)片選信號(hào)XZC

33、S0AND1,采用不同的內(nèi)部地址。 Zone0的尋址范圍是0 x0020000 x003FFF, Zonel的尋址范圍是0 x0040000 x005FFF。 如果希望區(qū)分兩個(gè)空間,需要增加其他控制邏輯在訪問Zone0時(shí),XA13=1,XA14=0;在訪問Zonel時(shí),XAl3=0,XA14=1。外部接口的訪問3.Zone7 Zone7是獨(dú)立的地址空間,復(fù)位時(shí),XMP/MC=1,Zone7空間映射到0 x3FC000。 復(fù)位后,通過改變寄存器XINTCNF2中的MP/MC控制位,使能或屏蔽Zone7空間。 如果XMP/MC=0,則Zone7不能映射到0 x3FC000存儲(chǔ)空間,而片上的ROM將

34、映射到該存儲(chǔ)空間。 Zone7的映射與MC/MC有關(guān),而Zone0,Zonel,Zonc2,Zone6總是有效的存儲(chǔ)空間,與XMP/MC狀態(tài)無關(guān)。外部接口的訪問 如果用戶需要建立自己的引導(dǎo)程序,存放在外部空間,可以使用Zone7空間進(jìn)行程序的引導(dǎo)。引導(dǎo)成功后,通過軟件使能內(nèi)部的ROM,以便可以訪問存放在ROM中的數(shù)學(xué)表。 BootROM映射到Zone7空間時(shí),Zone7空間的存儲(chǔ)器仍然可以訪問。這是因?yàn)閆one7和Zone6空間公用一個(gè)片選信號(hào)XZCS6ANDCS7。外部接口的訪問 XINTF配置寄存器組3.2.3外部接口配置寄存器組XINTF0時(shí)序寄存器時(shí)序寄存器XINTF1時(shí)序寄存器時(shí)序寄

35、存器XINTF2時(shí)序寄存器時(shí)序寄存器XINTF6時(shí)序寄存器時(shí)序寄存器XINTF7時(shí)序寄存器時(shí)序寄存器XINTF配置寄存器配置寄存器XINTF塊控制寄存器塊控制寄存器XINTF修正寄存器修正寄存器外部接口的應(yīng)用 F2812片內(nèi)提供了較大容量的Flash存儲(chǔ)器,可以用來固化用戶程序,一般用戶無需再擴(kuò)張非易失的程序存儲(chǔ)器。 但是由于Flash芯片的存取速度較慢,直接從Flash中運(yùn)行用戶程序時(shí)需要插入一定的等待周期,降低了DSP的執(zhí)行速度。 目前的DSP芯片均提供了上電引導(dǎo)功能,即上電時(shí)DSP內(nèi)部固化的引導(dǎo)程序根據(jù)選定的引導(dǎo)模式,自動(dòng)將用戶代碼從程序存儲(chǔ)器Flash中加載到片內(nèi)高速SARAM或擴(kuò)展的

36、SRAM中,然后在RAM中高速運(yùn)行。 由于片內(nèi)RAM無需插入等待狀態(tài),因此,通常將用戶程序加載到片內(nèi)RAM中運(yùn)行。 當(dāng)片內(nèi)RAM容量不能滿足需要時(shí),或者需要保存較多的用戶數(shù)據(jù)時(shí),統(tǒng)稱需要擴(kuò)展外部存儲(chǔ)器。 由于DSP采用統(tǒng)一尋址方式,擴(kuò)展的SRAM即可以用作程序存儲(chǔ)器,上電時(shí)將部分代碼從慢速的Flash存儲(chǔ)器中加載到SRAM存儲(chǔ)器中執(zhí)行,也可以用于保存用戶數(shù)據(jù)。 例:通過XINTF擴(kuò)展一片SRAM芯片CY7C1021V33,容量64KW,訪問周期12ns,采用3.3V電源供電。外部接口的應(yīng)用CY7C1021V33真值表BLE BHED8D15D0D7工作模式工作模式HXXXX高阻狀態(tài)高阻狀態(tài)高阻

37、狀態(tài)高阻狀態(tài)后備模式后備模式LLHLL數(shù)據(jù)輸出數(shù)據(jù)輸出數(shù)據(jù)輸出數(shù)據(jù)輸出16位讀位讀LH高阻狀態(tài)高阻狀態(tài)數(shù)據(jù)輸出數(shù)據(jù)輸出低低8位讀位讀HL數(shù)據(jù)輸出數(shù)據(jù)輸出高阻狀態(tài)高阻狀態(tài)高高8位讀位讀LXLLL數(shù)據(jù)輸入數(shù)據(jù)輸入數(shù)據(jù)輸入數(shù)據(jù)輸入16位寫位寫LH高阻狀態(tài)高阻狀態(tài)數(shù)據(jù)輸入數(shù)據(jù)輸入低低8位寫位寫HL數(shù)據(jù)輸入數(shù)據(jù)輸入高阻狀態(tài)高阻狀態(tài)高高8位寫位寫OECSWE DSP與SRAM的接口電路如圖。3.3VAB15AB0DB15DB0XRDXWEXZCS6AND7F2812 XINTFAB15AB0DB15DB0VCCVSSCSOEWEBLEBHECY7C1021V33o F2812采用采用16位位數(shù)據(jù)方式訪問數(shù)據(jù)方式訪問SRAM,地址空,地址空間位于間位于Zone6.o DSP高位地址高位地址A18A16未參加未參加譯碼,通常取譯碼,通常取A18A16=000o SRAM地址范圍地址范圍o 0

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論