DSP原理及應(yīng)用-TMS320DM6437 課件 第8-10章 TMS320DM6437主機接口與多通道緩沖串口、TMS320DM6437輸入輸出接口與定時器、思政教育的方法與教學(xué)建議_第1頁
DSP原理及應(yīng)用-TMS320DM6437 課件 第8-10章 TMS320DM6437主機接口與多通道緩沖串口、TMS320DM6437輸入輸出接口與定時器、思政教育的方法與教學(xué)建議_第2頁
DSP原理及應(yīng)用-TMS320DM6437 課件 第8-10章 TMS320DM6437主機接口與多通道緩沖串口、TMS320DM6437輸入輸出接口與定時器、思政教育的方法與教學(xué)建議_第3頁
DSP原理及應(yīng)用-TMS320DM6437 課件 第8-10章 TMS320DM6437主機接口與多通道緩沖串口、TMS320DM6437輸入輸出接口與定時器、思政教育的方法與教學(xué)建議_第4頁
DSP原理及應(yīng)用-TMS320DM6437 課件 第8-10章 TMS320DM6437主機接口與多通道緩沖串口、TMS320DM6437輸入輸出接口與定時器、思政教育的方法與教學(xué)建議_第5頁
已閱讀5頁,還剩130頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

DSP原理及應(yīng)用第八章TMS320DM6437主機接口與多通道緩沖接口第八章TMS320DM6437主機接口與多通道緩沖串口8.1主機接口(HPI)8.2多通道緩沖串口(McBSP)8.1主機接口(HPI)1.HPI概述通用主機接口(HPI)是一個與主機通信的高速并行接口,外部主機掌管該接口的主要控制權(quán)。在TMS320C64xx系列DSP中,主機接口HPI是一個

16/32位寬度的并行端口。通過它可以實現(xiàn)一個外部主控制器同TMS320C643x系列DSP器件之間的通信,能夠?qū)崿F(xiàn)直接訪問DSP的存儲空間。HPI與主機的連接是通過DMA/EDMA控制器來實現(xiàn)的,即主機不能直接訪問CPU上的存儲空間,需要借助HPI,使用DMA/EDMA的附加通道,才能完成對DSP存儲空間的訪問。主機和CPU都可以訪問HPI控制寄存器(HPIC),主機一方還可以訪問HPI地址寄存器(HPIA)以及HPI數(shù)據(jù)寄存器(HPID)。對于TMS320C64×系列,CPU還可以訪問HPIA寄存器。8.1主機接口(HPI)HPI主機由以下五個部分組成:①HPI存儲器(DARAM):HPIRAM主要用于DSP與主機之間傳送數(shù)據(jù),也可以用作通用的雙尋址數(shù)據(jù)RAM或程序RAM。②HPI地址寄存器(HPIA):它只能由主機對其直接訪問,該寄存器中存放著當(dāng)前尋址的HPI存儲單元的地址。③HPI數(shù)據(jù)鎖存器(HPID):它只能由主機對其直接訪問。④HPI控制寄存器(HPIC):DSP和主機都能對其直接訪問。⑤HPI控制邏輯:用于處理HPI與主機之間的接口信號。8.1主機接口(HPI)接口特征C62x/C67xC64xC620x/C670xC621x/C671xC64xHPI16C64xHPI32數(shù)據(jù)總線長度16bit16bit16bit32bit字節(jié)使能管腳/HBE[0:1]有無無無半字指示HHWIL信號使用使用使用不使用訪問半字?jǐn)?shù)據(jù)支持不支持不支持不支持訪問HPIA只能主機訪問只能主機訪問主機或CPUHPIA包括HPIAR和HPIAW主機或CPUHPIA包括HPIAR和HPIAW/HRDY操作每次訪問一個字后無效內(nèi)部讀/寫緩存notready時無效與C621x/C671x相同與C621x/C671x相同內(nèi)部讀緩存無有,8級深度有,16級深度有,16級深度內(nèi)部寫緩存無有,8級深度有,32級深度,內(nèi)部定時器超時后清空有,32級深度,內(nèi)部定時器超時后清空表8-1

不同芯片的HPI接口對比2.HPI的結(jié)構(gòu)與功能圖8-1

TMS320C64x外部引腳接口8.1主機接口(HPI)信號類型管腳數(shù)主機對應(yīng)信號主機對應(yīng)信號HD[15:0]或HD[31:0]I/O/Z16或32數(shù)據(jù)總線

HCNTL[1:0]12地址或控制線HPI訪問類型控制HHWIL11地址或控制線確認(rèn)半字(16bit)輸入/HAS11地址鎖存使能(ALE),地址選通,或者不用對復(fù)用地址/數(shù)據(jù)總線的主機,區(qū)分地址和數(shù)據(jù)/HBE[1:0]12字節(jié)使能寫數(shù)據(jù)字節(jié)使能HR/#W11讀/寫選通讀/寫選通/HCS11地址或控制總線輸入數(shù)據(jù)選通/HDS[1:2]11讀選通,寫選通,數(shù)據(jù)選通輸入數(shù)據(jù)選通/HRDY01異步ready信號當(dāng)前訪問HPI狀態(tài)準(zhǔn)備好/HINT01主機中斷輸入向主機發(fā)出的中斷信號表8-2

HPI接口信號描述注:C64x僅在HPI16模式下有HHWIL信號HPI引腳8.1主機接口(HPI)圖8-1

TMS320C64x外部引腳接口HPI引腳由以下幾個部分組成:(1)HD[15:0]或HD[31:0]:在復(fù)用模式下,數(shù)據(jù)線的寬度一般為CPU位寬的一半,一個HPI訪問分為高低半字的兩次訪問。8.1主機接口(HPI)(2)HCS:HPI片選信號。作為HPI的使能輸入端,在每次尋址期間必須為低電平,而在兩次尋址之間也可以停留在低電平。(3)HAS:地址選通信號,此信號用于主機的數(shù)據(jù)線和地址線復(fù)用的情況。而不用時此信號應(yīng)接高。(4)HBIL:字節(jié)識別信號,用于識別主機傳送過來的第一個字節(jié)還是第二個字節(jié)。(5)HCNTL0、HCNTL1:主機控制信號,用來選擇主機所要尋址的寄存器。(6)HDS1、HDS2:數(shù)據(jù)選通信號,在主機尋址HPI周期內(nèi)控制數(shù)據(jù)的傳送。(7)HINT:HPI中斷輸出信號,受HPIC中的HINT位控制。8.1主機接口(HPI)通過HPI,主機與DSP之間可以互發(fā)中斷。①HINT是HPI送給主機的中斷信號,DSP對HPIC位寫1,HINT信號線上送出高電平信號,主機可利用此信號作為中斷輸入。②DSP不能清除HPIC狀態(tài),主機在響應(yīng)中斷后,需要對HPIC位寫1清除狀態(tài),DSP才能再次對HPIC置位發(fā)中斷。③主機通過寫HPIC置1給DSP產(chǎn)生中斷,DSP在響應(yīng)中斷后,需要對HPIC寫1清除狀態(tài),主機才能繼續(xù)操作給DSP發(fā)中斷。④通過HPI傳輸數(shù)據(jù),結(jié)合互發(fā)中斷作為軟件層的握手信號,可有效提高通訊的效率與靈活性。8.1主機接口(HPI)(8)HRDY:HPI準(zhǔn)備好端。高電平表示HPI已準(zhǔn)備好執(zhí)行一次數(shù)據(jù)傳送;低電平表示HPI正忙于完成當(dāng)前事務(wù),用于連續(xù)高速主機。(9)HR/W:HPI讀寫信號。高電平表示主機要讀HPI,低電平表示寫HPI。(10)HPIENA:HPI允許信號,若系統(tǒng)選中HPI則將它連到高電平,否則懸空或接低電平。(11)ALE:存在于地址數(shù)據(jù)線復(fù)用的主機上用來指示地址信號周期,這種總線復(fù)用的主機很少見,所以通常將ALE固定上拉處理,只用HSTROBE(HDS1、HDS2、HCS)采樣控制信號。8.1主機接口(HPI)主機訪問HPI的一個字包括兩個步驟:首先訪問第一個字節(jié),此時HBIL為0;然后訪問第二個字節(jié),此時HBIL為1;這兩步組成一個訪問單元。這個訪問單元不可被拆開或顛倒,不管當(dāng)前訪問的是HPIA、HPIC還是HPID。8.1主機接口(HPI)3.HPI的讀/寫時序

8.1主機接口(HPI)圖8-2HPI讀時序(固定接高電平)

圖8-3HPI讀時序(接口應(yīng)用了信號)

