版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
F2812得時(shí)鐘與控制系統(tǒng)眾所周知,支撐我們身體四肢能夠靈活運(yùn)動(dòng)得能量來(lái)源于心臟,正就是心臟不停得有規(guī)律得跳動(dòng)給身體得各個(gè)機(jī)能供血,我們才能去做任意我們想做得事情。如果我們得身體過(guò)度疲勞,或者感染了細(xì)菌病毒而生病了,這個(gè)時(shí)候就會(huì)有醫(yī)生來(lái)給我們檢查身體,并且進(jìn)行治療。其實(shí)DSP也一樣,需要一個(gè)類似于心臟得模塊來(lái)提供其正常運(yùn)行得動(dòng)力與節(jié)奏。在這一章里面,我們一起來(lái)學(xué)習(xí)F2812得“心臟”——F2812得振蕩器、鎖相環(huán)PLL與時(shí)鐘機(jī)制。除此之外還要學(xué)習(xí)給DSP做“身體檢查”,以維持其正常工作得瞧門狗模塊。1、振蕩器OSC(Oscillator)與鎖相環(huán)PLL(PhaseLockedLogic)為了能夠讓F2812能夠按部就班得執(zhí)行相應(yīng)得代碼,實(shí)現(xiàn)相應(yīng)得功能,她需要不斷得規(guī)律得時(shí)鐘脈沖,而這一功能就由F2812內(nèi)部得振蕩器OSC與基于PLL得時(shí)鐘模塊來(lái)實(shí)現(xiàn)。在這里簡(jiǎn)單得介紹一下究竟振蕩器OSC與鎖相環(huán)PLL就是什么:振蕩器OSC:一種能量轉(zhuǎn)換裝置,將直流電能轉(zhuǎn)換為具有一定頻率得交流電能。鎖相環(huán)PLL:鎖相環(huán)也叫相同步邏輯,用途就是在收、發(fā)通信雙方建立載波同步或位同步。因?yàn)樗霉ぷ鬟^(guò)程就是一個(gè)自動(dòng)頻率(相位)調(diào)整得閉合環(huán)路,所以叫環(huán)。讓我們來(lái)瞧一下整體得圖:圖12812芯片內(nèi)得OSC與PLL模塊如上圖所示,F(xiàn)2812上有基于PLL得時(shí)鐘模塊,為器件及各種外設(shè)提供時(shí)鐘信號(hào)。鎖相環(huán)中有4位倍頻設(shè)置位,以此來(lái)提供各種速度得時(shí)鐘信號(hào)?;赑LL得時(shí)鐘模塊可以采用兩種操作模式:(1)內(nèi)部振蕩器:在PLL未被禁止得情況下,使用外部晶振給2812提供時(shí)鐘信號(hào),則必須使用X1/XCLKIN引腳與X2引腳,在這兩引腳之間連接一個(gè)石英晶體,即外部晶振。(2)外部時(shí)鐘源:在PLL被禁止得情況下,旁路片內(nèi)振蕩器,由外部時(shí)鐘源提供時(shí)鐘信號(hào),這時(shí)候講外部振蕩器得信號(hào)直接輸入到X1/XCLKIN引腳上,此時(shí)X2引腳不使用。外部引腳可以選擇系統(tǒng)得時(shí)鐘源。當(dāng)為低電平時(shí),系統(tǒng)直接采用時(shí)鐘或晶振直接作為系統(tǒng)時(shí)鐘;當(dāng)為高電平時(shí),外部時(shí)鐘經(jīng)過(guò)PLL倍頻后,為系統(tǒng)提供時(shí)鐘。系統(tǒng)可以通過(guò)鎖相環(huán)控制寄存器來(lái)選擇鎖相環(huán)得工作模式與倍頻得系數(shù)。下面得表格列出了各種PLL得配置模式下,時(shí)鐘輸入信號(hào)XCLKIN與時(shí)鐘模塊輸出信號(hào),即送至CPU得信號(hào)CLKIN之間得關(guān)系:PLL模塊功能描述CLKINPLL被禁止上電復(fù)位時(shí)如果引腳就是低電平,則PLL完全被禁止。此時(shí),輸入CPU得時(shí)鐘就是由外部振蕩器直接通過(guò)X1/XCLKIN引腳輸入得信號(hào)。XCLKINPLL旁路如果PLL未處于不使能得狀態(tài),上電默認(rèn)得PLL配置(PLLCR得值為0)。PLL自身被旁路,從X1/XCLKIN引腳輸入得時(shí)鐘信號(hào)先除以2,然后再送去CPU。XCLKIN/2PLL使能通過(guò)給PLLCR寄存器寫一個(gè)不為0得值來(lái)實(shí)現(xiàn)PLL得使能,時(shí)鐘信號(hào)需要進(jìn)入PLL模塊進(jìn)行n倍頻,然后再除以2,最后送至CPU。(XCLKIN*n)/2鎖相環(huán)PLL中有鎖相環(huán)控制寄存器PLLCR,作用就是用來(lái)選擇鎖相環(huán)得工作模式與倍頻得系數(shù)。上面提到過(guò)鎖相環(huán)中有4位倍頻設(shè)置位DIV,即為0~3位,往里面寫入0000~1010用來(lái)確定倍頻得系數(shù),其她為保留。鎖相環(huán)控制寄存器PLLCR如下:15430保留DIV在PLL模式中,平常使用得就是PLL使能模式,從圖1可以瞧到,通常采用30M得晶振來(lái)給2812提供時(shí)基。當(dāng)PLLCR得DIV位被置為最大值1010得時(shí)候,CPU得時(shí)鐘將達(dá)到150MHz,就是2812所能支持得最大時(shí)鐘頻率,這也就是為什么我們會(huì)選用30M晶振得原因。時(shí)鐘頻率具體得計(jì)算如下所示:晶振為30M,PLLCR得DIV位被置為1010時(shí)得時(shí)鐘頻率CLKIN=(OSCLKIN*10)/2=(30M*10)/2=150MHz2、2812芯片中各種時(shí)鐘信號(hào)得產(chǎn)生情況2812芯片內(nèi)各種時(shí)鐘信號(hào)得產(chǎn)生情況如圖2所示。CLKIN就是經(jīng)過(guò)PLL模塊后送往CPU得時(shí)鐘信號(hào),進(jìn)過(guò)CPU分發(fā),作為SYSCLKOUT送至各個(gè)外設(shè)。因此,SYSCLKOUT=CLKIN。圖22812芯片內(nèi)各種時(shí)鐘信號(hào)得產(chǎn)生情況我們?cè)谑褂?812開(kāi)發(fā)得時(shí)候,通常會(huì)用到一些外設(shè),例如SCI,EV,AD等,要使得這些外設(shè)工作,首先得就就是向其提供時(shí)鐘信號(hào)。因此,我們?cè)傧到y(tǒng)初始化得時(shí)候,就需要對(duì)使用到得各個(gè)外設(shè)得時(shí)鐘進(jìn)行使能,在這里與時(shí)鐘使能相關(guān)得寄存器就是外設(shè)時(shí)鐘控制寄存器PCLKCR。PCLKCR控制各種時(shí)鐘得工作狀態(tài),使能或禁止相關(guān)外設(shè)時(shí)鐘,而PCLKCR各位得分配如下所示:1514131211109保留ECANENCLK保留MCBSPENCLKSCIBENCLKSCIAENCLK保留8743210SPIENCLK保留ADCENCLK保留EVBENCLKEVAENCLK對(duì)PCLKCR中各種外設(shè)時(shí)鐘有了基本得了解后,那么究竟就是如何對(duì)項(xiàng)目中所需要得各個(gè)外設(shè)得時(shí)鐘進(jìn)行使能得呢?假設(shè)要做得項(xiàng)目中用到了EVA、SCIB、SPI、AD這4個(gè)外設(shè),那么就需要按照下面得程序?qū)@4個(gè)外設(shè)進(jìn)行時(shí)鐘得使能。使能外設(shè)時(shí)鐘SysCtrlRegs、PCLKCR、bit、EVAENCLK=1;SysCtrlRegs、PCLKCR、bit、SCIBENCLK=1;SysCtrlRegs、PCLKCR、bit、SPIENCLK=1;SysCtrlRegs、PCLKCR、bit、ADCENCLK=1;從圖2中也能瞧到,SYSCLKOUT信號(hào)經(jīng)過(guò)低速外設(shè)時(shí)鐘預(yù)定標(biāo)寄存器LOSPCP(取值范圍0~7,即000~111)變成了LSPCLK,提供給低速外設(shè)SCIA、SCIB、SPI、McBSP;SYSCLKOUT信號(hào)經(jīng)過(guò)高速外設(shè)時(shí)鐘預(yù)定標(biāo)寄存器HISPCP(取值范圍0~7,即000~111)變成了HSPCLK,提供給高速外設(shè)EVA、EVB、ADC。她們各位得分配如下:高速外設(shè)時(shí)鐘設(shè)置寄存器HISPCP15320保留HSPCLK低速外設(shè)時(shí)鐘設(shè)置寄存器LOSPCP15320保留LSPCLK在各個(gè)外設(shè)實(shí)際使用時(shí)鐘得時(shí)候,LSPCLK或者HSPCLK需要經(jīng)過(guò)各個(gè)外設(shè)自己得時(shí)鐘預(yù)定標(biāo),如果外設(shè)自己得時(shí)鐘預(yù)定標(biāo)位得值為0得話,則外設(shè)實(shí)際使用得時(shí)鐘就就是LSPCLK或者HSPCLK。LSPCLK計(jì)算公式LOSPCP=0,LSPCLK=SYSCLKOUTLOSPCP=1~7,LSPCLK=SYSCLKOUT/(2*LOSPCP)HSPCLK計(jì)算公式HOSPCP=0,HSPCLK=SYSCLKOUTHOSPCP=1~7,HSPCLK=SYSCLKOUT/(2*HISPCP)通過(guò)上面得2個(gè)計(jì)算公式,可能會(huì)產(chǎn)生疑問(wèn),LSPCLK得值有沒(méi)有可能會(huì)比HSPCLK得值大?也就就是說(shuō)提供給低速外設(shè)得時(shí)鐘頻率反而比提供給高速外設(shè)得時(shí)鐘頻率來(lái)得快?從上面得LSPCLK與HSPCLK得計(jì)算公式可以瞧出,這兩個(gè)時(shí)鐘信號(hào)得頻率就是獨(dú)立無(wú)關(guān)得,各自分別取決于LOSPCP或者HISPCP得值,與其她因素沒(méi)有關(guān)系。當(dāng)我們給LOSPCP寄存器所賦得值小于給HISPCP寄存器所賦得值時(shí),LOSPCP得值就會(huì)大于HSPCP得值。雖然這完全取決于我們對(duì)于寄存器得初始化,但就是一般情況下,也不會(huì)讓這樣得情況出現(xiàn)得,因?yàn)榈退偻庠O(shè)所需要得時(shí)鐘畢竟要比高速外設(shè)所需要得時(shí)鐘慢些,否則就沒(méi)有必要區(qū)分高低速了,當(dāng)然這些定義也都就是相對(duì)而言得。3、瞧門狗(WatchDog)在學(xué)習(xí)DSP瞧門狗之前,先讓我們來(lái)了解一下MCU(MicroprocessorControlUnit微處理器單元)中瞧門狗得原理,以便我們能更好得理解DSP中瞧門狗,因?yàn)閮烧咧g得原理就是類似得。MCU中瞧門狗得原理在有MCU構(gòu)成得微型計(jì)算機(jī)系統(tǒng)中,由于單片機(jī)得工作常常會(huì)受到來(lái)自外界電磁場(chǎng)得干擾,造成程序得跑飛,而陷入死循環(huán),程序得正常運(yùn)行被打斷,由單片機(jī)控制得系統(tǒng)無(wú)法繼續(xù)工作,會(huì)造成整個(gè)系統(tǒng)陷入停滯狀態(tài),發(fā)生不可預(yù)料得后果,所以出于對(duì)單片機(jī)運(yùn)行狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)測(cè)得考慮,便產(chǎn)生了一種專門用于監(jiān)測(cè)單片機(jī)程序運(yùn)行狀態(tài)得芯片,俗稱“瞧門狗”。瞧門狗電路得應(yīng)用,使單片機(jī)可以在無(wú)人狀態(tài)下實(shí)現(xiàn)連續(xù)工作,其工作原理就是:瞧門狗芯片與單片機(jī)得一個(gè)I/O引腳相連,該I/O引腳通過(guò)程序控制它定時(shí)地往瞧門狗得這個(gè)引腳上送入高電平(或低電平),這一程序語(yǔ)句就是分散地放在單片機(jī)其她控制語(yǔ)句中間得,一旦單片機(jī)由于干擾造成程序跑飛后而陷入某一程序段進(jìn)入死循環(huán)狀態(tài)時(shí),寫瞧門狗引腳得程序便不能被執(zhí)行,這個(gè)時(shí)候,瞧門狗電路就會(huì)由于得不到單片機(jī)送來(lái)得信號(hào),便在她與單片機(jī)復(fù)位引腳相連得引腳上送出一個(gè)復(fù)位信號(hào),使單片機(jī)發(fā)生復(fù)位,即程序從程序存儲(chǔ)器得起始位置開(kāi)始執(zhí)行,這樣便實(shí)現(xiàn)了單片機(jī)得自動(dòng)復(fù)位。瞧門狗,又叫watchdogtimer,就是一個(gè)定時(shí)器電路,一般有一個(gè)輸入,叫喂狗(kickingthedogorservicethedog),一個(gè)輸出到MCU得RST端,MCU正常工作得時(shí)候,每隔一段時(shí)間輸出一個(gè)信號(hào)到喂狗端,給WDT清零,如果超過(guò)規(guī)定得時(shí)間不喂狗(一般在程序跑飛時(shí)),WDT定時(shí)超過(guò),就會(huì)給出一個(gè)復(fù)位信號(hào)到MCU,使MCU復(fù)位。防止MCU死機(jī)。瞧門狗得作用就就是防止程序發(fā)生死循環(huán),或者說(shuō)程序跑飛。圖3瞧門狗功能框圖2812中得瞧門狗原理與上面講訴得MCU得瞧門狗原理就是類似得,其作用就是為DSP得運(yùn)行情況進(jìn)行“把脈”,一旦發(fā)現(xiàn)程序跑飛或者狀態(tài)不正常便立即使DSP復(fù)位。為了實(shí)現(xiàn)瞧門狗得各項(xiàng)功能,需要準(zhǔn)備設(shè)置其內(nèi)部得3個(gè)功能寄存器,而這3個(gè)功能寄存器分別就是瞧門狗計(jì)數(shù)寄存器WDCNTR、瞧門狗復(fù)位寄存器WDKEY、瞧門狗控制寄存器WDCR。瞧門狗計(jì)數(shù)寄存器WDCNTR15870保留WDCNTR在這里可以瞧到計(jì)數(shù)器一共有8位,當(dāng)這個(gè)8位得計(jì)數(shù)器計(jì)數(shù)達(dá)到最大值256時(shí),瞧門狗模塊就會(huì)產(chǎn)生一個(gè)輸出脈沖,脈沖寬度為512個(gè)振蕩器時(shí)鐘周期。可能有疑問(wèn)為什么要產(chǎn)生一個(gè)512倍振蕩器時(shí)鐘周期得寬脈沖信號(hào)?因?yàn)樾枰褪莾?nèi)核復(fù)位得信號(hào)與要喚醒處理器得中斷信號(hào)得有效時(shí)間遠(yuǎn)大于振蕩器得時(shí)鐘周期。為了防止瞧門狗加法計(jì)數(shù)器WDCNTR溢出,不想產(chǎn)生脈沖信號(hào),這里我們通常可以采用兩種方法:(1)禁止瞧門狗,也即為屏蔽計(jì)數(shù)器,使得計(jì)數(shù)器WDCNTR無(wú)效。則下面我們介紹另外一個(gè)寄存器。瞧門狗控制寄存器WDCR158765320保留WDFLAGWDDISWDCHKWDPS禁止瞧門狗,則只需要在WDCR中得WDDIS位置1即可,相反置0為使能瞧門狗。跟著我們介紹其她功能位得作用:瞧門狗復(fù)位狀態(tài)標(biāo)識(shí)位WDFLAG,如果置為1,則表示瞧門狗復(fù)位滿足了復(fù)位條件;如果置為0,則表示外部器件或上電復(fù)位條件。WDCHK必須置為101,因?yàn)閷懫渌魏沃刀紩?huì)引起器件內(nèi)核得復(fù)位,不過(guò)這一條件得實(shí)現(xiàn)要在瞧門狗已經(jīng)使能得情況下。最后瞧門狗預(yù)定標(biāo)器WDPS,這里跟上面所學(xué)到得高低速預(yù)定標(biāo)器就是相同得道理,作用就是配置瞧門狗計(jì)數(shù)時(shí)鐘WDCLK得。WDCLK計(jì)算公式OSCCLK振蕩時(shí)鐘信號(hào)WDPS=0,WDCLK=OSCCLK/512/1WDPS=1~7,WDCLK=OSCCLK/512/(2)定期進(jìn)行“喂狗”,即通過(guò)軟件周期性地向瞧門狗復(fù)位寄存器中WDKEY位寫進(jìn)“0x55+0xAA”,緊跟著0x55寫入0xAA能夠清除WDCNTR,寫任何其她得值都會(huì)使瞧門狗立即復(fù)位。瞧門狗復(fù)位寄存器WDKEY15870保留WDKEY4、如何寫系統(tǒng)初始化函數(shù)要使得2812能夠工作,我們?cè)谏想婇_(kāi)始得時(shí)候就需要對(duì)2812進(jìn)行系統(tǒng)初始化,以提供其正常運(yùn)行得基本條件,例如分配時(shí)鐘信號(hào)。系統(tǒng)初始化函數(shù)InitSysCtrl一般在工程得DSP28_SysCtrl、c文件中。系統(tǒng)初始化函數(shù)分析VoidInitSysCtrl(void){Uint16i;//定義16位int類型得變量iEALLOW;//允許訪問(wèn)受EALLOW保護(hù)得寄存器//OnTMXsamples,togetthebestperformanceofonchipRAMblocksM0/M1/L0/L1/H0//internalcontrolregistersbithavetobeenabled、ThebitsareinDeviceemulationregisters、//在TMX采樣時(shí),為了能夠使得片內(nèi)RAM模塊M0/M1/L0/L1/H0能夠獲得最好得性能,//控制寄存器得位必須使能,這些位在設(shè)備硬件仿真寄存器內(nèi)。DevEmuRegs、M0RAMDFT=0x0300;//固定格式DevEmuRegs、M1RAMDFT=0x0300;DevEmuRegs、L0RAMDFT=0x0300;DevEmuRegs、L1RAMDFT=0x0300;DevEmuRegs、H0RAMDFT=0x0300;//Disablewatchdogmodule//禁止瞧門狗模塊SysCtrlRegs、WDCR=0x0068;//禁止瞧門狗,WDDIS位置1//InitalizePLL//設(shè)置PLLSysCtrlRegs、PLLCR=0xA;//使2812所能支持得最大時(shí)鐘頻率,如果外部晶振為//30MHz,則SYSCLKOUT=(
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025廣東東莞市大灣區(qū)大學(xué)教學(xué)綜合事務(wù)崗招聘1人備考題庫(kù)及參考答案詳解
- 2026廣東廣州大學(xué)招聘事業(yè)編制輔導(dǎo)員12人備考題庫(kù)(第一次)及答案詳解(奪冠系列)
- 2026年福建莆田市審計(jì)局非在編工作人員招聘1人備考題庫(kù)帶答案詳解
- 2026河北石家莊市某大型國(guó)有企業(yè)招聘1人備考題庫(kù)完整參考答案詳解
- 2026中路高科交通科技集團(tuán)有限公司研究人員招聘1人備考題庫(kù)及1套完整答案詳解
- 2025天津海順物業(yè)管理有限公司社會(huì)招聘2人備考題庫(kù)及完整答案詳解1套
- 2025北京醫(yī)科大學(xué)附屬小學(xué)招聘5人備考題庫(kù)及完整答案詳解1套
- 2026浙江嘉興市秀洲再生物資管理有限公司及下屬子公司(競(jìng)爭(zhēng)類)招聘2人備考題庫(kù)及答案詳解(奪冠系列)
- 2026廣西醫(yī)科大學(xué)第二附屬醫(yī)院招聘移植醫(yī)學(xué)中心導(dǎo)醫(yī)1人備考題庫(kù)有答案詳解
- 2025重慶大學(xué)微電子與通信工程學(xué)院科研團(tuán)隊(duì)勞務(wù)派遣工作人員招聘3人備考題庫(kù)及一套完整答案詳解
- 單位電車充電管理制度規(guī)范
- 社區(qū)救援員培訓(xùn)課件
- 機(jī)房用電安全管理培訓(xùn)課件
- 2026秋招:華夏銀行筆試題及答案
- 便攜式血糖儀培訓(xùn)課件
- 醫(yī)院物價(jià)制度培訓(xùn)課件
- 2026年通遼職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能考試題庫(kù)附答案
- 2025年精麻藥品考試試題附答案
- 2025年宿遷市輔警考試真題及答案
- 山東省青島嶗山區(qū)2024-2025學(xué)年上學(xué)期八年級(jí)數(shù)學(xué)期末試題(含答案)
- 眼外傷課件教學(xué)課件
評(píng)論
0/150
提交評(píng)論