ch4 DSP系統(tǒng)設(shè)計(jì)入門_第1頁
ch4 DSP系統(tǒng)設(shè)計(jì)入門_第2頁
ch4 DSP系統(tǒng)設(shè)計(jì)入門_第3頁
ch4 DSP系統(tǒng)設(shè)計(jì)入門_第4頁
ch4 DSP系統(tǒng)設(shè)計(jì)入門_第5頁
已閱讀5頁,還剩92頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

4.1DSPC語言程序設(shè)計(jì)4.1.1C語言優(yōu)勢4.1.2基于C2000的C語言簡介4.2CCS5入門4.2.1CCS5簡介4.2.2新建工程4.3DSP試驗(yàn)系統(tǒng)4.3.1最小系統(tǒng)簡介4.3.2外設(shè)實(shí)驗(yàn)板簡介第四章DSP系統(tǒng)設(shè)計(jì)入門4.1.1C語言優(yōu)勢C語言是高級語言,相對于匯編易學(xué)易用;C語言的編程效率極高,易于調(diào)試;C++運(yùn)行效率不如C,且面向?qū)ο缶幊陶加酶噘Y源;Java同C++,且Java運(yùn)行依賴于Java虛擬機(jī);匯編語言依賴于計(jì)算機(jī)硬件,程序的可讀性和可移植性較差。高級語言具有很好的可移植性,但是難以實(shí)現(xiàn)匯編語言的某些功能(如對內(nèi)存地址的操作、位操作等)。C語言作為一種高級語言,既可以訪問物理地址又可以進(jìn)行位操作,能直接對硬件進(jìn)行操作,適合用于DSP所以,嵌入式編程多用C語言,或C語言與匯編混合編程。F20827亦是如此。4.1.2基于C2000的C語言簡介C語言中的代碼段編譯器中的段名存儲(chǔ)器中不同段的分配鏈接器的命令(CMD)文件MEMORY{PAGE0:

/*ProgramMemory*/FLASH:origin=0x3F0000,length=0x8000PAGE1:

/*DataMemory*/M0SARAM:origin=0x000000,length=0x400M1SARAM:origin=0x000400,length=0x400}SECTIONS{.text:>FLASHPAGE=0.ebss:>M0SARAMPAGE=1.cinit:>FLASHPAGE=0.stack:>M1SARAMPAGE=1}#defineADCTRL1(volatileunsignedint*)0x00007100