圖8-4HPI寫時序(固定接高電平)

圖8-5HPI寫時序(接口應(yīng)用了信號)

圖8-6

HPI接口總線訪問時序圖主機CPU訪問DSPHPI接口的順序:(1)初始化HPI控制寄存器(HPIC)。(2)初始化HPI地址寄存器(HPIA)。(3)從HPI數(shù)據(jù)寄存器(HPID)中寫數(shù)據(jù)或者讀數(shù)據(jù)。4.HPI的操作TMS320DM6437的引導(dǎo)模式中,有一種方式是允許復(fù)位后由主機通過HP1對DSP進(jìn)行初始化的,稱為HPIboot模式。加載順序如下:(1)只有DSP內(nèi)核進(jìn)入復(fù)位狀態(tài),其余所有的模塊保持激活狀態(tài)(2)主機通過HPI接口訪問TMS320C6000的整個存儲空間(包括片內(nèi)的外設(shè)寄存器),對它們進(jìn)行初始化;(3)完成有關(guān)設(shè)置之后,主機向HPIC寄存器的DSPINT位寫1,將DSP從復(fù)位狀態(tài)喚醒;(4)DSPCPU接管DSP的控制權(quán),從地址0開始執(zhí)行程序。8.1主機接口(HPI)TMS320DM6437提供了三個32位寄存器HPIC、HPIA、HPID和32位數(shù)據(jù)線與主處理器通信。主處理器通過HPIC、HPIA、HPID和數(shù)據(jù)線來與TMS320DM6437進(jìn)行數(shù)據(jù)交換、數(shù)據(jù)交換的過程如下:首先初始化HPIC。然后把地址寫到HPIA。最后通過HPID讀或?qū)憯?shù)據(jù)。8.1主機接口(HPI)圖8-7

HPI接口硬件設(shè)計原理圖這里主機CPU采用Samsung的ARM9S3C2410,那么主機與目標(biāo)機之間的連接如下圖8-7所示:目標(biāo)DSP的nHCS連接到主機S3C2410的nGCS5上,同時目標(biāo)DSP的HPI寄存器映射到主機內(nèi)存中。8.1主機接口(HPI)表8-3

HPI寄存器在MCUCS5空間的地址映射表HPI寄存器讀HPI地址寫HPI地址HPIC0x2800_00100x2800_0000HPIA0x2800_00140x2800_0004HPID(自增)0x2800_00180x2800_0008HPID0x2800_001c0x2800_000c8.1主機接口(HPI)5.HPI寄存器HPI寄存器是主要用于DSP與主機之間傳送數(shù)據(jù),也可以用作通用的雙尋址數(shù)據(jù)RAM或程序RAM。該寄存器通過3個寄存器完成主機與CPU之間的通信,這3個寄存器分別是:HPI數(shù)據(jù)寄存器、HPI地址寄存器和HPI控制寄存器。

8.1主機接口(HPI)(1)HPI數(shù)據(jù)寄存器(HPID)

寄存器用于存放主機從存儲空間讀取的數(shù)據(jù),或是主機要向DSP存儲空間寫入的數(shù)據(jù)。如果當(dāng)前進(jìn)行讀操作,則HPID中存放的是要從HPI存儲器中讀出的數(shù)據(jù);如果當(dāng)前進(jìn)行寫操作,則HPID中存放的是將要寫到HPI存儲器的數(shù)據(jù)。(2)HPI地址寄存器(HPIA)

HPIA寄存器用于存放當(dāng)前主機尋址訪問DSP存儲空間的地址,這是一個30位的值,也就是說該地址是一個word地址,它的最低2位固定為O。

8.1主機接口(HPI)(3)HPI控制寄存器(HPIC)HPIC寄存器字長為32位,但高16位和低16位對應(yīng)于同一個物理存儲區(qū),因此高16位和低16位的內(nèi)容一致。寫HPIC時,也必須保證寫入數(shù)據(jù)的高16位和低16位的內(nèi)容一致。

HPIC對HPI的工作模式進(jìn)行控制,HPIC必須在進(jìn)行HPI訪問前由主機初始化。當(dāng)主機要隨機訪問HPIRAM時,必須先發(fā)送一個地址到HPIA(HPI地址寄存器),然后訪問該地址所指向的RAM單元。8.1主機接口(HPI)HPIC中每一位都有特定的功能1.HWOB(半字順序位)如果HWOB=1,第一個半字為最低有效;如果HWOB=0,第一個半字為最高有效。HWOB對地址和數(shù)據(jù)都起作用。2.DSPINT主機產(chǎn)生的Processor-to-CPU中斷,用于HPI啟動方式中將DSP內(nèi)核從復(fù)位狀態(tài)中喚醒。3.HINTDSP-to-Host中斷,即通過向此位寫入特定值來產(chǎn)生對主機的中斷。8.1主機接口(HPI)8.HPI的中斷申請HPI的中斷申請是由/HINT引腳向主機的/INTERRUPT引腳發(fā)出中斷信號來實現(xiàn)的。HPI有兩種工作方式:(1)共用尋址方式(SAM)(2)僅主機尋址方式(HOM)

8.1主機接口(HPI)7.HPI應(yīng)用實例

在TMS320C64xx系列DSP中,主機接口HPI是一個16/32位寬度的并行端口。主機通過HPI接口可以直接訪問DSP的存儲器空間和DSP片內(nèi)存儲映射的外圍設(shè)備。HPI與DSP存儲空間之間的互聯(lián)是通過DMA控制器實現(xiàn)的。TMS320DM6437DSP提供了三種引導(dǎo)方式:1)沒有自舉過程2)ROM自舉3)HPI自舉8.1主機接口(HPI)在復(fù)位信號reset信號的上升沿檢查設(shè)置管腳BOOTMODE狀態(tài),自舉邏輯開始生效。TMS320C64xxEMIFB地址總線上的BEA[19:18]管腳電平?jīng)Q定了引導(dǎo)配置。BOOTMODE引導(dǎo)方式00無01主機引導(dǎo)(通過HPI或PCI)10EMIFB8位寬ROM,默認(rèn)時序11保留表8-4TMS320DM6437HPIboot配置8.1主機接口(HPI)8.2多通道緩沖串口(McBSP)1.McBSP概述TMS320C64x的多通道緩沖串行接口(McBSP)是一種功能很強的同步串行接口,具有很強的可編程能力,可以直接配置成多種同步串口標(biāo)準(zhǔn),直接與各種器件無縫接口。①T1/E1標(biāo)準(zhǔn):通信器件②MVIP和ST-BUS標(biāo)準(zhǔn):通信器件③IOM-2標(biāo)準(zhǔn):ISDN器件④AC97標(biāo)準(zhǔn):PCAudioCodec器件⑤IIS標(biāo)準(zhǔn):Codec器件⑥SPI:串行A/D、D/A,串行存儲器等器件全雙工串行通信允許連續(xù)的數(shù)據(jù)流傳輸?shù)碾p緩沖數(shù)據(jù)寄存器,擁有兩級緩沖發(fā)送和三級緩沖接收能夠與工業(yè)標(biāo)準(zhǔn)的編/解碼器、模擬接口芯片(AICs)以及其他串行A/D、D/A器件轉(zhuǎn)換設(shè)備接口直接連接McBSP多通道緩沖串行接口具有如下的功能:數(shù)據(jù)傳輸可利用外部移位時鐘或者內(nèi)部可編程頻率移位時鐘完成。8.2多通道緩沖串口(McBSP)McBSP具有以下的特點:(1)支持以下方式的直接接口連接(2)每個串行接口可與多達(dá)128個通道進(jìn)行多通道接收和發(fā)送。(3)支持傳輸?shù)臄?shù)據(jù)串行字長度可以是8、16、32位等多種。(4)支持內(nèi)置的u-律和A-律數(shù)據(jù)壓縮擴展。(5)對于8位數(shù)據(jù)的傳輸,可以選擇LSB先傳或MSB先傳。(6)可以編程設(shè)置幀同步信號和數(shù)據(jù)時鐘信號的極性。(7)高度可編程的內(nèi)部傳輸時鐘和幀同步信號脈沖具有相當(dāng)大的靈活性。8.2多通道緩沖串口(McBSP)McBSP主要包括以下機組功能引腳:(1)位-時鐘:CLKX,CLKR(2)幀同步信號:FSX,FSR(3)串行數(shù)據(jù)流:DR,DX8.2多通道緩沖串口(McBSP)McBSP為同步串行通信接口,其協(xié)議包含:(1)串行數(shù)據(jù)起始時刻:稱為幀同步事件(2)串行數(shù)據(jù)流長度:串行傳輸?shù)臄?shù)據(jù)流達(dá)到設(shè)定的長度后,便結(jié)束本次傳輸,并等待下一個幀同步信號的到來,進(jìn)行另一次傳輸。(3)串行數(shù)據(jù)傳輸速度:由位時鐘決定。(4)FSR、CLKR和DR三者之間的關(guān)系,即它們?nèi)绾稳〉脦绞录?、何時采樣串行數(shù)據(jù)位流、或何時輸出串行數(shù)據(jù)位流是可以控制的。通過配置McBSP的寄存器就可以實現(xiàn)。8.2多通道緩沖串口(McBSP)2.McBSP結(jié)構(gòu)與對外接口每一個McBSP接口包括23個映射到DSP數(shù)據(jù)空間的寄存器。McBSP接口工作的控制由向這些寄存器寫入合適的數(shù)據(jù)來實現(xiàn);McBSP接口的工作狀態(tài)由從這些寄存器讀出的數(shù)據(jù)來獲得。圖8-8

