![Cx的片上外設(shè)實用實用教案_第1頁](http://file3.renrendoc.com/fileroot3/2021-11/24/8d5c76bb-a487-43f0-b0d5-6bb79f69af34/8d5c76bb-a487-43f0-b0d5-6bb79f69af341.gif)
![Cx的片上外設(shè)實用實用教案_第2頁](http://file3.renrendoc.com/fileroot3/2021-11/24/8d5c76bb-a487-43f0-b0d5-6bb79f69af34/8d5c76bb-a487-43f0-b0d5-6bb79f69af342.gif)
![Cx的片上外設(shè)實用實用教案_第3頁](http://file3.renrendoc.com/fileroot3/2021-11/24/8d5c76bb-a487-43f0-b0d5-6bb79f69af34/8d5c76bb-a487-43f0-b0d5-6bb79f69af343.gif)
![Cx的片上外設(shè)實用實用教案_第4頁](http://file3.renrendoc.com/fileroot3/2021-11/24/8d5c76bb-a487-43f0-b0d5-6bb79f69af34/8d5c76bb-a487-43f0-b0d5-6bb79f69af344.gif)
![Cx的片上外設(shè)實用實用教案_第5頁](http://file3.renrendoc.com/fileroot3/2021-11/24/8d5c76bb-a487-43f0-b0d5-6bb79f69af34/8d5c76bb-a487-43f0-b0d5-6bb79f69af345.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、8.1 時鐘(shzhng)發(fā)生器n 時鐘發(fā)生器概況n 時鐘工作模式(msh)(msh)n CLKOUT CLKOUT輸出n 使用要點第1頁/共154頁第一頁,共155頁。8.1.1 時鐘(shzhng)發(fā)生器概況l 作用:從CLKIN引腳接收輸入時鐘信號(xnho),將其變換為CPU及其外設(shè)所需要的工作時鐘。工作時鐘經(jīng)過分頻通過引腳CLKOUT輸出,可供其他(qt)器件使用時鐘發(fā)生器內(nèi)有一個數(shù)字鎖相環(huán)(DPLL)和一個時鐘模式寄存器(CLKMD)第2頁/共154頁第二頁,共155頁。8.1.2 時鐘(shzhng)工作模式l時鐘發(fā)生器有三種(sn zhn)工作模式:l旁路模式(BYPASS)
2、l鎖定模式(LOCK)lIdle模式l時鐘模式寄存器(CLKMD)中的PLL ENABLE位控制旁路模式和鎖定模式l可以通過關(guān)閉CLKGEN Idle模塊使時鐘發(fā)生器工作在Idle模式。第3頁/共154頁第三頁,共155頁。1旁路(pn l)模式(BYPASS)l如果PLL ENABLE=0,PLL工作于旁路模式,PLL對輸入時鐘信號進(jìn)行分頻(fn pn)。l分頻(fn pn)值由BYPASS DIV確定:l如果BYPASSDIV=00,輸出時鐘信號的頻率與輸入信號的頻率相同,即1分頻(fn pn)l如果BYPASSDIV=01,輸出時鐘信號的頻率是輸入信號的1/2,即2分頻(fn pn)l如
3、果BYPASSDIV=1x,輸出時鐘信號的頻率是輸入信號的1/4,即4分頻(fn pn)第4頁/共154頁第四頁,共155頁。2.鎖定(su dn)模式(LOCK)l如果PLL ENABLE=1,PLL工作(gngzu)于鎖定模式。l輸出的時鐘頻率由下面公式確定:輸入頻率1DIV PLLMULT PLL輸出頻率3. Idle模式(msh)l為了降低功耗,可以加載Idle配置,使DSP的時鐘發(fā)生器進(jìn)入Idle模式l當(dāng)時鐘發(fā)生器處于Idle模式時,輸出時鐘停止,引腳被拉為高電平。第5頁/共154頁第五頁,共155頁。表8-1 時鐘(shzhng)模式寄存器CLKMD位字 段說 明15Rsvd保留1
4、4IAI退出Idle狀態(tài)后,決定PLL是否重新鎖定0 PLL將使用與進(jìn)入Idle狀態(tài)之前相同的設(shè)置進(jìn)行鎖定1 PLL將重新鎖定過程13IOB處理失鎖0 時鐘發(fā)生器不中斷PLL,PLL繼續(xù)輸出時鐘1 時鐘發(fā)生器切換到旁路模式,重新開始PLL鎖相過程12TEST必須保持為0117PLL MULT鎖定模式下的PLL倍頻值,0318.1.3 時鐘時鐘(shzhng)模式寄存器模式寄存器CLKMD時鐘模式寄存器CLKMD位于IO空間(kngjin),地址為:1c00h第6頁/共154頁第六頁,共155頁。表8-1 時鐘(shzhng)模式寄存器CLKMD(續(xù))位字 段說 明65PLL DIV鎖定模式下的
5、PLL分頻值,034PLL ENABLE使能或關(guān)閉PLL0 關(guān)閉PLL,進(jìn)入旁路模式1 使能PLL,進(jìn)入鎖定模式32BYPASS DIV旁路下的分頻值00 一分頻01 二分頻10或11 四分頻1BREAKLNPLL失鎖標(biāo)志0 PLL已經(jīng)失鎖1 鎖定狀態(tài)或有對CLKMD寄存器的寫操作0LOCK鎖定模式標(biāo)志0 時鐘發(fā)生器處于旁路模式1 時鐘發(fā)生器處于鎖定模式第7頁/共154頁第七頁,共155頁。8.1.4 CLKOUT輸出(shch)lCPU時鐘可以通過(tnggu)一個時鐘分頻器對外提供CLKOUT信號lCLKOUT的頻率由系統(tǒng)寄存器(SYSR)中的CLKDIV確定lSYSR地址:07fdh,
6、CLKDIV位于其最低3位。l當(dāng)CLKDIV=000b時,CLKOUT的頻率等于CPU時鐘頻率l當(dāng)CLKDIV=001b時,CLKOUT的頻率等于CPU時鐘頻率的1/2l當(dāng)CLKDIV=010b時,CLKOUT的頻率等于CPU時鐘頻率的1/3l當(dāng)CLKDIV=011b時,CLKOUT的頻率等于CPU時鐘頻率的1/4l當(dāng)CLKDIV=100b時,CLKOUT的頻率等于CPU時鐘頻率的1/5l當(dāng)CLKDIV=101b時,CLKOUT的頻率等于CPU時鐘頻率的1/6l當(dāng)CLKDIV=110b時,CLKOUT的頻率等于CPU時鐘頻率的1/7l當(dāng)CLKDIV=111b時,CLKOUT的頻率等于CPU時鐘
7、頻率的1/8第8頁/共154頁第八頁,共155頁。8.1.5 使用(shyng)要點l通過對時鐘模式寄存器(CLKMD)的操作,可以根據(jù)需要設(shè)定時鐘發(fā)生器的工作模式和輸出頻率。l在設(shè)置過程中除了工作模式、分頻值和倍頻值以外,還要注意(zh y)其他因素對PLL的影響。 第9頁/共154頁第九頁,共155頁。1.省電(Idle)l為了減少功耗,可以使時鐘發(fā)生器處于省電狀態(tài)l當(dāng)時鐘發(fā)生器退出省電狀態(tài)時,PLL自動切換到旁路模式,進(jìn)行跟蹤(gnzng)鎖定,鎖定后返回到鎖定模式l時鐘模式寄存器與省電有關(guān)的位是IAIlIAI =0: PLL將使用與進(jìn)入Idle狀態(tài)之前相同的設(shè)置進(jìn)行鎖定;l IAI =
8、1:PLL將重新鎖定過程第10頁/共154頁第十頁,共155頁。2.DSP復(fù)位(f wi)l在DSP復(fù)位期間和復(fù)位之后,PLL工作于旁路模式,輸出的時鐘頻率由CLKMD引腳上的電平確定(qudng)l如果CLKMD引腳為低電平,則輸出頻率等于輸入頻率l如果CLKMD引腳為高電平,則輸出頻率等于輸入頻率的1/2。 注意(zh y):5509A無CLKMD引腳!第11頁/共154頁第十一頁,共155頁。3.失鎖l鎖相環(huán)對輸入時鐘(shzhng)跟蹤鎖定之后,可能會由于其他原因使其輸出時鐘(shzhng)發(fā)生偏移,導(dǎo)致失鎖。l出現(xiàn)失鎖現(xiàn)象后,PLL的動作由時鐘(shzhng)模式寄存器中的IOB確定
9、lIOB=0: 時鐘(shzhng)發(fā)生器不中斷PLL,PLL繼續(xù)輸出時鐘(shzhng)lIOB=1: 時鐘(shzhng)發(fā)生器切換到旁路模式,重新開始PLL鎖相過程第12頁/共154頁第十二頁,共155頁。MHz121DIV PLLMULT PLLMHz144121DIV PLLMULT PLL例8-18-1,TMS320VC5509ATMS320VC5509A系統(tǒng)的晶體振蕩器頻率為12MHz12MHz。通過設(shè)置(shzh)DPLL(shzh)DPLL,使系統(tǒng)時鐘時鐘頻率為144MHz144MHz。(1 1)原理: 使DPLLDPLL工作在鎖定模式:D4(PLL ENABLE)=1bD4
10、(PLL ENABLE)=1b。即:取PLL DIV=0,PLL MULT=12,即:D6D5(PLL DIV)=00b,D11D7(PLL MULT)=12=01100b。時鐘模式(msh)寄存器(CLKMD)的其它位均取為0。(2)匯編語言實現(xiàn)(shxin): mov #0000 01100 00 1 0000b,port(#1c00h) 或 mov #0610h,port(#1c00h); 1c00h為時鐘模式寄存器(CLKMD)的地址。第13頁/共154頁第十三頁,共155頁。(3)C語言實現(xiàn)(shxin): ioport unsigned int *clkmd;clkmd=(unsi
11、gned int *)0 x1c00;*clkmd =0 x0610;(4)使用(shyng)csl實現(xiàn): #include csl_pll.h;PLL_Config Config_PLL=0,/*iai*/0,/*iob*/12, /* pllmult */0 /* div */PLL_config(&Config_PLL);在頭文件中進(jìn)行(jnxng)配置在頭文件中需要包含該庫文件在C程序(通常在初始化部分)中執(zhí)行該函數(shù),完成對DPLL的設(shè)置也可利用PLL_setFreq (Uint16 mul, Uint16 div)函數(shù)直接設(shè)置DPLL第14頁/共154頁第十四頁,共155頁。
12、8.2 通用(tngyng)定時器定時器概況(gikung)工作原理定時器使用要點定時器應(yīng)用實例第15頁/共154頁第十五頁,共155頁。8.2.1 定時器概況(gikung)lC55x 芯片提供了兩個20位的定時器l定時器由兩部分組成:l預(yù)定標(biāo)計數(shù)寄存器(PSC), 4位l主計數(shù)器(TIM), 16位l寄存器:l計數(shù)寄存器(PSC,TIM)l周期寄存器(TDDR,PRD):在定時器初始化或定時值重新裝入過程(guchng)中,將周期寄存器的內(nèi)容復(fù)制到計數(shù)寄存器中第16頁/共154頁第十六頁,共155頁。定時器結(jié)構(gòu)(jigu)框圖第17頁/共154頁第十七頁,共155頁。8.2.2 工作(gn
13、gzu)原理l定時器的工作時鐘lDSP內(nèi)部的CPU時鐘l引腳TIN/TOUTl利用定時器控制寄存器(TCR)中的字段FUNC可以確定(qudng)時鐘源和TIN/TOUT引腳的功能l定時器包括4個寄存器l定時器預(yù)定標(biāo)寄存器PRSC,表8-2l主計數(shù)寄存器TIM,表8-3l主周期(zhuq)寄存器PRD, 表8-4l定時器控制寄存器TCR,表8-5第18頁/共154頁第十八頁,共155頁。 1PRD1TDDRTINT輸入時鐘頻率頻率l 定時原理l預(yù)定標(biāo)計數(shù)寄存器(PSC)由輸入時鐘驅(qū)動,PSC在每個輸入時鐘周期減1,當(dāng)其減到0時,TIM減1,當(dāng)TIM減到0,定時器向CPU發(fā)送一個中斷請求(TIN
14、T)或向DMA控制器發(fā)送同步事件(shjin)l通過設(shè)置定時器控制寄存器(TCR)中的自動重裝控制位ARB,可使定時器工作于自動重裝模式。當(dāng)TIM減到0,重新將周期寄存器(TDDR,PRD)的內(nèi)容復(fù)制到計數(shù)寄存器(PSC,TIM)中,繼續(xù)定時。l定時器發(fā)送中斷信號或同步事件(shjin)信號的頻率可用下式計算:第19頁/共154頁第十九頁,共155頁。表8-2 定時器預(yù)定(ydng)標(biāo)寄存器 PRSC位字 段數(shù) 值說 明1510Rsvd保留96PSC0hFh預(yù)定標(biāo)計數(shù)寄存器54Rsvd保留30TDDR0hFh當(dāng)PSC重新裝入時,將TDDR的內(nèi)容復(fù)制到PSC中PRSC0地址(dzh)為0 x10
15、03, PRSC1地址(dzh)為0 x2403第20頁/共154頁第二十頁,共155頁。表8-3 主計數(shù)(j sh)寄存器 TIM位字 段數(shù) 值說 明150 TIM0000hFFFFh主計數(shù)寄存器表表8-4 主周期主周期(zhuq)寄存器寄存器 PRD位字 段數(shù) 值說 明150PRD0000hFFFFh主周期寄存器。當(dāng)TIM必須重新裝入時,將PRD的內(nèi)容復(fù)制到TIM中PRD0地址(dzh)為0 x1001,PRD1地址(dzh)為0 x2401TIM0地址為0 x1000,TIM1地址為0 x2400第21頁/共154頁第二十一頁,共155頁。表8-5 定時器控制(kngzh)寄存器 TCR
16、位字 段數(shù) 值說 明15IDLEEN01定時器的Idle使能位。定時器不能進(jìn)入idle狀態(tài)如果idle狀態(tài)寄存器中的PERIS=1,定時器進(jìn)入idle狀態(tài)14INTEXT01時鐘源從內(nèi)部切換到外部標(biāo)志位定時器沒有準(zhǔn)備好使用外部時鐘源定時器準(zhǔn)備使用外部時鐘源13ERRTIM01定時器錯誤標(biāo)志沒有監(jiān)測到錯誤,或ERRTIM已被讀取出錯1211FUNCFUNC=00bFUNC=01bFUNC=10bFUNC=11b定時器工作模式選擇位TIN/TOUT為高阻態(tài),時鐘源是內(nèi)部CPU時鐘TIN/TOUT為定時器輸出,時鐘源是內(nèi)部CPU時鐘TIN/TOUT為通用輸出,引腳電平反映的是DATOUT位的值TIN
17、/TOUT為定時器輸入,時鐘源是外部時鐘TCR0地址(dzh)為0 x1002,TCR1地址(dzh)為0 x2402第22頁/共154頁第二十二頁,共155頁。表8-5 定時器控制(kngzh)寄存器 TCR(續(xù)1)位字 段數(shù) 值說 明10TLB01定時器裝載位TIM、PSC不重新裝載將PRD、TDDR分別復(fù)制到TIM、PSC中9SOFT在調(diào)試中遇到斷點時定時器的處理方法8FREE76PWID00011011定時器輸出脈沖的寬度1個CPU時鐘周期2個CPU時鐘周期4個CPU時鐘周期8個CPU時鐘周期5ARB01自動重裝控制位ARB清0每次TIM減為0,PRD裝入TIM中,TDDR裝入PSC中
18、第23頁/共154頁第二十三頁,共155頁。表8-5 定時器控制(kngzh)寄存器 TCR(續(xù)2)位字 段數(shù) 值說 明4TSS01定時器停止?fàn)顟B(tài)位啟動定時器停止定時器3C/P01定時器輸出時鐘/脈沖模式選擇輸出脈沖。脈沖寬度由PWID定義,極性由POLAR定義輸出時鐘。引腳上信號的占空比為50%。2POLAR01時鐘輸出極性位正極性負(fù)極性1DATOUT01當(dāng)TIN/TOUT作為通用輸出引腳,該位控制引腳上的電平低電平高電平0Rsvd0保留第24頁/共154頁第二十四頁,共155頁。8.2.3 定時器使用(shyng)要點1.初始化定時器 (1)停止計時(TSS=1),使能定時器自動裝載(TL
19、B=1) (2)將預(yù)定標(biāo)計數(shù)器周期(zhuq)數(shù)寫入TDDR(以輸入的時鐘周期(zhuq)為基本單位) (3)將主計數(shù)器周期(zhuq)數(shù)裝入PRD (4)關(guān)閉定時器自動裝載(TLB=0),啟動計時(TSS=0)2.停止(tngzh)/啟動定時器 利用時鐘控制寄存器(TCR)中的TSS位可以停止(TSS=1)或啟動定時器(TSS=0)第25頁/共154頁第二十五頁,共155頁。3.DSP復(fù)位復(fù)位(f wi)后定時器寄存器的值后定時器寄存器的值l停止定時(TSS=1)l預(yù)定標(biāo)計數(shù)器值為0l主計數(shù)器值為FFFFhl定時器不進(jìn)行自動(zdng)重裝(ARB=0)lIDLE指令不能使定時器進(jìn)入省電模式
20、l仿真時遇到軟件斷點定時器立即停止工作lTIN/TOUT為高阻態(tài),時鐘源是內(nèi)部時鐘(FUNC=00b)第26頁/共154頁第二十六頁,共155頁。8.2.4 定時器csl庫函數(shù)1. TIMER Configuration StructureStructureTIMER_ConfigMembersUint16 tcr, /Timer Control RegisterUint16 prd, /Period RegisterUint16 prsc /Timer Prescaler RegisterExampleTIMER_Config Config1 = 0 x0010, /* tcr */0 xF
21、FFF, /* prd */0 xF0F0, /* prsc */;第27頁/共154頁第二十七頁,共155頁。2. TIMER_close FunctionFunction void TIMER_close(TIMER_Handle hTimer);Arguments hTimer Device HandleExample TIMER_close(hTimer);第28頁/共154頁第二十八頁,共155頁。3. TIMER_config FunctionFunctionvoid TIMER_config(TIMER_Handle hTimer,TIMER_Config *Config);Ex
22、ampleTIMER_Config MyConfig = 0 x0010, /* tcr */0 xFFFF, /* prd */0 xF0F0 /* prsc */;TIMER_config(hTimer,&MyConfig);第29頁/共154頁第二十九頁,共155頁。4. TIMER_getConfig FunctionFunction void TIMER_getConfig(TIMER_Handle hTimer, TIMER_Config *Config);Arguments Config: Pointer to an initialized TIMER configura
23、tion structurehTimer:Timer Device HandleExample TIMER_Config MyConfig;TIMER_getConfig(hTimer,&MyConfig);第30頁/共154頁第三十頁,共155頁。5. TIMER_getEventId FunctionFunction Uint16 TIMER_getEventId(TIMER_Handle hTimer);Return Value IRQ Event ID for the timer deviceExample Uint16 TimerEventId; TimerEventId =
24、 TIMER_getEventId(hTimer); IRQ_enable(TimerEventId);第31頁/共154頁第三十一頁,共155頁。6. TIMER_open FunctionFunction TIMER_Handle TIMER_open(int devnum,Uint16 flags);Arguments Devnum:Timer Device Number, TIMER_DEV0, TIMER_DEV1,TIMER_DEV_ANYFlags:Event Flag Number, Logical open or TIMER_OPEN_ RESETExample TIMER_
25、Handle hTimer;.hTimer = TIMER_open(TIMER_DEV0,0);第32頁/共154頁第三十二頁,共155頁。7.TIMER_reset FunctionFunction void TIMER_reset(TIMER_Handle hTimer);Description Resets the timer device. Disables and clears the interrupt event and sets the timer registers to default values. If INV (1) is specified, all timer
26、devices are reset.Example TIMER_reset(hTimer);第33頁/共154頁第三十三頁,共155頁。8. TIMER_start FunctionFunction void TIMER_start(TIMER_Handle hTimer);Description Starts the timer device running. TSS field =0.Example TIMER_start(hTimer);9. TIMER_stop FunctionFunction void TIMER_stop(TIMER_Handle hTimer);Descript
27、ion Stops the timer device running. TSS field =1.Example TIMER_stop(hTimer);第34頁/共154頁第三十四頁,共155頁。10. TIMER_tintoutCfg Function Function void TIMER_tintoutCfg(TIMER_Handle hTimer,Uint16 idleen, Uint16 func,Uint16 pwid,Uint16 cp,Uint16 polar);Arguments idleen: Timer idle mode; func: Function of the T
28、IN/TOUT pin and the source of the timer module.pwid: TIN/TOUT pulse widthcp: Clock or pulse modepolar: Polarity of the TIN/TOUT pin第35頁/共154頁第三十五頁,共155頁。Description Configures the TIN/TOUT pin of the device using the TCR registerExample Timer_tintoutCfg(hTimer,1, /*idleen*/1, /*funct*/0, /*pwid*/0,
29、/*cp*/0 /*polar*/ );第36頁/共154頁第三十六頁,共155頁。 例8-1,在TIN/TOUT引腳上產(chǎn)生一個2MHz的時鐘(shzhng),假定DSP的CPU時鐘(shzhng)為200MHz。(1)要點:TIN/TOUT引腳配置為定時器輸出,F(xiàn)UNC設(shè)置為01b使該引腳工作在時鐘模式,CP設(shè)置為1bTIN/TOUT的極性為默認(rèn)的0b由于每當(dāng)計數(shù)器減為0時,引腳的電平就會翻轉(zhuǎn)一次。在CPU時鐘為200MHz的情況(qngkung)下,要求定時器計數(shù)為50設(shè)置自動裝入(ARB=1),使每次計數(shù)器減為0時,計時器自動裝入計數(shù)值,并重新開始計數(shù)置FREE bit 為1,使計時器在
30、遇到仿真斷點時能繼續(xù)工作將IDLEEN bit清0,使計時器即便在外設(shè)時鐘模塊處于idle狀態(tài)下仍然工作第37頁/共154頁第三十七頁,共155頁。;*;定時器寄存器地址;*TIM0 .set 0 x1000 ;TIMER0計數(shù)寄存器PRD0 .set 0 x1001 ;TIMER0周期寄存器TCR0 .set 0 x1002 ;TIMER0控制(kngzh)寄存器PRSC0 .set 0 x1003 ;TIMER0預(yù)定標(biāo)寄存器;*;定時器配置;*TIMER_PERIOD .set 9 ;定時器的周期為10TIMER_PRESCALE .set 4 ;預(yù)定標(biāo)值為5.textINIT:mov #
31、TIMER_PERIOD,port(#PRD0) ;配置定時器周期寄存器mov #TIMER_PRESCALE,port(#PRSC0);配置定時器預(yù)定標(biāo)寄存器(2)匯編語言(hu bin y yn)代碼:第38頁/共154頁第三十八頁,共155頁。;0ERR_TIM 1=如果非法功能改變發(fā)生;01 FUNC 01=TIN/TOUT引腳是定時器輸出;1TLB 1=從周期寄存器裝入;0SOFT n/a;1FREE 1=仿真暫停(zn tn)時,計數(shù)器不停;00 PWID n/a;1 ARB 1=使能自動重裝入;1 TSS 1=停止定時器;1 CP 0=脈沖模式,1=時鐘(觸發(fā))模式;0 POLA
32、R 0=正則極性;0 DATOUT n/a;0 Rsvdand #1111101111101111b ,port(#TCR0);0 TLB 0=停止從周期寄存器裝入;0 TSS 0=啟動計時器mov #0000110100111000b,port(#TCR0);0IDLEEN 0=不和外設(shè)一起(yq) idle;0INTEST n/a第39頁/共154頁第三十九頁,共155頁。(3)C語言代碼(di m)(調(diào)用csl)#include csl_timer.h;TIMER_Handle hTimer;TIMER_Config Config_TIMER=0 x0d38,/TCR/*IDLE_EN=
33、0,FUNC=01b,TLB=1,FREE=1,PWID=00b,ARB=1,TSS=1,C/P=1,POLAR=0,其它(qt)為0.*/0 x09,/*prd*/0 x04 /*prsc */TIMER_config(hTimer,&Config_TIMER)在頭文件中定義(dngy)句柄在頭文件中包含csl_timer.h文件打開定時器0在頭文件中配置結(jié)構(gòu)體hTimer = TIMER_open(TIMER_DEV0,0);TIMER_start(hTimer);TIMER_stop(hTimer);初始化定時器0打開定時器0關(guān)閉定時器0第40頁/共154頁第四十頁,共155頁。
34、8.3 通用(tngyng)I/O口(GPIO)l通用輸入輸出引腳GPIO特點l每個引腳的方向可以由I/O方向寄存器IODIR獨(dú)立配置l引腳上的輸入/輸出狀態(tài)(zhungti)由I/O數(shù)據(jù)寄存器IODATA反映或設(shè)置lTMS320VC5509A PGE有7個GPIO引腳8.3.1 GPIO概況概況(gikung)第41頁/共154頁第四十一頁,共155頁。GPIO數(shù)據(jù)(shj)寄存器IODATA(地址:0 x3401)位字 段數(shù) 值說 明158Rsvd保留70IOxDIR01IOx方向控制位IOx配置為輸入IOx配置為輸出GPIO方向(fngxing)寄存器IODIR(地址:0 x3400)位
35、字 段數(shù) 值說 明158Rsvd保留70IOxD01IOx邏輯狀態(tài)位IOx引腳上的信號為低電平IOx引腳上的信號為高電平8.3.2 GPIO寄存器寄存器第42頁/共154頁第四十二頁,共155頁。8.3.3 GPIO引腳與上電引導(dǎo)引腳與上電引導(dǎo)(yndo)模式模式GPIO0GPIO1GPIO2GPIO3說明0100來自于Mcbsp0的串行EEPROM引導(dǎo)方式(24bit地址)0010USB接口引導(dǎo)方式0101EHPI(多元引導(dǎo))方式0011EHPI(非多元引導(dǎo))方式1000來自于外部16bit異步內(nèi)存的引導(dǎo)方式1100來自于Mcbsp0的串行EEPROM引導(dǎo)方式(16bit地址)1110并行并
36、行EMIF引導(dǎo)方式(引導(dǎo)方式(16bit異步內(nèi)存)異步內(nèi)存)1011來自Mcbsp0同步串行引導(dǎo)方式(16bit數(shù)據(jù))1111來自Mcbsp0同步串行引導(dǎo)方式(8bit數(shù)據(jù))第43頁/共154頁第四十三頁,共155頁。8.3.4 GPIO的的csl庫庫 GPIO_ConfigStructure GPIO_ConfigMembers Uint16 ioen: Pin Enable Register IOEN Uint16 iodir: Pin Direction Register IODIR使用(shyng)時需包含csl_gpio.h文件。第44頁/共154頁第四十四頁,共155頁。2. GP
37、IO_close FunctionFunction void GPIO_close(GPIO_Handle hGpio);ArgumentshGpio:GPIO pin Handle DescriptionFrees GPIO pins previously reserved in call to GPIO_open().Example GPIO_close(hGpio);第45頁/共154頁第四十五頁,共155頁。3. GPIO_open Function Function GPIO_Handle GPIO_open(Uint32 allocMask, Uint32 flags);Argum
38、ents allocMask:GPIO pins to reserve. For list of pins, please see GPIO_pinDirection().Flags:Open flags, currently non defined.Return Value GPIO_Handle:Device handleExample GPIO_Handle hGPIO;hGPio = GPIO_open(GPIO_PGPIO_PIN1,0);第46頁/共154頁第四十六頁,共155頁。4.GPIO_config Function Function void GPIO_config(GP
39、IO_Handle hGpio,GPIO_Config cfg);Arguments hGpio:GPIO Device handlecfg:Pointer to an initialized configuration structureExample GPIO_Handle hGpio;GPIO_Config myConfig = GPIO_PIN1_OUTPUT |GPIO_PIN3_OUTPUT第47頁/共154頁第四十七頁,共155頁。5. GPIO_pinDirectionFunctionvoid GPIO_pinDirection(Uint32 pinMask,Uint16 di
40、rection);Arguments pinMask: GPIO pins affected by directionDirection: Mask used to set pin direction for pins selected in pinMaskDescription Sets the direction for oneor more General purpose I/O pins (input or output)Example /* sets the pin pgpio1 as an input */GPIO_handle hGpio = GPIO_open(GPIO_PGP
41、IO_PIN1|GPIO_PGPIO_PIN15);GPIO_pinDirection(hGPio, GPIO_PGPIO_PIN1, GPIO_PGPIO_PIN1_INPUT);第48頁/共154頁第四十八頁,共155頁。6. GPIO_pinDisable Function Function:void GPIO_pinDisable(Uint32 pinId);Arguments pinID: IDs of the pins to disable.Description Disables one or more pins as GPIO pins.Example /* disables
42、pin pgpio1 as a GPIO pin */GPIO_pinDisable (hGpio,GPIO_PGPIO_PIN1);/* disables parallel pin IO1 as GPIO */第49頁/共154頁第四十九頁,共155頁。7. GPIO_pinEnable Function Functionvoid GPIO_pinEnable(Uint32 pinId)Description Enables a pin as a general purpose I/O pin.Example GPIO_pinEnable (GPIO_GPIO_PIN1);/* enable
43、s pin IO1 as GPIO */第50頁/共154頁第五十頁,共155頁。8. GPIO_pinRead FunctionFunctionint GPIO_pinRead(Uint32 pinId)Return Value Value Value read in GPIO pin (1 or 0)DescriptionReads the value in a general purpose input pin.Example int val;val = GPIO_pinRead (GPIO_GPIO_PIN1);/* reads IO1 pin value */第51頁/共154頁第五
44、十一頁,共155頁。9. GPIO_pinWrite FunctionFunction:void GPIO_pinWrite(Uint32 pinMask Uint16 val)Arguments pinMask:ID of one or more GPIO pins to write. Please see GPIO_pinDirection for a list of valid pin IDs.Val:Value (0 or 1) to write to selected GPIO pins.Description Writes a value to a general purpose
45、output pin.Example /* writes 1 to IO pin0 and IO pin 5 */GPIO_pinWrite (GPIO_GPIO_PIN0 | GPIO_GPIO_PIN5, 1);第52頁/共154頁第五十二頁,共155頁。10. GPIO_pinReset FunctionFunction void GPIO_pinReset(GPIO_Handle hGpio, Uint32 pinMask)Arguments hGpio:GPIO Handle returned from previous call to GPIO_open().pinMask:ID
46、of one or more GPIO pins to write. Please see GPIO_pinDirection for list of valid pin IDs.Description Restores selected GPIO pins to default value of 0.Example /* writes 1 to IO pin1 and IO pin 3 */GPIO_pinReset (hGpio, GPIO_GPIO_PIN1 | GPIO_GPIO_PIN3);第53頁/共154頁第五十三頁,共155頁。8.4 外部(wib)存儲器接口(EMIF)EMI
47、F介紹EMIF請求(qngqi)的優(yōu)先級對存儲器的考慮程序和數(shù)據(jù)訪問 EMIF中的控制寄存器 使用csl配置EMIF 第54頁/共154頁第五十四頁,共155頁。8.4.1 EMIF介紹(jisho)EMIF控制DSP和外部(wib)存儲器之間的所有數(shù)據(jù)傳輸32位外部存儲器接口所有外部接口共享異步接口SBSRAM接口總線保持接口SDRAM接口SBSRAM和SDRAM的時鐘DMA控制器外設(shè)總線控制器CPU數(shù)據(jù)總線CPU程序總線和緩存SDWESDCASSDRASHOLDAHOLDSSWESSOESSADSAREAWEAOEARDY0 : 3BE0:3CE0:21A0:D31CLKMEMSDA10第
48、55頁/共154頁第五十五頁,共155頁。1. EMIF支持(zhch)的存儲器類型lEMIF為三種類型的存儲器提供了無縫接口:l異步存儲器,包括ROM、FLASH以及異步SRAMl同步突發(fā)SRAM(SBSRAM),可以工作在1倍或1/2倍CPU時鐘頻率l同步DRAM(SDRAM),可以工作在1倍或1/2倍CPU時鐘頻率l也可通過(tnggu)EMIF外接A/D轉(zhuǎn)換器、并行顯示接口等外圍設(shè)備第56頁/共154頁第五十六頁,共155頁。l程序(chngx)的訪問l32位數(shù)據(jù)的訪問l16位數(shù)據(jù)的訪問l8位數(shù)據(jù)的訪問2.EMIF支持四種類型支持四種類型(lixng)的的訪問訪問第57頁/共154頁第
49、五十七頁,共155頁。3.EMIF信號信號(xnho)表8-8 外部(wib)存儲器共享接口對于(duy)VC5509A,EMIF數(shù)據(jù)線為D15:0, 地址線為A13:0,BYTE使能控制線為BE1:0指示所訪問存儲器的寬度第58頁/共154頁第五十八頁,共155頁。表8-9 用于異步存儲器的EMIF信號(xnho)表表8-10 用于用于SBSRAM的的EMIF信號信號(xnho)第59頁/共154頁第五十九頁,共155頁。表8-11總線保持(boch)信號表表8-12 用于用于SDRAM的的EMIF信號信號(xnho)第60頁/共154頁第六十頁,共155頁。8.4.2 EMIF請求(qng
50、qi)的優(yōu)先級EMIF請求類型請求類型優(yōu)先級優(yōu)先級說明說明HOLD1(最高最高)引腳拉低引腳拉低緊急刷新緊急刷新2同步同步DRAM需要立刻刷新時,產(chǎn)生請求需要立刻刷新時,產(chǎn)生請求E總線總線3通過通過E總線向外部存儲器寫數(shù)據(jù)時產(chǎn)生這個請求總線向外部存儲器寫數(shù)據(jù)時產(chǎn)生這個請求F總線總線4通過通過F總線向外部存儲器寫數(shù)據(jù)時產(chǎn)生這個請求總線向外部存儲器寫數(shù)據(jù)時產(chǎn)生這個請求D總線總線5通過通過D總線向外部存儲器寫數(shù)據(jù)時產(chǎn)生這個請求總線向外部存儲器寫數(shù)據(jù)時產(chǎn)生這個請求C總線總線6通過通過C總線向外部存儲器讀數(shù)據(jù)時產(chǎn)生這個請求總線向外部存儲器讀數(shù)據(jù)時產(chǎn)生這個請求P總線總線7通過通過P總線向外部存儲器讀數(shù)據(jù)時
51、產(chǎn)生這個請求總線向外部存儲器讀數(shù)據(jù)時產(chǎn)生這個請求Cache8從指令從指令cache來的線填充來的線填充(line fill)請求請求DMA控制器控制器9DMA控制器讀或?qū)懲獠看鎯ζ鲿r,產(chǎn)生這個請求控制器讀或?qū)懲獠看鎯ζ鲿r,產(chǎn)生這個請求刷新刷新10同步同步DRAM需要下一個周期刷新時,產(chǎn)生這個請求需要下一個周期刷新時,產(chǎn)生這個請求第61頁/共154頁第六十一頁,共155頁。8.4.3 對存儲器的考慮(kol)l對EMIF編程時,必須了解:l外部存儲器地址如何分配給片使能(CE)空間l每個CE空間可以同哪些(nxi)類型的存儲器連接l哪些(nxi)寄存器位來配置CE空間第62頁/共154頁第六十二
52、頁,共155頁。1. 存儲器映射(yngsh)和CE空間l C55x的外部存儲映射在存儲空間的分布,相應(yīng)于EMIF的片選使能信號(xnho)l 例如, 空間里的一片存儲器,必須將其片選引腳連接到EMIF的引腳。當(dāng)EMIFl 訪問 空間時,就驅(qū)動 變低。CE1CE1CE1第63頁/共154頁第六十三頁,共155頁。2. EMIF支持的存儲器類型(lixng)和訪問類型(lixng)存儲器類型存儲器類型支持的訪問類型支持的訪問類型異步異步8位存儲器(位存儲器(MTYPE=000b)程序程序異步異步16位存儲器(位存儲器(MTYPE=001b)程序,程序,32位數(shù)據(jù),位數(shù)據(jù),16位位數(shù)據(jù),數(shù)據(jù),8位
53、數(shù)據(jù)位數(shù)據(jù)異步異步32位存儲器(位存儲器(MTYPE=010b)程序,程序,32位數(shù)據(jù),位數(shù)據(jù),16位位數(shù)據(jù),數(shù)據(jù),8位數(shù)據(jù)位數(shù)據(jù)32位的位的SDRAM(MTYPE=011b)程序,程序,32位數(shù)據(jù),位數(shù)據(jù),16位位數(shù)據(jù),數(shù)據(jù),8位數(shù)據(jù)位數(shù)據(jù)32位的位的SBSRAM(MTYPE=100b)程序,程序,32位數(shù)據(jù),位數(shù)據(jù),16位位數(shù)據(jù),數(shù)據(jù),8位數(shù)據(jù)位數(shù)據(jù)表表8-14 8-14 存儲器類型及每種存儲器允許存儲器類型及每種存儲器允許(ynx)(ynx)的訪問類型的訪問類型第64頁/共154頁第六十四頁,共155頁。3. 配置(pizh)CE空間l使用全局控制寄存器(EGCR)和每個CE空間控制寄存
54、器來配置CE空間l對于每個CE空間,必須設(shè)置(shzh)控制寄存器1中的以下域:lMTYPE確定存儲器類型lMEMFREQ決定存儲器時鐘信號的頻率(1倍或1/2倍CPU時鐘信號的頻率)lMEMCEN決定CLKMEM引腳是輸出存儲器時鐘信號還是被拉成高電平l不管每個CE空間(kngjin)里的存儲器類型,一定要對全局控制寄存器寫如下控制位(這些位要影響所有的CE空間(kngjin)):lWPE:對所有的CE空間(kngjin),使能或禁止寫lNOHOLD: 對所有的CE空間(kngjin),使能或禁止HOLD請求第65頁/共154頁第六十五頁,共155頁。8.4.4 程序和數(shù)據(jù)(shj)訪問1、
55、程序、程序(chngx)存儲器的訪問存儲器的訪問l要從外部存儲器取指令代碼時,CPU向EMIF發(fā)送(f sn)一個訪問請求。EMIF必須從外部存儲器讀取一個32位代碼,然后把這全部32個位放到CPU的程序讀總線(P bus)上lEMIF可以管理對3種存儲器寬度的32位訪問:32位、16位、8位第66頁/共154頁第六十六頁,共155頁。l訪問(fngwn)16位寬的外部程序存儲器lEMIF把一個字地址放到地址線A21:0上。 32位的訪問可以(ky)分為兩個16位的傳輸,在連續(xù)的兩個周期內(nèi)完成。在第二個周期,EMIF自動將第一個地址加1,產(chǎn)生第二個地址。l 先讀取字1,再讀取字0l BE3:2
56、無效(高電平), BE1:0有效(低電平)A0不用(byng)第67頁/共154頁第六十七頁,共155頁。l訪問8位寬的外部(wib)程序存儲器EMIF把一個字節(jié)地址(dzh)放到地址(dzh)線A21:0上。 32位的訪問可以分為4個8位的傳輸,在連續(xù)的4個周期內(nèi)完成。在第2、3、4個周期,EMIF自動將第一個地址(dzh)加1,產(chǎn)生下一個新的地址(dzh)。 第68頁/共154頁第六十八頁,共155頁。2、數(shù)據(jù)(shj)訪問lEMIF支持(zhch)的數(shù)據(jù)訪問類型l對32位寬的數(shù)據(jù)存儲器進(jìn)行32、16、8位的數(shù)據(jù)訪問l對16位寬的數(shù)據(jù)存儲器進(jìn)行16、8位的數(shù)據(jù)訪問l本節(jié)介紹16位寬的存儲器
57、作16位的數(shù)據(jù)訪問第69頁/共154頁第六十九頁,共155頁。圖8-8 對16位寬的外部(wib)存儲器所作的16位的數(shù)據(jù)訪問第70頁/共154頁第七十頁,共155頁。8.4.5 EMIF中的控制(kngzh)寄存器表表8-16 EMIF 寄存器寄存器I/O口地址寄存器描 述I/O口地址寄存器描 述0800hEGCREMIF全局控制寄存器080AhCE22CE2空間控制寄存器20801hEMI_RSTEMIF全局復(fù)位寄存器080BhCE23CE2空間控制寄存器30802hEMI_BEEMIF總線錯誤狀態(tài)寄存器080ChCE31CE3空間控制寄存器10803hCE01CE0空間控制寄存器1080
58、DhCE32CE3空間控制寄存器20804hCE02CE0空間控制寄存器2080EhCE33CE3空間控制寄存器30805hCE03CE0空間控制寄存器3080FhSDC1SDRAM控制寄存器10806hCE11CE1空間控制寄存器10810hSDPERSDRAM周期寄存器0807hCE12CE1空間控制寄存器20811hSDCNTSDRAM計數(shù)寄存器0808hCE13CE1空間控制寄存器30812hINITSDRAM初值寄存器0809hCE21CE2空間控制寄存器10813hSDC2SDRAM控制寄存器2第71頁/共154頁第七十一頁,共155頁。8.5 多通道緩沖(hunchng)串口Mc
59、BSPMcBSP概述McBSP組成框圖采樣率發(fā)生器多通道模式選擇異常(ychng)處理McBSP寄存器第72頁/共154頁第七十二頁,共155頁。8.5.1 McBSP概述(i sh)lMcBSP(多通道緩沖串口,Multi-channel Buffered Serial Ports),可以與符合標(biāo)準(zhǔn)的外部設(shè)備和其它DSP器件相連。lMcBSP的特點l全速(qun s)雙工通信。l雙緩存發(fā)送,三緩存接收,支持傳送連續(xù)的數(shù)據(jù)流。l獨(dú)立的收發(fā)時鐘信號和幀信號。l128個通道收發(fā)。第73頁/共154頁第七十三頁,共155頁。u可與工業(yè)標(biāo)準(zhǔn)(biozhn)的編解碼器、模擬接口芯片(AICs)及其他串行
60、A/D、D/A芯片直接連接。u能夠向CPU發(fā)送中斷,向DMA控制器發(fā)送DMA事件。u具有可編程的采樣率發(fā)生器,可控制時鐘和幀同步信號。u可選擇幀同步脈沖和時鐘信號的極性。u傳輸?shù)淖珠L可選,可以是8位、12位、16位、20位、24位或32位。u具有u律和A律壓縮擴(kuò)展功能。u可將McBSP引腳配置為通用輸入輸出引腳。第74頁/共154頁第七十四頁,共155頁。8.5.2 McBSP組成(z chn)框圖第75頁/共154頁第七十五頁,共155頁。lMcBSP包括一個數(shù)據(jù)通道和一個控制通道,通過7個引腳與外部設(shè)備連接。l數(shù)據(jù)發(fā)送引腳DX負(fù)責(zé)數(shù)據(jù)的發(fā)送l數(shù)據(jù)接收引腳DR負(fù)責(zé)數(shù)據(jù)的接收l發(fā)送時鐘(shzhng)引腳CLKX、接收時鐘
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鄉(xiāng)鎮(zhèn)單位解聘合同范本
- 農(nóng)民在工地打工合同范本
- 公廁施工范圍合同范本
- 京西印玥合同范本
- 2025年度歷史文化名城保護(hù)工程個人勞務(wù)分包合同
- 公司漁業(yè)船舶買賣合同范例
- 會議家具采購合同范本
- 臨時住宿合同范本
- 借住公租房合同范例
- 修補(bǔ)圍網(wǎng)合同范本
- htcc制備工藝書籍
- 建立高效的員工溝通與反饋機(jī)制
- 中國電信互聯(lián)網(wǎng)+酒店解決方案
- 《信息科技》學(xué)科新課標(biāo)《義務(wù)教育信息科技課程標(biāo)準(zhǔn)(2022年版)》
- 《語用學(xué)之指示語》課件
- 《對折剪紙》課件
- 小學(xué)數(shù)學(xué)人教版六年級上冊分?jǐn)?shù)混合運(yùn)算練習(xí)題
- 培訓(xùn)學(xué)校 組織架構(gòu)及部門崗位職責(zé)
- 調(diào)車作業(yè)-調(diào)車概述(鐵路行車組織)
- 【住院患者跌倒或墜床預(yù)防護(hù)理措施研究國內(nèi)外文獻(xiàn)綜述3300字】
- 2023施工項目部標(biāo)準(zhǔn)化工作手冊
評論
0/150
提交評論