...voidmain(void){*ADCTRL1=0x1234;//writeentireregister*ADCTRL1|=0x4000;//enableADCmodule}傳統(tǒng)編程風(fēng)格-簡單、快速且易于鍵入-變量名稱與寄存器名稱精確匹配(易于記憶)-需要生成專門的掩碼以操控個(gè)別位-不能很容易地在觀察窗口中顯示位字段-在許多場合中將生成效率低下的代碼優(yōu)點(diǎn)缺點(diǎn)voidmain(void){AdcRegs.ADCTRL1.all=0x1234;

//writeentireregisterAdcRegs.ADCTRL1.bit.ADCENABLE=1;

//enableADCmodule}新編程風(fēng)格-易于操控個(gè)別位。-易于在調(diào)試窗口觀察寄存器位的值-可生成最高效的代碼(利用C28x)-結(jié)構(gòu)名稱會(huì)難以記憶(編輯器自動(dòng)完成功能)-需要鍵入的內(nèi)容更多(編輯器自動(dòng)完成功能)優(yōu)點(diǎn)缺點(diǎn)結(jié)構(gòu)體定義規(guī)則F2802x頭文件定義了:所有的外設(shè)結(jié)構(gòu)體所有的寄存器名稱所有的位字段名稱所有的寄存器地址PeripheralName.RegisterName.all

//訪問整個(gè)16位或32位寄存器PeripheralName.RegisterName.half.LSW

//訪問32位寄存器的16個(gè)低位PeripheralName.RegisterName.half.MSW

//訪問32位寄存器的16個(gè)高位PeripheralName.RegisterName.bit.FieldName

//訪問寄存器的指定位字段注:[1]“PeripheralName”由TI指定并載于F2802x標(biāo)準(zhǔn)頭文件。它們由大寫字母和小寫字母組合成(如:CpuTimer0Regs)。[2]“RegisterName”與數(shù)據(jù)表中使用的名稱相同,它們始終用大寫字母表示(如:TCR、TIM、TPR,...)[3]“FieldName”與數(shù)據(jù)表中使用的名稱相同,它們始終用大寫字母表示(如:POL、TOG、TSS,...)F2802x頭文件包(,文獻(xiàn)編號:SPRC832)包含了使用結(jié)構(gòu)體法所需的一切資源定義了所有的外設(shè)寄存器位和寄存器地址頭文件包包括:\DSP2802x_headers\include.hfiles\DSP2802x_headers\cmd

linker.cmdfiles\DSP2802x_headers\gel

.gelfilesforCCS\DSP2802x_examples

2802xexamples\doc

documentation外設(shè)結(jié)構(gòu)體頭(.h)文件#include“DSP2802x_Device.h”VoidInitAdc(void){/*ResettheADCmodule*/AdcRegs.ADCTRL1.bit.RESET=1;/*configuretheADCregister*/AdcRegs.ADCTRL1.all=0x00E4;};C語言源文件(例如:Adc.c)//ADCIndividualRegisterBitDefinitions:structADCCTL1_BITS{//bitsdescriptionUint16TEMPCONV:1;//0TemperaturesensorconnectionUint16VREFLOCONV:1;//1VSSAconnectionUint16INTPULSEPOS:1;//2INTpulsegenerationcontrolUint16ADCREFSEL:1;//3Internal/externalreferenceselectUint16rsvd1:1;//4reservedUint16ADCREFPWD:1;//5ReferencebufferspowerdownUint16ADCBGPWD:1;//6ADCbandgappowerdownUint16ADCPWDN:1;//7ADCpowerdownUint16ADCBSYCHN:5;//12:8ADCbusyonachannelUint16ADCBSY:1;//13ADCbusysignalUint16ADCENABLE:1;//14ADCenableUint16RESET:1;//15ADCmasterreset};//Allowaccesstothebitfieldsorentireregister:unionADCCTL1_REG{Uint16all;structADCCTL1_BITSbit;};//ADCExternalReferences&FunctionDeclarations:externvolatilestructADC_REGSAdcRegs;頭文件包含有一個(gè)用于器件中每個(gè)外設(shè)的.hDSP2802x_Adc.h

DSP2802x_BootVars.h

DSP2802x_Comp.h

DSP2802x_CpuTimers.h

DSP2802x_DevEmu.h

DSP2802x_Device.hDSP2802x_ECap.h

DSP2802x_EPwm.h

DSP2802x_Gpio.h

DSP2802x_I2c.hDSP2802x_NmiIntrupt.h

DSP2802x_PieCtrl.hDSP2802x_PieVect.h

DSP2802x_Sci.hDSP2802x_Spi.hDSP2802x_SysCtrl.h

DSP2802x_XIntrupt.hDSP2802x_Device.h件主要的包括頭文件的將包括所有其他的.h文件在每個(gè)源文件中包括此文件::#include“DSP2802x_Device.h”4.1.2基于C2000的C語言簡介全局變量定義文件DSP2802x_GlobalVariableDefs.c定義每個(gè)外設(shè)寄存器結(jié)構(gòu)體變量每個(gè)結(jié)構(gòu)體使用一個(gè)DATA_SECTION宏指令來強(qiáng)制結(jié)構(gòu)體的存儲(chǔ)位置,以實(shí)現(xiàn)至正確的地址鏈接4.1.2基于C2000的C語言簡介用于結(jié)構(gòu)體的鏈接器命令文件

DSP2802x_nonBIOS.cmd針對每個(gè)外設(shè)應(yīng)用的項(xiàng)目范例可幫助使用者快速啟動(dòng)開發(fā)工作?TI嵌入式處理器的集成開發(fā)環(huán)境(IDE)–包括調(diào)試器,編譯器,編輯器,操作系統(tǒng),等等–IDE基于Eclipse開源軟件框架(v4+)–融合了TI設(shè)備的支持與功能?CCSv5是基于原版的Eclipse–CCS使用未修改的Eclipse版本?TI將直接向開源社區(qū)提交改進(jìn)–用戶可以隨意的將各種其他廠商的Eclipse插件或TI的工具拖放到現(xiàn)有的Eclipse環(huán)境–用戶可以享受到Eclipse中所有最新的改進(jìn)所帶來的便利?集成額外的工具–操作系統(tǒng)的應(yīng)用程序開發(fā)工具(Linux操作系統(tǒng),Android...)–代碼分析,源代碼控制...4.2.1CCS5簡介CodeComposerStudioCodeComposerStudio集成型開發(fā)環(huán)境(IDE)集成了能編輯,代碼生成和調(diào)試功能使用按鈕的問單擊訪問功能強(qiáng)大的圖繪圖/分析具工具使用腳本務(wù)的自動(dòng)化任務(wù)內(nèi)置的BIOS功能訪問基于Eclipse開源軟件框架項(xiàng)目文件包含:文件清單:源文件(C語言、匯編語言)庫文件DSP/BIOS配置文件鏈接器命令文件項(xiàng)目設(shè)置:生成選項(xiàng)(編譯器

匯編器

鏈接器和DSP/BIOS)新建工程點(diǎn)擊File->New->CCSProject或者Project->NewProject如下圖所示:4.2.2新建工程添加項(xiàng)目名稱、芯片、仿真器等。選擇對應(yīng)芯片型號;4.2.2新建工程如圖所示:新建文件:可以新建源文件,頭文件,類等等添加文件添加現(xiàn)有源文件到工程中。右擊工程名->AddFiles…4.2.2新建工程添加頭文件目錄:一右擊工程名->Properties,選擇Build->IncludeOptions,有個(gè)#include搜索路徑,添加上路徑即可。最有效的方法:

拷貝一個(gè)現(xiàn)有的工程

然后加以裁剪和添加編譯工程

選擇Project->BuildprojectDebug跟編譯工程類似的方法可以進(jìn)行工程的Debug,最簡單的方式就是點(diǎn)擊如下圖所示的小蟲子。在Debug之前,一定要選擇和設(shè)置目標(biāo)配置文件(TargetConfigurations)。新建目標(biāo)配置文件(TargetConfigurationFile),如下圖所示。如下圖所示,選擇仿真器,選擇平臺(tái),完成后可以點(diǎn)擊TestConnection,進(jìn)行仿真器連接測試,如果成功,說明硬件沒有問題。4.3.1DSP實(shí)驗(yàn)設(shè)備–最小系統(tǒng)簡介TI公司提供的最小系統(tǒng)最小系統(tǒng)供電方式最小系統(tǒng)啟動(dòng)模式選擇最小系統(tǒng)引腳分配最小系統(tǒng)原理圖最小系統(tǒng)PCB正面映射外設(shè)實(shí)驗(yàn)板示意圖外設(shè)實(shí)驗(yàn)板基本相關(guān)模塊功能紅外對管模塊溫度傳感器模塊外設(shè)實(shí)驗(yàn)板基本相關(guān)模塊功能數(shù)碼管顯示模塊外設(shè)實(shí)驗(yàn)板擴(kuò)展相關(guān)模塊功能L298電機(jī)驅(qū)動(dòng)模塊外設(shè)實(shí)驗(yàn)板擴(kuò)展相關(guān)模塊功能TFT彩屏模塊PWM_DA模塊作業(yè):以一個(gè)例子來說明,C2000的C語言中有哪些代碼段?一般的C2000工程中會(huì)有兩個(gè)CMD文件,它們各起什么作用?安裝CCS5,建立一個(gè)自己的工程文件,并完成實(shí)驗(yàn)一

知識點(diǎn):DSP的總體架構(gòu)--改進(jìn)的哈佛結(jié)構(gòu)DSP的存儲(chǔ)空間分配和應(yīng)用—F28027.cmdDSP的時(shí)鐘配置--DSP2802x_SysCtrl.cDSP的WatchDog--DSP2802x_SysCtrl.cDSP的CPUTimer--DSP2802x_CpuTimers.cDSP的GPIO與AIO--DSP2802x_Gpio.cDSP的外部中斷DSP的中斷系統(tǒng)DSP的應(yīng)用程序開發(fā)

第一部分總結(jié)1.2.2DSP芯片的結(jié)構(gòu)特征為了適應(yīng)快速數(shù)字信號處理運(yùn)算的要求,DSP芯片普遍采用了特殊的硬件和軟件結(jié)構(gòu),以提高其數(shù)字信號處理的運(yùn)算速度DSP芯片的主要結(jié)構(gòu)特征有:采用了哈佛結(jié)構(gòu)、流水線技術(shù)、硬件乘法器和特殊DSP指令等471.哈佛結(jié)構(gòu)哈佛結(jié)構(gòu)是一種并行體系結(jié)構(gòu),主要特點(diǎn)是將程序和數(shù)據(jù)存儲(chǔ)在不同的存儲(chǔ)器空間,對程序和數(shù)據(jù)獨(dú)立編址,獨(dú)立訪問。而且在DSP中設(shè)置了數(shù)據(jù)和程序兩套總線,使得取指令和執(zhí)行能完全重疊運(yùn)行,提高數(shù)據(jù)吞吐量48哈佛結(jié)構(gòu)—改進(jìn)為了進(jìn)一步提高速度和靈活性,TMS320系列產(chǎn)品中,在哈佛結(jié)構(gòu)上作了改進(jìn):一是允許程序存儲(chǔ)在高速緩存中,提高指令讀取速度;二是允許數(shù)據(jù)存放在程序存儲(chǔ)器中,并被算術(shù)運(yùn)算指令直接使用,增強(qiáng)芯片的靈活性。另外DSP中的雙口RAM(DARAM)及獨(dú)立讀寫總線使數(shù)據(jù)存取速度提高492.流水線技術(shù)DSP芯片廣泛采用流水線技術(shù),增強(qiáng)了處理器的處理能力。TMS320系列流水線深度為2~6級不等,也就是說,處理器在一個(gè)時(shí)鐘周期可并行處理2~6條指令,每條指令處于流水線的不同階段。圖1.2為三級流水線操作的例子。在三級流水線操作中,取指令、指令譯碼和執(zhí)行可以獨(dú)立地處理,這樣DSP可以同時(shí)處理多條指令,只是每條指令處于不同處理階段503.硬件乘法器在數(shù)字信號處理的許多算法中,需要做大量的乘法和加法。DSP芯片一般都有一個(gè)硬件乘法器,在TMS320系列中,一次乘累加最少可在一個(gè)時(shí)鐘周期完成4.特殊DSP指令

DSP芯片的另一個(gè)特點(diǎn)就是采用了特殊的尋址方式和指令。比如,TMS320系列的位反轉(zhuǎn)尋址方式,LTD、MPY、RPTK等特殊指令。采用這些適合于數(shù)字信號處理的尋址方式和指令,進(jìn)一步減少了數(shù)字信號處理的時(shí)間512.1.1DSP存儲(chǔ)空間分配2.1.1DSP存儲(chǔ)空間分配設(shè)計(jì)一個(gè)計(jì)時(shí)器,顯示精確到0.01秒分析:1,用到的外設(shè):CPUTimer0,外部中斷和GPIO,2,CPUTimer0完成計(jì)時(shí)功能,外部中斷完成控制功能,GPIO完成顯示功能3,中斷考慮:定時(shí)器0中斷和外部中斷應(yīng)用程序舉例:硬件資源:1)CPUTimer02)外部中斷GPIO343)顯示:GPIO12(Data),GPIO33(Clk),GPIO32(CS)應(yīng)用程序舉例:系統(tǒng)初始化:1)WD初始化,關(guān)掉2)時(shí)鐘源初始化,四選一3)PLL初始化,12,2,60M4)外設(shè)時(shí)鐘初始化5)FLASH初始化,2,2,2應(yīng)用程序舉例:Watchdog計(jì)數(shù)器操作方式0X55&0XAA序列的順序?qū)懭隬DDIS位的置一(WDOVERRIDE=1)Flash&OTP相關(guān)寄存器FOTPWAITOTP等待寄存器配置輸入時(shí)鐘源&XCLKOUT寄存器(XCLK)位域值描述(1)15-7保留保留。6XCLKINSEL01XCLKIN源選擇位:這個(gè)位選擇XCLKIN輸入源。GPIO38是XCLKIN輸入源(這也是JTAG端口的TCK源)。GPIO19是XCLKIN輸入源。5-2保留保留0-0XCLKOUTDIV00011011XCLKOUT分頻比:這兩個(gè)位選擇XCLKOUT頻率相對于SYSCLKOUT的比率。比率是:XCLKOUT=SYSCLKOUT/4XCLKOUT=SYSCLKOUT/2XCLKOUT=SYSCLKOUTXCLKOUT=OffXCLK寄存器的XCLKINSEL位由復(fù)位引腳復(fù)位XCLK寄存器用來選擇XCLKIN輸入的GPIO引腳和配置XCLKOUT引腳的頻率。配置器件時(shí)鐘域(CLKCTL)