McBSP結(jié)構(gòu)框圖8.2多通道緩沖串口(McBSP)McBSP接口工作控制的主要內(nèi)容包括以下方面:(1)內(nèi)部時鐘的產(chǎn)生(2)幀同步信號的產(chǎn)生(3)每幀中包含數(shù)據(jù)路數(shù)的選擇(4)每路中包含的數(shù)據(jù)位數(shù)的選擇(5)中斷和事件觸發(fā)信號的產(chǎn)生8.2多通道緩沖串口(McBSP)管腳I/O/Z說明CLKRI/O/Z接收時鐘CLKXI/O/Z發(fā)送時鐘CLKSI外時鐘DRI串行數(shù)據(jù)接收DXO/Z串行數(shù)據(jù)發(fā)送FSRI/O/Z接收幀同步FSXI/O/Z發(fā)送幀同步表8-5

McBSP接口信號8.2多通道緩沖串口(McBSP)3.McBSP寄存器McBSP寄存器通過使用串口控制寄存器(SPCR)和引腳控制寄存器(PCR)來配置串口,采用子地址尋址方式。

McBSP通過復(fù)接器將一組子地址寄存器復(fù)接到存儲器映射的一個位置上。復(fù)接器由子塊地址寄存器(SPSAx)控制。

子塊數(shù)據(jù)寄存器(SPSAx)用于指定子地址寄存器中數(shù)據(jù)的讀/寫。這種方法的好處是可以將多個寄存器映射到一個較小的存儲器空間。

8.2多通道緩沖串口(McBSP)4.McBSP的操作8.2多通道緩沖串口(McBSP)圖8-8

McBSP結(jié)構(gòu)框圖McBSP包括一個數(shù)據(jù)通道和一個控制通道。(1)數(shù)據(jù)通道通過7個引腳與外部設(shè)備連接,數(shù)據(jù)發(fā)送引腳DX負(fù)責(zé)數(shù)據(jù)的發(fā)送,數(shù)據(jù)接收引腳DR負(fù)責(zé)數(shù)據(jù)的接收,發(fā)送時鐘引腳CLKX,接收時鐘引腳CLKR,發(fā)送幀同步引腳FSX和接收幀同步引腳FSR提供串行時鐘和控制信號。McBSP的接收操作采取的是3級緩存方式,發(fā)送操作采取的是2級緩存方式。8.2多通道緩沖串口(McBSP)(2)控制通道發(fā)送數(shù)據(jù)首先由CPU或DMA控制器寫入發(fā)送數(shù)據(jù)寄存器DXR。如果XSR寄存器為空,則在FSX和CLKX作用下DXR中的值被復(fù)制到XSR準(zhǔn)備移位輸出;否則,DXR會等待XSR中舊數(shù)據(jù)的最后1位被移位輸出到DX管腳后,才將數(shù)據(jù)復(fù)制到XSR中。CLKX、CLKR、FSX、FSR既可以由內(nèi)部采樣率發(fā)生器產(chǎn)生,也可以由外部設(shè)備驅(qū)動。McBSP的多通道功能主要用于進(jìn)行時分復(fù)用(TDM)數(shù)據(jù)流的通信。

8.2多通道緩沖串口(McBSP)5.McBSP的應(yīng)用多通道緩沖串口McBSP的功能是提供器件內(nèi)外數(shù)據(jù)的串行交換,具有很大的靈活性。根據(jù)McBSP在通信中所處的地位和功能,可以有以下幾種工作模式:多通道緩沖模式SPI模式ABIS模式數(shù)字回環(huán)模式GPI0模式省電模式8.2多通道緩沖串口(McBSP)SPI協(xié)議是一種主從配置的,支持一個主設(shè)備,一個或多個從設(shè)備的串行通信協(xié)議。接口由4個信號組成:串行數(shù)據(jù)輸入MISO、串行數(shù)據(jù)輸出MOSI、移位時鐘SCK和從方使能SS。圖8-9SPI接口示意圖8.2多通道緩沖串口(McBSP)位域寄存器功能描述CLKSTP=10/11bSPCR1選擇時鐘停止模式(有或無時鐘延時)CLKXP=0/1PCR選擇CLKX的極性為正/負(fù)CLKRP=0/1PCR選擇CLKR的極性為正/負(fù)CLKXM=0/1PCR選擇CLKX為輸入信號,還是輸出信號XPHASE=0XCR2必須使用1個階段/幀RPHASE=0RCR2必須使用1個階段/幀XFRLEN1=0XCR1必須使用1個字/幀RFRLEN1=0RCR1必須使用1個字/幀XWDLEN1XCR1決定傳輸包的長度,XWDLEN1和RWDLEN1必須相等RWDLEN1RCR1決定接收包的長度,RWDLEN1和XWDLEN1必須相等如果希望McBSP工作于SPI模式下,需要按照下表對相應(yīng)的位進(jìn)行設(shè)置:表8-7

配置McBSP為SPI需要設(shè)置的位8.2多通道緩沖串口(McBSP)下面給出McBSP串口測試程序流程:(1)修改中斷向量表(2)初始化McBSP串口設(shè)置BLD=1,即支持?jǐn)?shù)字回環(huán)方式;設(shè)置RCOMPAND=10,即采用u律擴展;ar3指向發(fā)送數(shù)據(jù)緩沖區(qū)ar4指向接受數(shù)據(jù)緩沖區(qū),初始化將接收數(shù)據(jù)緩沖區(qū)

全部清0。(3)編寫接收與發(fā)送中斷程序8.2多通道緩沖串口(McBSP)本章主要介紹TMS320DM6437的主機接口(HPI)和多通道緩沖串口(Multi-channelBufferedSerialPort,McBSP)。主機接口(HPI)是主設(shè)備或主機處理器與DSP的接口,可以實現(xiàn)并行高速的數(shù)據(jù)傳送,使得主機可以直接訪問DSP所有的存儲空空間及其片內(nèi)的存儲映射的外部設(shè)備(外設(shè))。多通道緩沖串口(Multi-channelBufferedSerialPort,McBSP)是TMS320C6xDSP最基本的片內(nèi)外設(shè)之一,每一種型號的TMS320DM有2個不等數(shù)目的多通道緩沖串口TMS320DM6437包含2個多通道緩沖串口。多通道緩沖串口的主要用于串口通信,一般用于連接串行接口的外設(shè),如串行AD和DA、串行EE、SPI設(shè)備等。本章小結(jié)DSP原理及應(yīng)用第九章TMS320DM6437的GPIO與定時器第九章TMS320DM6437通用輸入/輸出接口與定時器9.1通用輸入/輸出接口(GPIO)9.2定時器9.1通用輸入/輸出接口(GPIO)9.1.1GPIO接口概述