CLKCTL寄存器用來選擇時(shí)鐘源,也用來配置時(shí)鐘故障期間器件的行為位域值描述15NMIRESETSEL01NMI復(fù)位選擇位:該位在檢測到一個(gè)缺少時(shí)鐘條件時(shí)直接產(chǎn)生

信號和使用

復(fù)位兩者之間進(jìn)行選擇:沒有任何延遲地直接驅(qū)動(dòng)

(復(fù)位時(shí)的默認(rèn)狀態(tài))。NMI看門狗復(fù)位(

)啟動(dòng)

。注:不管作何選擇,都會(huì)產(chǎn)生

信號。位域值描述14XTALOSCOFF01晶體振蕩器關(guān)閉位:如果晶體振蕩器不使用,可以使用該位將其關(guān)閉。晶體振蕩器開啟(復(fù)位時(shí)的默認(rèn)狀態(tài))。晶體振蕩器關(guān)閉。13XCLKINOFF01XCLKIN關(guān)閉位:該位關(guān)閉外部XCLKIN振蕩器輸入XCLKIN振蕩器輸入啟用(復(fù)位時(shí)的默認(rèn)狀態(tài))。XCLKIN振蕩器輸入關(guān)閉。注:你需要通過XCLK寄存器的XCLKINSEL位選擇XCLKIN的GPIO引腳。更詳細(xì)的信息請見XCLK寄存器的描述。如果使用XCLKIN,XTALOSCOFF就必須置位。12WDHALTI01看門狗停機(jī)模式忽略位:該位選擇是否通過停機(jī)模式自動(dòng)開啟/關(guān)閉看門狗。這個(gè)特性可以在停機(jī)模式有效時(shí)用來允許所選的WDCLK源繼續(xù)計(jì)時(shí)看門狗。這可以允許看門狗周期性地喚醒器件??撮T狗自動(dòng)通過停機(jī)模式開啟/關(guān)閉(復(fù)位時(shí)的默認(rèn)狀態(tài))。看門狗忽略停機(jī)模式。11INTOSC2HALTI01內(nèi)部振蕩器2停機(jī)模式忽略位:該位選擇是否通過停機(jī)模式自動(dòng)開啟/關(guān)閉內(nèi)部振蕩器2。這個(gè)特性可以在停機(jī)模式有效時(shí)用來允許內(nèi)部振蕩器繼續(xù)計(jì)時(shí)。這將使能器件更快地從停機(jī)模式中喚醒。內(nèi)部振蕩器2自動(dòng)通過停機(jī)模式開啟/關(guān)閉(復(fù)位時(shí)的默認(rèn)狀態(tài))。內(nèi)部振蕩器2忽略停機(jī)模式。10INTOSC2OFF01內(nèi)部振蕩器2關(guān)閉位:該位關(guān)閉振蕩器2內(nèi)部振蕩器2開啟(復(fù)位時(shí)的默認(rèn)狀態(tài))。內(nèi)部振蕩器2關(guān)閉。如果內(nèi)部振蕩器2不被使用,用戶可以使用該位將其關(guān)閉。這個(gè)選擇不受缺少時(shí)鐘檢測電路影響。9INTOSC1HALTI01內(nèi)部振蕩器1停機(jī)模式忽略位:該位選擇是否通過停機(jī)模式自動(dòng)開啟/關(guān)閉內(nèi)部振蕩器1。內(nèi)部振蕩器1自動(dòng)通過停機(jī)模式開啟/關(guān)閉(復(fù)位時(shí)的默認(rèn)狀態(tài))。內(nèi)部振蕩器1忽略停機(jī)模式。這個(gè)特性可以在停機(jī)模式有效時(shí)用來允許內(nèi)部振蕩器繼續(xù)計(jì)時(shí)。這將使能器件更快地從停機(jī)模式中喚醒。位域值描述8INTOSC1OFF01內(nèi)部振蕩器1關(guān)閉位:該位關(guān)閉振蕩器1內(nèi)部振蕩器1開啟(復(fù)位時(shí)的默認(rèn)狀態(tài))。內(nèi)部振蕩器1關(guān)閉。如果內(nèi)部振蕩器1不被使用,用戶可以使用該位將其關(guān)閉。這個(gè)選擇不受缺少時(shí)鐘檢測電路影響。7-5TMR2CLKPRESCALE000001010011100101110111CPUTimer2時(shí)鐘預(yù)分頻值:這些位為所選的CPUTimer2時(shí)鐘源選擇預(yù)分頻值。這個(gè)選擇不受缺少時(shí)鐘檢測電路影響。/1(復(fù)位時(shí)的默認(rèn)狀態(tài))/2/4/8/16保留保留保留4-3TMR2CLKSRCSEL00011011CPUTimer2時(shí)鐘源選擇位:該位為CPUTimer2選擇時(shí)鐘源選擇SYSCLKOUT(復(fù)位時(shí)的默認(rèn)狀態(tài),繞過預(yù)分頻器)。選擇外部振蕩器(XOR輸出)。選擇內(nèi)部振蕩器1。選擇內(nèi)部振蕩器2。這個(gè)選擇不受缺少時(shí)鐘檢測電路影響。2WDCLKSRCSEL01看門狗時(shí)鐘源選擇位:該位選擇看門狗的時(shí)鐘源。在