TMS320DM6437的GPIO接口提供了通用輸入/輸出引腳,其既可配置為輸出,也可配置為輸入。當(dāng)配置為輸出時,通過寫內(nèi)部寄存器來控制輸出引腳狀態(tài);當(dāng)配置為輸入時,通過讀內(nèi)部寄存器來檢測輸入狀態(tài)。此外,GPIO接口還可通過不同的中斷或事件產(chǎn)生模式來觸發(fā)CPU中斷和EDMA(增強型直接內(nèi)存存?。┦录?。TMS320DM6437有多達(dá)111個GPIO信號引腳,提供了與外部設(shè)備的通用連接,GPIO接口分為7組(Banks),前6組各包含16位,如0組為GP[0:15],第7組GPIO包含15位,即GP[96:110],GPIO接口與ZWT封裝芯片的引腳對應(yīng)關(guān)系可參考附錄B。GPIO外設(shè)的輸入時鐘表示為鎖相環(huán)PLL1的6分頻,最大的運行速度為10MHz。TMS320DM6437通過引腳多路復(fù)用來實現(xiàn)在盡可能小的封裝上容納盡可能多的外設(shè)功能。引腳多路復(fù)用可通過硬件配置器件復(fù)位和寄存器軟件編程設(shè)置來控制。9.1.2GPIO功能

TMS320DM6437的GPIO接口支持如下功能:①、多達(dá)111個3.3VGPIO引腳,即GP[0:110];②、中斷:

?多達(dá)8個位于Bank0的獨立中斷GP[0:7];

?所有GPIO信號都可作為中斷源,7組GPIO都有其各自的中斷信號;

?可規(guī)定每組GPIO中斷使能信號,通過上升沿或下降沿來觸發(fā)中斷。③、直接內(nèi)存存取DMA事件

?多達(dá)8個位于Bank0的獨立的GPIODMA事件;

?7組GPIO都有其各自的DMA事件信號。④、設(shè)置/清除功能位:固件寫1到對應(yīng)的位來設(shè)置或清除GPIO信號,這允許多個固件進(jìn)程在沒有臨界區(qū)保護(hù)(禁用中斷、編程GPIO、重啟中斷、防止上下文在GPIO編程中切換到另一個進(jìn)程)的情況下切換GPIO輸出信號。9.1通用輸入/輸出接口(GPIO)9.1通用輸入/輸出接口(GPIO)⑤、獨立的輸入/輸出寄存器:通過讀輸入/輸出寄存器可反映輸入/輸出引腳狀態(tài)。⑥、輸出寄存器除了設(shè)置/清除,還可通過直接寫輸出寄存器來切換GPIO輸出信號。⑦、當(dāng)讀輸出寄存器時,其反映了輸出驅(qū)動狀態(tài)。GPIO結(jié)構(gòu)如圖9-1所示,下面分別介紹使用GPIO信號作為輸出或輸入的設(shè)置方法:(1)、使用GPIO信號作為輸出GPIO信號可通過寫GPIO方向寄存器(DIR)來配置輸入或輸出操作。要將給定的GPIO信號配置為輸出,需在DIR中清除該GPIO相關(guān)的位信號。當(dāng)GPIO被配置為輸出時,共有3個寄存器用來控制GPIO輸出驅(qū)動狀態(tài):

?GPIO設(shè)置數(shù)據(jù)寄存器(SET_DATA)控制驅(qū)動GPIO信號為高;

?GPIO清除數(shù)據(jù)寄存器(CLR_DATA)控制驅(qū)動GPIO信號為低;

?GPIO輸出數(shù)據(jù)寄存器(OUT_DATA)包含當(dāng)前的輸出信號狀態(tài)。

讀SET_DATA、CLR_DATA和OUT_DATA返回的輸出狀態(tài)不一定是真正的信號狀態(tài),因為一些信號可能被配置為輸入,實際的信號狀態(tài)通過GPIO相關(guān)的輸入數(shù)據(jù)寄存器(IN_DATA)讀取,IN_DATA包含外部信號的實際邏輯狀態(tài)。為了驅(qū)動GPIO信號為高,可選以下任一種方法:一是將邏輯1寫入該GPIO相關(guān)的SET_DATA位,SET_DATA中包含0的比特位不影響相關(guān)輸出信號的狀態(tài);二是通過使用讀-修改-寫(read-modify-write)操作,修改該GPIO相關(guān)的OUT_DATA位,在GPIO輸出信號上驅(qū)動的邏輯狀態(tài)與寫入到OUT_DATA所有位的邏輯值相匹配。同樣,為了驅(qū)動GPIO信號為低,可選以下任一方法:一是將邏輯1寫入該GPIO相關(guān)的CLR_DATA位,CLR_DATA中包含0的比特位不影響相關(guān)輸出信號的狀態(tài);二是通過使用讀-修改-寫(read-modify-write)操作,修改該GPIO相關(guān)的OUT_DATA位,在GPIO輸出信號上驅(qū)動的邏輯狀態(tài)與寫入到OUT_DATA所有位的邏輯值相匹配。圖9-1GPIO結(jié)構(gòu)框圖9.1通用輸入/輸出接口(GPIO)(2)、使用GPIO信號作為輸入

要將給定的GPIO信號配置為輸入,在方向寄存器DIR中設(shè)置所需GPIO的相關(guān)位。使用GPIO輸入數(shù)據(jù)寄存器(IN_DATA)讀取GPIO信號的當(dāng)前狀態(tài):對于配置為輸入的GPIO信號,讀取IN_DATA返回與GPIO外設(shè)時鐘同步的輸入信號狀態(tài);對于配置為輸出的GPIO信號,讀取IN_DATA返回由設(shè)備驅(qū)動的輸出值。9.1通用輸入/輸出接口(GPIO)9.1.3中斷和事件產(chǎn)生(1)、中斷①中斷事件和請求GPIO外設(shè)可以向DSPCPU發(fā)送一個中斷事件,即所有GPIO信號都可以配置來產(chǎn)生中斷,TMS320DM6437支持單一GPIO信號中斷、GPIO組信號中斷,或這兩種形式混合。GPIO外設(shè)到DSPCPU的中斷映射如表9-1所示。9.1通用輸入/輸出接口(GPIO)

中斷源縮寫DSP中斷號GP[0]GPIO064GP[1]GPIO165GP[2]GPIO266GP[3]GPIO367GP[4]GPIO468GP[5]GPIO569GP[6]GPIO670GP[7]GPIO771GPIOBank0GPIOBNK072GPIOBank1GPIOBNK173GPIOBank2GPIOBNK274GPIOBank3GPIOBNK375GPIOBank4GPIOBNK476GPIOBank5GPIOBNK577GPIOBank6GPIOBNK678表9-1GPIO到DSPCPU的中斷映射9.1通用輸入/輸出接口(GPIO)②使能GPIO中斷事件通過在GPIO中斷使能寄存器(BINTEN)中設(shè)置適當(dāng)?shù)谋忍匚粊硎鼓蹽PIO中斷事件,例如,為了使能bank0(GP[15-0])中斷,置位BINTEN的位0,為了使能bank3(GP[63-48]中斷,置位BINTEN的位3。③配置GPIO中斷的邊沿觸發(fā)每個GPIO中斷源可以配置為在GPIO信號上升沿、下降沿、兩者兼具或兩者均無(無事件)下產(chǎn)生中斷,邊沿檢測與GPIO外設(shè)模塊時鐘同步,以下4個寄存器用來控制GPIO中斷的邊沿檢測方式:

●GPIO設(shè)置上升沿中斷寄存器(SET_RIS_TRIG)在GPIO信號中出現(xiàn)一個上升沿時允許GPIO中斷;

●GPIO清除上升沿中斷寄存器(CLR_RIS_TRIG)在GPIO信號中出現(xiàn)一個上升沿時禁止GPIO中斷;

●GPIO設(shè)置下降沿中斷寄存器(SET_FAL_TRIG)在GPIO信號中出現(xiàn)一個下降沿時允許GPIO中斷;

●GPIO清除下降沿中斷寄存器(CLR_FAL_TRIG)在GPIO信號中出現(xiàn)一個下降沿時禁止GPIO中斷。9.1通用輸入/輸出接口(GPIO)要配置GPIO中斷,只發(fā)生在GPIO信號的上升沿:

●寫邏輯1到SET_RIS_TRIG的相關(guān)位;

●寫邏輯1到CLR_FAL_TRIG的相關(guān)位。要配置GPIO中斷,只發(fā)生在GPIO信號的下降沿:

●寫邏輯1到SET_FAL_TRIG的相關(guān)位;

●寫邏輯1到CLR_RIS_TRIG的相關(guān)位。要配置GPIO中斷,發(fā)生在GPIO信號的上升沿和下降沿:

●寫邏輯1到SET_RIS_TRIG的相關(guān)位;

●寫邏輯1到SET_FAL_TRIG的相關(guān)位。要禁止一個特定的GPIO中斷:

●寫邏輯1到CLR_RIS_TRIG的相關(guān)位;

●寫邏輯1到CLR_FAL_TRIG的相關(guān)位。注意,當(dāng)GPIO信號被配置為輸出時,軟件可以改變GPIO信號狀態(tài),然后生成一個中斷。這對于調(diào)試中斷信號連通性非常有用。9.1通用輸入/輸出接口(GPIO)④GPIO中斷狀態(tài)GPIO中斷事件的狀態(tài)可以通過讀取GPIO中斷狀態(tài)寄存器(INTSTAT)來監(jiān)控。在相關(guān)比特位上用邏輯1表示等待GPIO中斷,不被等待的中斷用邏輯0表示。對于直接到DSP子系統(tǒng)的獨立GPIO中斷,中斷狀態(tài)可以通過相關(guān)的CPU中斷標(biāo)志讀取。對于GPIO組中斷,INTSTAT可以用于確定是哪個GPIO中斷發(fā)生。等待GPIO中斷標(biāo)志位清除是通過寫邏輯1到INTSTAT中相關(guān)的比特位。9.1通用輸入/輸出接口(GPIO)(2)、EDMA事件產(chǎn)生GPIO外設(shè)可以向EDMA提供同步事件,GPIO同步EDMA事件如表9-2所示。事件源事件名EDMA同步事件號GP[0]中斷GPINT032GP[1]中斷GPINT133GP[2]中斷GPINT234GP[3]中斷GPINT335GP[4]中斷GPINT436GP[5]中斷GPINT537GP[6]中斷GPINT638GP[7]中斷GPINT739GPIOBank0中斷GPBNKINT040GPIOBank1中斷GPBNKINT141GPIOBank2中斷GPBNKINT242GPIOBank3中斷GPBNKINT343GPIOBank4中斷GPBNKINT444GPIOBank5中斷GPBNKINT545GPIOBank6中斷GPBNKINT646表9-2GPIO同步事件到EDMA9.1通用輸入/輸出接口(GPIO)9.1.4GPIO寄存器

TMS320DM6437有7組GPIO信號,這些GPIO信號通過與其相關(guān)的多個寄存器來控制,在這些寄存器中,對于每個GPIO信號有多個控制域。對每個GPIO信號組,GPIO控制寄存器被組織為1個32位寄存器,這些控制寄存器進(jìn)一步被分組,每組又含有一系列控制寄存器。每組控制寄存器的寄存器名均定義為register_nameXY形式,其中X和Y是兩組GPIO控制位,例如01、23、45等。與每個GPIO相關(guān)的寄存器域均定義為field_nameN形式,其中N是GPIO信號的數(shù)目,例如,GP[0]位于第0組的GPIO,控制寄存器名為register_name01,與GP[0]相關(guān)的寄存器域為field_name0,GP[0]的控制位位于寄存器的位0。與之相比,GP[110]位于第6組的GPIO,控制寄存器名為register_name6,與GP[110]相關(guān)的寄存器域為field_name110,GP[110]的控制位位于寄存器的位14。表9-3顯示了與GPIO引腳相關(guān)的寄存器組及控制位信息,其可用于定位寄存器控制位。9.1通用輸入/輸出接口(GPIO)9.1.4GPIO寄存器

表9-3寄存器組及控制位GPIO信號組數(shù)控制寄存器寄存器域位數(shù)GP[0]~GP[15]0register_name01field_name0~field_name15Bit0~Bit15GP[16]~GP[31]1register_name01field_name16~field_name31Bit16~Bit31GP[32]~GP[47]2register_name23field_name32~field_name47Bit0~Bit15GP[48]~GP[63]3register_name23field_name48~field_name63Bit16~Bit31GP[64]~GP[79]4register_name45field_name64~field_name79GP[80]~GP[95]5register_name45field_name80~field_name95Bit16~Bit31GP[96]~GP[110]6register_name6field_name96~field_name110Bit0~Bit14由于有奇數(shù)組的GPIO,最后一組GPIO寄存器的第16位缺省,沒有作用。對于中斷配置,與GPIO相關(guān)的不支持中斷的寄存器也缺省。GPIO寄存器映射如表9-4所示。表9-4GPIO寄存器HEX地址范圍縮寫寄存器名PID外設(shè)識別寄存器PeripheralIdentificationRegister0x01C67004PCR外部控制寄存器0x01C67008BINTEN中斷使能GPIOinterruptper-bankenable第0、1組GPIO0x01C6700C—預(yù)留0x01C67010DIR010組和1組GPIO方向寄存器(GP[0:31])0x01C67014OUT_DATA010組和1組GPIO輸出數(shù)據(jù)寄存器(GP[0:31])0x01C67018SET_DATA010組和1組GPIO設(shè)置數(shù)據(jù)寄存器(GP[0:31])0x01C6701CCLR_DATA010組和1組GPIO清除數(shù)據(jù)(GP[0:31])0x01C67020IN_DATA010組和1組GPIO輸入數(shù)據(jù)寄存器(GP[0:31])0x01C67024SET_RIS_TRIG010組和1組GPIO設(shè)置上升沿中斷寄存器(GP[0:31])0x01C67028CLR_RIS_TRIG010組和1組GPIO清除上升沿中斷寄存器(GP[0:31])0x01C6702CSET_FAL_TRIG010組和1組GPIO設(shè)置下降沿中斷寄存器(GP[0:31])0x01C67030CLR_FAL_TRIG010組和1組GPIO清除下降沿中斷寄存器(GP[0:31])0x01C67034INSTAT010組和1組GPIO中斷狀態(tài)寄存器(GP[0:31])第2、3組GPIO0x01C67038DIR232組和3組GPIO方向寄存器(GP[32:63])0x01C6703COUT_DATA232組和3組GPIO輸出數(shù)據(jù)寄存器(GP[32:63])0x01C67040SET_DATA232組和3組GPIO設(shè)置數(shù)據(jù)寄存器(GP[32:63])0x01C67044CLR_DATA232組和3組GPIO清除數(shù)據(jù)(GP[32:63])0x01C67048IN_DATA232組和3組GPIO輸入數(shù)據(jù)寄存器(GP[32:63])0x01C6704CSET_RIS_TRIG232組和3組GPIO設(shè)置上升沿中斷寄存器(GP[32:63])0x01C67050CLR_RIS_TRIG232組和3組GPIO清除上升沿中斷寄存器(GP[32:63])0x01C67054SET_FAL_TRIG232組和3組GPIO設(shè)置下降沿中斷寄存器(GP[32:63])0x01C67058CLR_FAL_TRIG232組和3組GPIO清除下降沿中斷寄存器(GP[32:63])0x01C6705CINSTAT232組和3組GPIO中斷狀態(tài)寄存器(GP[32:63])表9-4GPIO寄存器9.1通用輸入/輸出接口(GPIO)第4、5組GPIO0x01C67060DIR454組和5組GPIO方向寄存器(GP[64:95])0x01C67064OUT_DATA454組和5組GPIO輸出數(shù)據(jù)寄存器(GP[64:95])0x01C67068SET_DATA454組和5組GPIO設(shè)置數(shù)據(jù)寄存器(GP[64:95])0x01C6706CCLR_DATA454組和5組GPIO清除數(shù)據(jù)(GP[64:95])0x01C67070IN_DATA454組和5組GPIO輸入數(shù)據(jù)寄存器(GP[64:95])0x01C67074SET_RIS_TRIG454組和5組GPIO設(shè)置上升沿中斷寄存器(GP[64:95])0x01C67078CLR_RIS_TRIG454組和5組GPIO清除上升沿中斷寄存器(GP[64:95])0x01C6707CSET_FAL_TRIG454組和5組GPIO設(shè)置下降沿中斷寄存器(GP[64:95])0x01C67080CLR_FAL_TRIG454組和5組GPIO清除下降沿中斷寄存器(GP[64:95])0x01C67084INSTAT454組和5組GPIO中斷狀態(tài)寄存器(GP[64:95])第6組GPIO0x01C67088DIR6第6組GPIO方向寄存器(GP[64:95])0x01C6708COUT_DATA6第6組GPIO輸出數(shù)據(jù)寄存器(GP[64:95])0x01C67090SET_DATA6第6組GPIO設(shè)置數(shù)據(jù)寄存器(GP[64:95])0x01C67094CLR_DATA6第6組GPIO清除數(shù)據(jù)(GP[64:95])0x01C67098IN_DATA6第6組GPIO輸入數(shù)據(jù)寄存器(GP[64:95])0x01C6709CSET_RIS_TRIG6第6組GPIO設(shè)置上升沿中斷寄存器(GP[64:95])0x01C670A0CLR_RIS_TRIG6第6組GPIO清除上升沿中斷寄存器(GP[64:95])0x01C670A4SET_FAL_TRIG6第6組GPIO設(shè)置下降沿中斷寄存器(GP[64:95])0x01C670A8CLR_FAL_TRIG6第6組GPIO清除下降沿中斷寄存器(GP[64:95])0x01C670ACINSTAT6第6組GPIO中斷狀態(tài)寄存器(GP[64:95])0x01C670B0-0x01C67FFF—預(yù)留9.1通用輸入/輸出接口(GPIO)

下面詳細(xì)介紹各GPIO寄存器的功能及設(shè)置方式:①外設(shè)識別寄存器(PID)外設(shè)識別寄存器(PID)包含外設(shè)的識別數(shù)據(jù)(類型、類和版本),如圖9-2和表9-5所示。圖9-2外設(shè)識別寄存器(PID)9.1通用輸入/輸出接口(GPIO)位域值描述31-30SCHEME1PID編碼方案,該域值固定為0129-28Reserved0預(yù)留27-16FUNCTION0-FFFh功能區(qū),GPIO=483h15-11RTL0-1FhRTL識別,GPIO=010-8MAJOR0-FhMajorrevision=1h7-6CUSTOM0-3h自定義標(biāo)識,GPIO=05-0MINOR0-FhMinorRevision,代碼格式MAJOR_REVISION.MINOR_REVISIONMinorrevision=5h表9-5外部識別寄存器(PID)域描述②外設(shè)控制寄存器(PCR)外設(shè)控制寄存器(PCR)可確定仿真暫停模式,F(xiàn)REE位固定為1,因此,GPIO忽略了仿真暫停請求信號,并像往常一樣在仿真暫停模式中運行。PCR描述如圖9-3和表9-6所示。9.1通用輸入/輸出接口(GPIO)圖9-3外設(shè)控制寄存器(PCR)表9-6外設(shè)控制寄存器(PCR)域描述位域值描述31-2Reserved0預(yù)留1SOFT0軟件使能模式位。這個位與FREE位一起使用,以確定仿真暫停模式。FREE=1,所以這個位沒有影響。0FREE1不同步使能模式位。自由位固定為1,所以GPIO在仿真暫停模式中是不同步的。9.1通用輸入/輸出接口(GPIO)

下面詳細(xì)介紹各GPIO寄存器的功能及設(shè)置方式:①外設(shè)識別寄存器(PID)外設(shè)識別寄存器(PID)包含外設(shè)的識別數(shù)據(jù)(類型、類和版本),如圖9-2和表9-5所示。圖9-2外設(shè)識別寄存器(PID)9.1通用輸入/輸出接口(GPIO)

③GPIO中斷使能寄存器(BINTEN)GPIO中斷使能寄存器(BINTEN)如圖9-4所示,功能描述如表9-7所示,注意BINTEN中這些位對中斷和EDMA事件都控制。圖9-4GPIO中斷使能寄存器(BINTEN)9.1通用輸入/輸出接口(GPIO)位域值描述31-7Reserved0預(yù)留6EN601組6中斷使能用于禁用或啟用第6組GPIO中斷(GP[110-96])組6中斷禁用組6中斷啟用5EN501組5中斷使能用于禁用或啟用第5組GPIO中斷(GP[95-80])組5中斷禁用組5中斷啟用4EN401組4中斷使能用于禁用或啟用第4組GPIO中斷(GP[79-64])組4中斷禁用組4中斷啟用3EN301組3中斷使能用于禁用或啟用第3組GPIO中斷(GP[63-48])組3中斷禁用組3中斷啟用2EN201組2中斷使能用于禁用或啟用第2組GPIO中斷(GP[47-32])組2中斷禁用組2中斷啟用1EN101組1中斷使能用于禁用或啟用第1組GPIO中斷(GP[31-16])組1中斷禁用組1中斷啟用0EN001組0中斷使能用于禁用或啟用第0組GPIO中斷(GP[15-0])組0中斷禁用組0中斷啟用表9-7GPIO中斷使能寄存器(BINTEN)域描述9.1通用輸入/輸出接口(GPIO)9.1.4GPIO寄存器

TMS320DM6437有7組GPIO信號,這些GPIO信號通過與其相關(guān)的多個寄存器來控制,在這些寄存器中,對于每個GPIO信號有多個控制域。對每個GPIO信號組,GPIO控制寄存器被組織為1個32位寄存器,這些控制寄存器進(jìn)一步被分組,每組又含有一系列控制寄存器。每組控制寄存器的寄存器名均定義為register_nameXY形式,其中X和Y是兩組GPIO控制位,例如01、23、45等。與每個GPIO相關(guān)的寄存器域均定義為field_nameN形式,其中N是GPIO信號的數(shù)目,例如,GP[0]位于第0組的GPIO,控制寄存器名為register_name01,與GP[0]相關(guān)的寄存器域為field_name0,GP[0]的控制位位于寄存器的位0。與之相比,GP[110]位于第6組的GPIO,控制寄存器名為register_name6,與GP[110]相關(guān)的寄存器域為field_name110,GP[110]的控制位位于寄存器的位14。表9-3顯示了與GPIO引腳相關(guān)的寄存器組及控制位信息,其可用于定位寄存器控制位。④GPIO方向寄存器(DIRn)GPIO方向寄存器(DIRn)決定了GPIO第l組中的第n個引腳是否為輸入或輸出,每組GPIO有多達(dá)16個GPIO引腳。默認(rèn)方式下,所有的GPIO引腳均被配置為輸入(位值=1)。GPIO方向寄存器DIR01、DIR23、DIR45和DIR6如圖9-5所示,功能描述如表9-8所示。圖9-5方向寄存器DIR01、DIR23、DIR45和DIR6表9-8GPIO方向寄存器(DIRn)域描述位域值描述31-1601DIRn位用來控制第2l+1組中引腳n的方向(輸出=0,輸入=1),其位域用來配置第1、3、5組的GPIO引腳GPIO引腳n為輸出GPIO引腳n為輸入15-0DIRn01DIRn位用來控制第2l組中引腳n的方向(輸出=0,輸入=1),其位域用來配置第0、2、4、6組的GPIO引腳GPIO引腳n為輸出GPIO引腳n為輸入⑤GPIO輸出數(shù)據(jù)寄存器(OUT_DATAn)如果引腳被配置為輸出(DIRn=0),GPIO輸出數(shù)據(jù)寄存器(OUT_DATAn)決定了在相應(yīng)的第l組GPIO引腳n上驅(qū)動的值,此時寫入不會影響未配置為GPIO輸出的引腳。OUT_DATAn中的位通過直接寫入此寄存器來設(shè)置或清除。讀OUT_DATAn返回的寄存器值不是引腳的值(其可能被配置為輸入)。GPIO輸出數(shù)據(jù)寄存器(OUT_DATAn)如圖9-6所示,功能描述如表9-9所示。圖9-6GPIO輸出數(shù)據(jù)寄存器(OUT_DATAn)域值描述31-16OUTn01當(dāng)GPIO引腳n配置為輸出(DIRn=0),OUTn位用來驅(qū)動第2l+1組中引腳n的輸出(low=0,high=1);當(dāng)GPIO引腳n配置為輸入,忽略O(shè)UTn位。該位域用來配置第1、3、5組的GPIO引腳GPIO引腳n驅(qū)動為低GPIO引腳n驅(qū)動為高15-0OUTn01當(dāng)GPIO引腳n配置為輸出(DIRn=0),OUTn位用來驅(qū)動第2l組中引腳n的輸出(low=0,high=1);當(dāng)GPIO引腳n配置為輸入,忽略O(shè)UTn位。該位域用來配置第0、2、4、6組的GPIO引腳GPIO引腳n驅(qū)動為低GPIO引腳n驅(qū)動為高表9-9GPIO輸出數(shù)據(jù)寄存器(OUT_DATAn)域描述⑥GPIO設(shè)置數(shù)據(jù)寄存器(SET_DATAn)如果引腳被配置為輸出(DIRn=0),GPIO設(shè)置數(shù)據(jù)寄存器(SET_DATAn)控制相應(yīng)的第l組GPIO引腳n上的值驅(qū)動為高,此時寫入不會影響未配置為GPIO輸出的引腳。SET_DATAn中的位通過直接寫入此寄存器來設(shè)置或清除。讀SETn位返回相應(yīng)的GPIO引腳n的輸出驅(qū)動狀態(tài)。GPIO設(shè)置數(shù)據(jù)寄存器(SET_DATAn)如圖9-7所示,功能描述如表9-10所示。圖9-7GPIO設(shè)置數(shù)據(jù)寄存器(SET_DATAn)位域值描述31-16SETn01l+1組中引腳n的輸出;當(dāng)GPIO引腳n配置為輸入,忽略SETn位。將1寫入SETn位設(shè)置相應(yīng)的GPIO引腳n的輸出驅(qū)動狀態(tài);讀取SETn位會返回相應(yīng)的GPIO引腳n的輸出驅(qū)動器狀態(tài)。該位域用來配置第1、3、5組的GPIO引腳。無影響設(shè)置GPIO引腳n輸出115-0SETn01當(dāng)GPIO引腳n配置為輸出(DIRn=0),SETn位用來設(shè)置第2l組中引腳n的輸出;當(dāng)GPIO引腳n配置為輸入,忽略SETn位。將1寫入SETn位設(shè)置相應(yīng)的GPIO引腳n的輸出驅(qū)動狀態(tài);讀取SETn位會返回相應(yīng)的GPIO引腳n的輸出驅(qū)動器狀態(tài)。該位域用來配置第0、2、4、6組的GPIO引腳。無影響設(shè)置GPIO引腳n輸出1

表9-10GPIO設(shè)置數(shù)據(jù)寄存器(SET_DATAn)域描述⑦GPIO清除數(shù)據(jù)寄存器(CLR_DATAn)如果引腳被配置為輸出(DIRn=0),GPIO清除數(shù)據(jù)寄存器(CLR_DATAn)控制相應(yīng)的第l組GPIO引腳n上的值驅(qū)動為低,此時寫入不會影響未配置為GPIO輸出的引腳。CLR_DATAn中的位通過直接寫入此寄存器來設(shè)置或清除。讀CLRn位返回相應(yīng)的GPIO引腳n的輸出驅(qū)動狀態(tài)。GPIO清除數(shù)據(jù)寄存器(CLR_DATAn)如圖9-8所示,功能描述如表9-11所示。圖9-8GPIO清除數(shù)據(jù)寄存器(CLR_DATAn)

表9-11GPIO清除數(shù)據(jù)寄存器(CLR_DATAn)域描述域值描述31-16CLRn01(DIRn=0),CLRn位用來清除第2l+1組中引腳n的輸出;當(dāng)GPIO引腳n配置為輸入,忽略CLRn位。將1寫入CLRn位清除相應(yīng)的GPIO引腳n的輸出驅(qū)動狀態(tài);讀取CLRn位會返回相應(yīng)的GPIO引腳n的輸出驅(qū)動器狀態(tài)。該位域用來配置第1、3、5組的GPIO引腳。無影響清除GPIO引腳n輸出為015-0CLRn01當(dāng)GPIO引腳n配置為輸出(DIRn=0),CLRn位用來清除第2l組中引腳n的輸出;當(dāng)GPIO引腳n配置為輸入,忽略CLRn位。將1寫入CLRn位清除相應(yīng)的GPIO引腳n的輸出驅(qū)動狀態(tài);讀取CLRn位會返回相應(yīng)的GPIO引腳n的輸出驅(qū)動器狀態(tài)。該位域用來配置第0、2、4、6組的GPIO引腳。無影響清除GPIO引腳n輸出為0

⑧GPIO輸入數(shù)據(jù)寄存器(IN_DATAn)通過使用GPIO輸入數(shù)據(jù)寄存器(IN_DATAn)讀取GPIO信號的當(dāng)前狀態(tài)。對于配置為輸入的GPIO信號,讀取IN_DATAn返回與GPIO外設(shè)時鐘同步的輸入信號狀態(tài)。對于配置為輸出的GPIO信號,讀取IN_DATAn將返回設(shè)備驅(qū)動的輸出值。GPIO輸入數(shù)據(jù)寄存器(IN_DATAn)如圖9-9所示,功能描述如表9-12所示。圖9-9GPIO輸入數(shù)據(jù)寄存器(IN_DATAn)表9-12GPIO輸入數(shù)據(jù)寄存器(IN_DATAn)功能描述位域值描述31-16INn01讀INn位返回第2l+1組GPIO中引腳n的狀態(tài)。該位域用來配置第1、3、5組的GPIO引腳。GPIO引腳n為邏輯低GPIO引腳n為邏輯高15-0INn01讀INn位返回第2l組GPIO中引腳n的狀態(tài)。該位域用來配置第0、2、4、6組的GPIO引腳。GPIO引腳n為邏輯低GPIO引腳n為邏輯高⑨GPIO設(shè)置上升沿中斷寄存器(SET_RIS_TRIGn)GPIO設(shè)置上升沿中斷寄存器(SET_RIS_TRIGn)使能GPIO引腳上升沿生成一個GPIO中斷。GPIO設(shè)置上升沿中斷寄存器(SET_RIS_TRIGn)如圖9-10所示,功能描述如表9-13所示。圖9-10GPIO設(shè)置上升沿中斷寄存器(SET_RIS_TRIGn)表9-13GPIO設(shè)置上升沿中斷寄存器(SET_RIS_TRIGn)功能描述位域值描述31-16SETRISn01l+1組中引腳n的上升沿中斷生成函數(shù)被啟用。因此,如果中斷函數(shù)啟用,SET_RIS_TRIGn和CLR_RIS_TRIGn寄存器中的該位為1;如果中斷函數(shù)禁用,則這兩個寄存器中該位都為零。該位域用來配置第1、3、5組的GPIO引腳。無影響GPIO引腳n由低到高的電位變化將觸發(fā)中斷15-0SETRISn01讀取SETRISn位返回一個指示,顯示是否第2l組中引腳n的上升沿中斷生成函數(shù)被啟用。因此,如果中斷函數(shù)啟用,SET_RIS_TRIGn和CLR_RIS_TRIGn寄存器中的該位為1;如果中斷函數(shù)禁用,則這兩個寄存器中該位都為零。該位域用來配置第0、2、4、6組的GPIO引腳。無影響GPIO引腳n由低到高的電位變化將觸發(fā)中斷⑩GPIO清除上升沿中斷寄存器(CLR_RIS_TRIGn)GPIO清除上升沿中斷寄存器(CLR_RIS_TRIGn)禁用GPIO引腳上升沿生成一個GPIO中斷。GPIO清除上升沿中斷寄存器(CLR_RIS_TRIGn)如圖9-11所示,功能描述如表9-14所示。圖9-11GPIO清除上升沿中斷寄存器(CLR_RIS_TRIGn)表9-14GPIO清除上升沿中斷寄存器(CLR_RIS_TRIGn)功能描述位域值描述31-16CLRRISn01讀取CLRRISn位返回一個指示,顯示是否第2l+1組中引腳n的上升沿中斷生成函數(shù)被啟用。因此,如果中斷函數(shù)啟用,SET_RIS_TRIGn和CLR_RIS_TRIGn寄存器中的該位為1;如果中斷函數(shù)禁用,則這兩個寄存器中該位都為零。該位域用來配置第1、3、5組的GPIO引腳。無影響GPIO引腳n由低到高的電位變化不觸發(fā)中斷15-0CLRRISn01讀取SETRISn位返回一個指示,顯示是否第2l組中引腳n的上升沿中斷生成函數(shù)被啟用。因此,如果中斷函數(shù)啟用,SET_RIS_TRIGn和CLR_RIS_TRIGn寄存器中的該位為1;如果中斷函數(shù)禁用,則這兩個寄存器中該位都為零。該位域用來配置第0、2、4、6組的GPIO引腳。無影響GPIO引腳n由低到高的電位變化不觸發(fā)中斷?GPIO設(shè)置下降沿中斷寄存器(SET_FAL_TRIGn)GPIO設(shè)置下降沿中斷寄存器(SET_FAL_TRIGn)使能GPIO引腳下降沿生成一個GPIO中斷。GPIO設(shè)置下降沿中斷寄存器(SET_FAL_TRIGn)如圖9-12所示,功能描述如表9-15所示。圖9-12GPIO設(shè)置下降沿中斷寄存器(SET_FAL_TRIGn)表9-15GPIO設(shè)置下降沿中斷寄存器(SET_FAL_TRIGn)功能描述位域值描述31-16SETFALn01讀取SETFALn位返回一個指示,顯示是否第2l+1組中引腳n的下降沿中斷生成函數(shù)被啟用。因此,如果中斷函數(shù)啟用,SET_FAL_TRIGn和CLR_FAL_TRIGn寄存器中的該位為1;如果中斷函數(shù)禁用,則這兩個寄存器中該位都為零。該位域用來配置第1、3、5組的GPIO引腳。無影響GPIO引腳n由高到低的電位變化將觸發(fā)中斷15-0SETFALn01讀取SETFALn位返回一個指示,顯示是否第2l組中引腳n的下降沿中斷生成函數(shù)被啟用。因此,如果中斷函數(shù)啟用,SET_FAL_TRIGn和CLR_FAL_TRIGn寄存器中的該位為1;如果中斷函數(shù)禁用,則這兩個寄存器中該位都為零。該位域用來配置第0、2、4、6組的GPIO引腳。無影響GPIO引腳n由高到低的電位變化將觸發(fā)中斷?GPIO清除下降沿中斷寄存器(CLR_FAL_TRIGn)GPIO清除下降沿中斷寄存器(CLR_FAL_TRIGn)禁用GPIO引腳下降沿生成一個GPIO中斷。GPIO清除下降沿中斷寄存器(CLR_FAL_TRIGn)如圖9-13所示,功能描述如表9-16所示。圖9-13GPIO清除下降沿中斷寄存器(CLR_FAL_TRIGn)表9-16GPIO清除下降沿中斷寄存器(CLR_FAL_TRIGn)功能描述位域值描述31-16CLRFALn01讀取CLRFALn位返回一個指示,顯示是否第2l+1組中引腳n的下降沿中斷生成函數(shù)被啟用。因此,如果中斷函數(shù)啟用,SET_FAL_TRIGn和CLR_FAL_TRIGn寄存器中的該位為1;如果中斷函數(shù)禁用,則這兩個寄存器中該位都為零。該位域用來配置第1、3、5組的GPIO引腳。無影響GPIO引腳n由高到低的電位變化不觸發(fā)中斷15-0CLRFALn01讀取CLRFALn位返回一個指示,顯示是否第2l組中引腳n的下降沿中斷生成函數(shù)被啟用。因此,如果中斷函數(shù)啟用,SET_FAL_TRIGn和CLR_FAL_TRIGn寄存器中的該位為1;如果中斷函數(shù)禁用,則這兩個寄存器中該位都為零。該位域用來配置第0、2、4、6組的GPIO引腳。無影響GPIO引腳n由高到低的電位變化不觸發(fā)中斷?GPIO中斷狀態(tài)寄存器(INSTATn)GPIO中斷事件的狀態(tài)可以通過讀取GPIO中斷狀態(tài)寄存器(INSTATn)來監(jiān)控。在相關(guān)bit位上,在GPIO中斷掛起用邏輯1表示,而GPIO中斷未掛起用邏輯0表示。GPIO中斷狀態(tài)寄存器(INSTATn)如圖9-14所示,功能描述如表9-17所示。圖9-14GPIO中斷狀態(tài)寄存器(INSTATn)9.1通用輸入/輸出接口(GPIO)位域值描述31-16STATn01STATn位用于監(jiān)視第2l+1組中引腳n的GPIO中斷是否被掛起。該位域返回第1、3、5組的GPIO引腳狀態(tài)。寫1到STATn位;來清除STATn位,寫0沒有影響。GPIO引腳n無中斷掛起GPIO引腳n中斷掛起15-0STATn01STATn位用于監(jiān)視第2l組中引腳n的GPIO中斷是否被掛起。該位域返回第0、2、4、6組的GPIO引腳狀態(tài)。寫1到STATn位;來清除STATn位,寫0沒有影響。GPIO引腳n無中斷掛起GPIO引腳n中斷掛起表9-17GPIO中斷狀態(tài)寄存器(INSTATn)功能描述9.2定時器9.2.1定時器結(jié)構(gòu)TMS320DM6437有3個64位軟件可編程通用定時器,分別是定時器0(Timer0)、定時器1(Timer1)和定時器2(Timer2),定時器0和定時器1可在64位模式、雙32位非鏈接模式(獨立操作)和雙32位鏈接模式(相互配合操作)下編程,定時器2用作看門狗定時器(WatchdogTimer),定時器結(jié)構(gòu)框圖如圖9-15所示,其特性如下:

?64位加法計數(shù)器;

?4種定時器模式;

?2個時鐘源:內(nèi)部時鐘和通過定時器輸入引腳TINPL輸入外部時鐘(僅定時器0和1);

?2種輸出模式:脈沖模式和時鐘模式;

?2種操作模式:一次操作(定時器運行一個周期停止)和連續(xù)操作(定時器運行一個周期后自動重置);?通用定時器模式可用來生成周期中斷、EDMA同步事件或外部時鐘輸出;?看門狗定時器用于在故障情況下為設(shè)備提供恢復(fù)機制,其超時會導(dǎo)致設(shè)備全局重置(僅定時器2)。圖9-15定時器結(jié)構(gòu)框圖1、時鐘控制定時器0和定時器1可使用內(nèi)部或外部時鐘源來作為計數(shù)周期,下面介紹如何選擇時鐘源,表9-18顯示了時鐘源及對應(yīng)支持的定時器。表9-18定時器支持的時鐘源時鐘源定時器0定時器1定時器2內(nèi)部時鐘源√√√外部時鐘輸入(TIN0和TIN1)√√-如圖9-16所示,使用定時器控制寄存器(TCR)中的時鐘源CLKSRC12位選擇定時器時鐘源,兩種時鐘源均可驅(qū)動定時器時鐘。在重置時,時鐘源為內(nèi)部時鐘。?內(nèi)部時鐘,設(shè)置CLKSRC12=0;?定時器0和定時器1的外部時鐘輸入(TIN0和TIN1),設(shè)置CLKSRC12=1。圖9-16定時器時鐘源框圖有關(guān)每個時鐘源的配置選項詳細(xì)分析如下:(1)使用內(nèi)部時鐘源內(nèi)部時鐘源是一個固定的片上27MHz時鐘。由于定時器計數(shù)上限基于時鐘源的每個周期,因此,該時鐘源決定了定時器的速度。在確定定時器的周期和預(yù)分頻器設(shè)置時,根據(jù)27MHz時鐘的周期數(shù)來選擇所需的周期。定時器控制寄存器中的CLKSRC12位控制內(nèi)部或外部時鐘被用作定時器的時鐘源。如果定時器配置在64位模式或32位鏈接模式下,則CLKSRC12位控制整個定時器的時鐘源。如果定時器配置為雙32位非鏈接模式(定時器全局控制寄存器TGCR中TIMMODE=1),CLKSRC12位控制Timer1:2,Timer3:4必須使用內(nèi)部時鐘源。要選擇內(nèi)部時鐘作為定時器的時鐘源,CLKSRC12位必須清除為0。(2)使用外部時鐘源(僅定時器0和1)可以提供一個外部時鐘源,通過TIN0和TIN1引腳對定時器計時。定時器控制寄存器(TCR)中的CLKSRC12位控制內(nèi)部或外部時鐘用作定時器的時鐘源。如果定時器配置在64位模式或32位鏈接模式下,則CLKSRC12位控制整個定時器的時鐘源。如果定時器配置為雙32位鏈接模式(TGCR中的TIMMODE=1),則CLKSRC12位控制Timer1:2,Timer3:4必須使用外部時鐘。為了選擇外部時鐘作為定時器的時鐘源,CLKSRC12位必須設(shè)置為1。2、信號描述輸入信號可用于定時器0和定時器1。定時器0輸入(TIN0)和定時器1輸入(TIN1)連接到輸入時鐘電路以允許定時器同步。對于音頻應(yīng)用程序,定時器0提供了一個“÷6”分頻器,確保音頻時鐘滿足小于CLK/4的定時器模塊要求,此時CLK等于27MHz定時器外設(shè)時鐘。定時器0的“÷6”分頻器可以通過設(shè)置定時器0輸入選擇位(TINP0SEL))為1來啟用,TINP0SEL位位于系統(tǒng)模塊內(nèi)的定時器控制寄存器(TIMERCTL)。當(dāng)TINP0SEL=1時,使能“÷6”選項,并且定時器控制寄存器(TCR)中的定時器輸入反相控制(INVINP)選項設(shè)置為1,那么“÷6”信號的結(jié)果被反相。如果TINP0SEL位被清除為0,并且設(shè)置INVINP選項,那么輸入信號將直接來自于定時器0的輸入引腳(TINP0L),而INVINP選項轉(zhuǎn)換為輸入源信號。定時器0和定時器1提供了外部時鐘輸出,有輸出模式:脈沖模式和時鐘模式。定時器輸出模式通過使用TCR中的時鐘/脈沖模式位(Clock/Pulse,CP)來選擇。在脈沖模式(CP=0)下,脈沖寬度位(PWID)可以配置為1、2、3或4個定時器時鐘周期。定時器狀態(tài)(TSTAT)變?yōu)殚e置前,脈沖寬度設(shè)置決定了定時器時鐘周期的數(shù)量。通過設(shè)置位于TCR中的定時器輸出反相控制位(INVOUT)為1,可以反轉(zhuǎn)脈沖。在時鐘模式(CP=1)下,定時器輸出引腳上的信號有50%的占空比,每次信號觸發(fā)(從高到低或從低到高)定時器計數(shù)器達(dá)到零,輸出引腳的值位于TCR中的TSTAT位。9.2定時器

溫馨提示

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

評論

0/150

提交評論