為低時(shí)和

變?yōu)楦咧螅J(rèn)選擇內(nèi)部振蕩器1。用戶需要在初始化過程中選擇外部振蕩器或內(nèi)部振蕩器2。如果缺少時(shí)鐘檢測電路檢測到缺少時(shí)鐘,那么該位被強(qiáng)制為0,并選擇內(nèi)部振蕩器1。用戶更改該位不影響PLLCR值。選擇內(nèi)部振蕩器1(復(fù)位時(shí)的默認(rèn)狀態(tài))。選擇外部振蕩器或內(nèi)部振蕩器2。位域值描述1OSCCLKSRC2SEL01振蕩器2時(shí)鐘源選擇位:這個(gè)位用來在內(nèi)部振蕩器2或外部振蕩器兩者之間作選擇。這個(gè)選擇不受缺少時(shí)鐘檢測電路影響。選擇外部振蕩器(復(fù)位時(shí)的默認(rèn)狀態(tài))。選擇內(nèi)部振蕩器2。0OSCCLKSRCSEL01振蕩器時(shí)鐘源選擇位。這個(gè)位選擇振蕩器的時(shí)鐘源。在

為低時(shí)和

變?yōu)楦咧螅J(rèn)選擇內(nèi)部振蕩器1。用戶需要在初始化過程中選擇外部振蕩器或內(nèi)部振蕩器2。只要用戶使用這些位來改變時(shí)鐘源,PLLCR寄存器將被自動(dòng)強(qiáng)制為零。這阻止了潛在的PLL過沖。然后,用戶必須寫PLLCR寄存器來配置合適的分頻比。如果必要,用戶也可以使用PLLLOCKPRD寄存器來配置PLL鎖定周期以縮短鎖定時(shí)間。如果缺少時(shí)鐘檢測電路檢測到缺少時(shí)鐘,那么這個(gè)位被自動(dòng)強(qiáng)制為0,并選擇內(nèi)部振蕩器1作為時(shí)鐘。PLLCR寄存器也將自動(dòng)強(qiáng)制為0來防止所有潛在的過沖。選擇內(nèi)部振蕩器1(復(fù)位時(shí)的默認(rèn)狀態(tài))。選擇外部振蕩器或內(nèi)部振蕩器2。注:如果用戶希望使用振蕩器2或外部振蕩器來計(jì)時(shí)CPU,必須應(yīng)該先配置這個(gè)位,然后再寫OSCCLKSRCSEL位。PLL狀態(tài)寄存器(PLLSTS)PLL控制寄存器(PLLCR)基于PLL的配置模式PLL模式注釋PLLSTS[DIVSEL](1)CLKIN和SYSCLKOUT(2)PLL關(guān)閉由用戶通過置位PLLSTS寄存器的PLLOFF位來激活。在這種模式下PLL模塊禁用。這對于降低系統(tǒng)噪聲和低功率操作很有用。在進(jìn)入這個(gè)模式之前,PLLCR寄存器必須先被設(shè)置成0x0000(PLL旁路)。CPU時(shí)鐘(CLKIN)直接從X1/X2,X1或XCLKIN上的輸入時(shí)鐘獲得。0,123OSCCLK/4OSCCLK/2OSCCLK/1PLL旁路PLL旁路是上電時(shí)或一次外部復(fù)位(

)后默認(rèn)的PLL配置。當(dāng)PLLCR寄存器被設(shè)置成0x0000,或者,在PLLCR寄存器被修改之后PLL鎖定到一個(gè)新的頻率時(shí),這個(gè)模式被選擇。在這個(gè)模式下,PLL本身被旁路,但PLL未關(guān)閉。0,123OSCCLK/4OSCCLK/2OSCCLK/1PLL啟用該模式通過將一個(gè)非零值n寫入PLLCR寄存器來實(shí)現(xiàn)。當(dāng)寫PLLCR時(shí),器件將切換到PLL旁路模式,直至PLL鎖定。0,12OSCCLK*n/4OSCCLK*n/2PLLSTS[DIVSEL]在寫PLLCR之前必須為零,并且,應(yīng)該只有在PLLSTS[PLLLOCKS]=1之后才能被修改選擇的輸入時(shí)鐘和PLLCR[DIV]位應(yīng)該使PLL(VCOCLK)的輸出頻率是最小值50MHz。PLL控制寄存器(PLLCR)Flash&OTP相關(guān)寄存器FOPT確定是否開啟flash流水線模式寄存器FBANKWAITflash等待寄存器FBANKWAITflash等待寄存器GPIO初始化:1)上拉設(shè)置2)MUX設(shè)置3)方向設(shè)置4)初始值設(shè)置5)特殊引腳的設(shè)置應(yīng)用程序舉例:多路復(fù)用MUXGPIOMUXGPIOMUXGPIOMUX數(shù)字I/O控制GPIO的配置步驟:Step1.Planthedevicepin-out

--安排器件引腳輸出Step2.Enableordisableinternalpull-upresistor--使能或禁能內(nèi)部上拉電阻Step3.Selectinputqualification--選擇輸入時(shí)鐘同步Step4.Selectthepinfunction--選擇引腳功能Step5.FordigitalgeneralpurposeI/O,selectthedirectionofpin--為數(shù)字通用I/O選擇引腳的方向輸入或者輸出Step6.Selectlowpowermodewake-upsources--選擇低功率模式喚醒源(是否作為喚醒源)Step7.Selectexternalinterruptsources--選擇外部中斷源GPIO相關(guān)寄存器(GPIOXINTnSEL)CPUTimer0初始化:1)關(guān)時(shí)鐘2)周期設(shè)置3)預(yù)分頻設(shè)置4)初始值設(shè)置5)中斷使能6)使能時(shí)鐘或?應(yīng)用程序舉例:定時(shí)器原理32位CPU計(jì)數(shù)器相關(guān)寄存器32位CPU計(jì)數(shù)器寄存器(TIMERxTIM

)TIMERxTIMH與之類似32位CPU周期寄存器(TIMERxPRD

)TIMERxPRDH與之類似TIMERxTCR寄存器描述_續(xù)TIMERxTCR寄存器描述_續(xù)TIMERxTPR寄存器描述(TIMERxTPRH寄存器與之類似)Xint1初始化:1)Xint1引腳選擇2)外部中斷極性選擇3)中斷使能應(yīng)用程序舉例:3.6外部中斷控制寄存器:支持3個(gè)外部中斷,XINT1-XINT3。每個(gè)外部中斷可以選擇負(fù)邊沿或正邊沿觸發(fā),也可以被使能或禁能。屏蔽的中斷還包含一個(gè)16位自由運(yùn)行的遞增計(jì)數(shù)器,在檢測到一個(gè)有效的中斷沿時(shí)復(fù)位為0。這個(gè)計(jì)數(shù)器可以用來精確地計(jì)時(shí)中斷。表3.14中斷控制和計(jì)數(shù)器寄存器(不受EALLOW保護(hù))圖3.13外部中斷n控制寄存器(XINTnCR)表3.15外部中斷n控制寄存器(XINTnCR)的域描述對于XINT1/XINT2/XINT3來說,還有一個(gè)16位的計(jì)數(shù)器,只要檢測到一個(gè)中斷邊沿,計(jì)數(shù)器就復(fù)位為0

溫馨提示

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

評論

0/150

提交評論