




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第5章硬件系統(tǒng)的設(shè)計(jì)5.1SDRAM和系統(tǒng)初始化5.2時(shí)鐘發(fā)生器5.3ADC5.4中斷程序設(shè)計(jì)5.5通用定時(shí)器5.6Bootloader5.1SDRAM參數(shù)容量
ROW地址:4K(A0-A11)
COLUMN地址:256(A0-A7)
BANK地址:4(BA0-BA1) 數(shù)據(jù)總線(xiàn):16位容量=ROW×COL×BANK×數(shù)據(jù)線(xiàn)=4M×16位SDRAM參數(shù):地址(1)地址譯碼數(shù)據(jù)讀寫(xiě)地址總線(xiàn)數(shù)據(jù)總線(xiàn)地址譯碼SDRAM參數(shù):地址(2)行地址譯碼數(shù)據(jù)讀寫(xiě)列地址譯碼數(shù)據(jù)總線(xiàn)地址總線(xiàn)外部存儲(chǔ)器接口(EMIF)外部存儲(chǔ)器接口(EMIF)控制DSP和外部存儲(chǔ)器之間的所有數(shù)據(jù)傳輸EMIF為3種類(lèi)型的存儲(chǔ)器提供了無(wú)縫接口:◆異步存儲(chǔ)器,包括ROM、FLASH以及異步SRAM◆同步突發(fā)SRAM(SBSRAM),工作在1倍或1/2倍CPU時(shí)鐘頻率◆同步DRAM(SDRAM),工作在1倍或1/2倍CPU時(shí)鐘頻率EMIF支持以下類(lèi)型的訪(fǎng)問(wèn):◆程序的訪(fǎng)問(wèn)◆32位數(shù)據(jù)的訪(fǎng)問(wèn)◆16位數(shù)據(jù)的訪(fǎng)問(wèn)◆8位數(shù)據(jù)的訪(fǎng)問(wèn)DSP的EMIF接口:管腳16位EMIF接口支持8M×16位的地址空間通過(guò)CE[3:0]可以獨(dú)立選擇四個(gè)不同的外部擴(kuò)展接口支持兩種接口異步接口:包括SRAM、Flash和ROM等同步接口:SDRAM16位EMIF同/異步共享管腳異步管腳同步管腳D[15:0]A[13:0]CE[3:0]BE[1:0]ARDYAOEAWEARESDRASSDCASSDWESDA10CLKMEMDSP的EMIF接口:異步連接異步連接CEARDYAOEAREAWEBE[1:0]A[13:1]A0D[15:0]ChipSelectReadyOutputenableReadenableWriteenableByteenableA[12:0]A13D[15:0]DSP的EMIF接口:同步連接CE0CLKMEMSDRASSDCASSDWEA0A13A12SDA10A[10:1]D[15:0]BE[1:0]CSCLKRASCASWEBA0BA1A11A10A[9:0]D[15:0]DQMH(L)CKEVCC系統(tǒng)初始化初始化時(shí)鐘初始化EMIF初始化堆棧hotmenu
SDRAM_init(){EBSR=0xa01;EGCR=0x220;EGCR=0X220;CE01=0X3000;CE11=0X1fff;CE21=0x1fff;CE31=0X1FFF;EMIRST=0;SDC1=0X5958;SDC2=0X38F;INIT=0;}ICETECK-VC5509A.GELDSP時(shí)鐘發(fā)生器÷CLKINCPU時(shí)鐘CLKDIVCLKOUTCPU、外設(shè)或者其他器件圖
時(shí)鐘輸出5.2時(shí)鐘發(fā)生器時(shí)鐘發(fā)生器,它可以利用數(shù)字鎖相環(huán)(DPLL)分頻或者倍頻輸入時(shí)鐘頻率(從CLKIN引腳接收),然后分別送到CPU、外設(shè)和C55xDSP內(nèi)的其他模塊,以使它們工作在所要的時(shí)鐘頻率。可編程分頻器時(shí)鐘發(fā)生器模式時(shí)鐘發(fā)生器有一個(gè)時(shí)鐘模式寄存器CLKMD,用來(lái)控制和監(jiān)視時(shí)鐘發(fā)生器??梢酝ㄟ^(guò)寫(xiě)CLKMD中的PLLENABLEbit,來(lái)觸發(fā)兩種主要的操作模式:旁路模式
PLL(Phased-LockLoop,瑣相環(huán))被旁路掉,輸出時(shí)鐘的頻率就等于輸入時(shí)鐘的頻率除以1、2、4(由BYPASSbit裝入的值來(lái)決定)。因?yàn)镻LL模塊被關(guān)閉了,因此這種模式可以用來(lái)降低功耗。鎖定模式時(shí)鐘發(fā)生器既可以乘以或除以一個(gè)系數(shù)來(lái)獲得期望的輸出頻率,并且輸出時(shí)鐘相位與輸入信號(hào)鎖定。如果時(shí)鐘模式寄存器CLKMD中的PLLENABLEbit置位,且瑣相過(guò)程已經(jīng)完成,就進(jìn)入鎖定模式(在瑣相過(guò)程中,時(shí)鐘發(fā)生器處于旁路模式)。時(shí)鐘模式寄存器(CLKMD)輸出頻率=×輸入時(shí)鐘頻率(PLLDIV+1)PLLMULT鎖定模式(PLLENABLE=1)CLKDIV=000b(系統(tǒng)寄存器SYSR)CLKOUT輸出CLKOUT的頻率等于CPU時(shí)鐘頻率CLKDIV=001b1/2CPU時(shí)鐘頻率CLKDIV=010b1/4CPU時(shí)鐘頻率CLKDIV=011b1/6CPU時(shí)鐘頻率CLKDIV=100b1/8CPU時(shí)鐘頻率
CLKMD中重要bit的說(shuō)明(1)IAI:退出IDLE模式后,決定時(shí)鐘發(fā)生器怎樣重新瑣相(當(dāng)CLKMDIdle域重新激活)0PLL鎖定,與進(jìn)入Idle模式前的過(guò)程相同;1PLL重新開(kāi)始瑣相過(guò)程。IOB:只要相位失瑣,決定時(shí)鐘發(fā)生器是否初始化PLL瑣相過(guò)程。如果PLL的瑣相中斷:0時(shí)鐘發(fā)生器不會(huì)中斷。時(shí)鐘發(fā)生器會(huì)保持在鎖定模式,PLL繼續(xù)輸出當(dāng)前的時(shí)鐘信;1時(shí)鐘發(fā)生器切換到旁路模式,并重新開(kāi)始PLL的瑣相過(guò)程。BYPASSDIV旁路模式的分頻值。在旁路模式下BYPASSDIV決定輸出信號(hào)的頻率。在DSP復(fù)位時(shí),若CLKMD引腳為低,BYPASSDIV復(fù)位到00b。若為高,復(fù)位到01b(除以2)。00b不分頻;01b二分頻;10b或者11b四分頻
CLKMD中重要bit的說(shuō)明(2)BREAKLN:失瑣標(biāo)記。BREAKLN指示PLL是否失瑣。另外,如果要置位CLKMD,BREAKLN必須為1。0PLL已經(jīng)失瑣;1重新瑣相,或發(fā)生了一次寫(xiě)CLKMD。LOCK:鎖定模式標(biāo)識(shí)。LOCK表示時(shí)鐘發(fā)生器是否處于鎖定模式:0時(shí)鐘發(fā)生器處于旁路模式。輸出時(shí)鐘信號(hào)的頻率由BYPASSDIVbit決定,或PLL正在進(jìn)行瑣相的過(guò)程;1時(shí)鐘發(fā)生器處于鎖定模式。PLL相位鎖定,輸出時(shí)鐘的頻率由PLLMULT和PLLDIV決定DSP時(shí)鐘發(fā)生器的工作流程時(shí)鐘發(fā)生器操作狀態(tài)說(shuō)明(1)A:瑣相。時(shí)鐘發(fā)生器進(jìn)入旁路模式,PLL將輸出時(shí)鐘信號(hào)的相位鎖定在輸入時(shí)鐘的相位,一旦相位鎖定,輸出時(shí)鐘就會(huì)工作在由CLKMD中PLLMULT和PLLDIVbit所定義的頻率。時(shí)鐘發(fā)生器進(jìn)入鎖定模式(狀態(tài)B)??梢酝ㄟ^(guò)寫(xiě)CLKMD來(lái)重新配置時(shí)鐘發(fā)生器。B:鎖定模式。PLL產(chǎn)生選定頻率的時(shí)鐘信號(hào)。輸出信號(hào)的相位與輸入信號(hào)鎖定。如果PLL失瑣,且CLKMD中的IOB的bit為1,時(shí)鐘發(fā)生器返回旁路模式,重新鎖定(狀態(tài)A);如果IOB為0,時(shí)鐘發(fā)生器不會(huì)重新鎖定可以用Idle指令使時(shí)鐘發(fā)生器進(jìn)入Idle模式(狀態(tài)C)。要改變到旁路模式,或以其它方式重新配置時(shí)鐘發(fā)生器,則可以寫(xiě)CLKMD寄存器。C:Idle模式(從鎖定模式進(jìn)入)。執(zhí)行Idle命令可使時(shí)鐘發(fā)生器進(jìn)入Idle模式。如果Idle模式正確退出,時(shí)鐘發(fā)生器重新開(kāi)始瑣相過(guò)程(狀態(tài)A)。重新開(kāi)始鎖定的方法,取決于CLKMD的IAIbit。D:旁路模式。PLL關(guān)閉,時(shí)鐘發(fā)生器處于旁路模式。時(shí)鐘發(fā)生器中的分頻器產(chǎn)生一個(gè)輸出時(shí)鐘信號(hào),其頻率由CLKMD中的BYPASSDIVbit來(lái)定義。執(zhí)行Idle命令可使時(shí)鐘發(fā)生器工作在Idle模式(狀態(tài)E)。要想改變到鎖定模式,或者以其它方式重新配置時(shí)鐘發(fā)生器,可以寫(xiě)CLKMD。E:Idle模式(從旁路模式進(jìn)入)。執(zhí)行Idle命令可使時(shí)鐘發(fā)生器工作在Idle模式。如果從Idle模式正確退出,時(shí)鐘發(fā)生器會(huì)重新進(jìn)入旁路模式。時(shí)鐘發(fā)生器操作狀態(tài)說(shuō)明(2)配置時(shí)鐘發(fā)生器(1)要正確配置DSP的時(shí)鐘發(fā)生器,產(chǎn)生DSP工作的正常時(shí)鐘頻率。這一個(gè)步驟的關(guān)鍵就是數(shù)字瑣相環(huán)PLL的應(yīng)用。為了能夠可以在程序中改變DSP的工作頻率,必須通過(guò)設(shè)置時(shí)鐘發(fā)生器的設(shè)置模式寄存器CLKMD中的倍頻值PLLMULTbit和分頻值PLLDIVbit,使PLL工作在鎖定模式下。而在進(jìn)入鎖定模式之前,必須使屏蔽PLL,使時(shí)鐘發(fā)生器工作在旁路模式,才能改變PLLMUTLbit和PLLDIVbit的值,達(dá)到我們分頻和倍頻的目的。配置時(shí)鐘發(fā)生器(2)關(guān)閉PLL,時(shí)鐘發(fā)生器進(jìn)入旁路模式,PLL開(kāi)始瑣相過(guò)程ClearMask(pCMOD->clkmd,CLKMD_PLLENABLE);while(ReadMask(pCMOD->clkmd,CLKMD_LOCK));置CLKMD中的相應(yīng)標(biāo)志位
ClearMask(pCMOD->clkmd,CLKMD_IAI);
SetMask(pCMOD->clkmd,CLKMD_IOB|CLKMD_BREAKLN);設(shè)置倍頻值和分頻值WriteMask(pCMOD->clkmd,CLKMD_PLLDIV_1|CLKMD_BYPASSDIV_1,CLKMD_PLLDIV_MASK|CLKMD_BYPASSDIV_MASK);WriteField(pCMOD->clkmd,dspclk.pllmult,CLKMD_PLLMULT_MASK);使能PLL,PLL工作在鎖定模式SetMask(pCMOD->clkmd,CLKMD_PLLENABLE);while(!ReadMask(pCMOD->clkmd,CLKMD_LOCK));輸出頻率=[PLLMULT/(PLLDIV+1)]×輸入時(shí)鐘頻率時(shí)鐘發(fā)生器工作在鎖定模式輸出頻率=(PLLMULT/(PLLDIV+1))×輸入時(shí)鐘頻率PLLMULTPLLDIV輸出頻率31031×輸入時(shí)鐘頻率1015×輸入時(shí)鐘頻率222/3×輸入時(shí)鐘頻率231/2×輸入時(shí)鐘頻率
選擇鎖定模式頻率的例子配置時(shí)鐘發(fā)生器(3)例:C55x的片內(nèi)振蕩時(shí)鐘電路產(chǎn)生12MHz的脈沖,CPU工作頻率是300MHz。通過(guò)配置時(shí)鐘發(fā)生器在鎖定模式下的參數(shù)來(lái)實(shí)現(xiàn)倍頻。300MHz=(PLLMULT/(PLLDIV+1))×12MHz則:PLLDIV=0,PLLMULT=25配置時(shí)鐘發(fā)生器(4)5.3ADC簡(jiǎn)介T(mén)MS320VC5509DSP內(nèi)部集成了10位連續(xù)逼近式模數(shù)轉(zhuǎn)換器(ADC)在一個(gè)時(shí)刻可以對(duì)最多4路模擬輸入(AIN0~AIN3)中的一個(gè)采樣,并用10位數(shù)字形式表示最大采樣率為21.5kHz,適合對(duì)慢速變化的模擬信號(hào)進(jìn)行采樣使用采樣保持電路來(lái)產(chǎn)生均勻間隔的樣本使用引腳AVDD和AVSS上的外部參考電壓將轉(zhuǎn)換過(guò)程所使用的電壓和系統(tǒng)電源電壓隔離采樣/保持電路
通道選擇控制邏輯和寄存器
÷
÷
÷模擬參考電壓輸入(高)電阻電容比較網(wǎng)絡(luò)模擬參考電壓輸入(高)10位模數(shù)轉(zhuǎn)換數(shù)據(jù)CPUCLKDIVCONVRATEDIVSAMPTIMEDIV模擬多路選擇器AVDDAVSSCPUClockAIN0AIN1AIN2AIN35.3.1模數(shù)轉(zhuǎn)換器結(jié)構(gòu)框圖5.3.2總的轉(zhuǎn)換時(shí)間轉(zhuǎn)換周期(13個(gè)轉(zhuǎn)換時(shí)鐘周期)采樣/保持周期總的轉(zhuǎn)換時(shí)間總的轉(zhuǎn)換時(shí)間時(shí)間采樣點(diǎn)AD轉(zhuǎn)換時(shí)序圖ADC時(shí)鐘
=(CPU時(shí)鐘)/(CPUClkDiv+1)ADC轉(zhuǎn)換時(shí)鐘
=(ADC時(shí)鐘)/(2×(ConvRateDiv+1)(必須≤2MHz)ADC采樣保持時(shí)間
=(1/(ADC時(shí)鐘))/(2×(ConvRateDiv+1+SampTimeDiv))(必須≥40s)ADC總的轉(zhuǎn)換時(shí)間
=(ADC采樣保持時(shí)間)+(13×(1/(ADC轉(zhuǎn)換時(shí)鐘)))5.3.3初始化和監(jiān)視轉(zhuǎn)換周期A(yíng)DC控制寄存器(ADCCTL)的ADCSTART位置1啟動(dòng)轉(zhuǎn)換ADC不支持對(duì)DSP或DMA的中斷,所以DSP必須查詢(xún)ADC數(shù)據(jù)寄存器(ADCDATA)的ADCBUSY位來(lái)確定AD轉(zhuǎn)換的狀態(tài)轉(zhuǎn)換過(guò)程完成之后,ADCBUSY位的值從1變?yōu)?,表明轉(zhuǎn)換的數(shù)據(jù)有效,DSP可以從ADCDATA中讀取數(shù)據(jù)ADCCTL寄存器中的通道選擇(CHSELECT)位復(fù)制到ADCDATA中,這樣DSP就可以判斷值是來(lái)自哪個(gè)通道5.3.4ADC的寄存器地址(16進(jìn)制)名稱(chēng)說(shuō)明6800ADCCTLADC控制寄存器6801ADCDATAADC數(shù)據(jù)寄存器6802ADCCLKDIVADC時(shí)鐘分頻寄存器6803ADCCLKCTLADC時(shí)鐘控制寄存器寄存器名稱(chēng)重要位ADC控制寄存器(ADCCTL)ADCSTARTCHSELECTADC數(shù)據(jù)寄存器(ADCDATA)ADCBUSY、CHSELECTADCDATAADC時(shí)鐘分頻寄存器(ADCCLKDIV)SAMPTIMEDIVCONVRATEDIVADC時(shí)鐘控制寄存器(ADCCLKCTL)IDLEENCPUCLKDIV表3-2寄存器的重要位ADC控制寄存器ADCCTL15
1412110ADCSTARTCHSELECT保留ADCSTART
表明ADC是否處于忙狀態(tài)。CHSELECT000b模擬輸入通道AIN0001b模擬輸入通道AIN1010b模擬輸入通道AIN2011b模擬輸入通道AIN3100b~111b所有模擬開(kāi)關(guān)關(guān)閉ADC數(shù)據(jù)寄存器ADCDATA151412111090ADCBUSYCHSELECT保留
ADCDATA
ADCBUSY
表明ADC是否處于忙狀態(tài)
CHSELECT000b模擬輸入通道AIN0001b模擬輸入通道AIN1010b模擬輸入通道AIN2011b模擬輸入通道AIN3100b~111b所有模擬開(kāi)關(guān)關(guān)閉
ADCDATA
從模擬信號(hào)轉(zhuǎn)換來(lái)的10bit數(shù)據(jù)ADC分頻寄存器ADCCLKDIV1587430
SAMPTIMEDIV保留
CONVRATEDIVSAMPTIMEDIV:0~256設(shè)置采樣保持時(shí)間分頻CONVRATEDIV0000b轉(zhuǎn)換時(shí)鐘=ADC時(shí)鐘/2
0001b轉(zhuǎn)換時(shí)鐘=ADC時(shí)鐘/4...1111b轉(zhuǎn)換時(shí)鐘=ADC時(shí)鐘/32ADC時(shí)鐘控制寄存器ADCCLKCTL159870保留IDLEEN
CPUCLKDIVIDLEENADC的Idle使能位CPUCLKDIVCPU的時(shí)鐘分頻比在實(shí)驗(yàn)3.5中,CPU時(shí)鐘=144MHzvoidInitADC(){
ADCCLKCTL=0x23;//CPUCLKDIV=0x23=35
ADCCLKDIV=0x4f00;//SAMPTIMEDIV=0x4f=79;//CONVRATEDIV=0000b,轉(zhuǎn)換時(shí)鐘=ADC時(shí)鐘/2;}ADC時(shí)鐘=(CPU時(shí)鐘)/(CPUCLKDIV+1)=144/(35+1)=4MHzADC轉(zhuǎn)換時(shí)鐘=(ADC時(shí)鐘)/(2*(CONVRATEDIV+1))=4/(2*(0+1))=2MHzADC采樣保持時(shí)間
=(1/(ADC時(shí)鐘))*(2*(CONVRATEDIV+1+SAMPTIMEDIV))=(1/4MHz)*(2*(0+1+79))=40μsADC的總的轉(zhuǎn)換時(shí)間=ADC的采樣保持時(shí)間+13*(1/(ADC轉(zhuǎn)換時(shí)鐘)))=40μs+13*(1/2MHz)=46.5μs采樣頻率=1/總的轉(zhuǎn)換時(shí)間=1/46.5μs=21.5kHz
while(1) { for(i=0;i<256;i++) { ADCCTL=0x8000; //啟動(dòng)AD轉(zhuǎn)換,通道0 do {
uWork=ADCDATA; }while(uWork&0x8000); nADC0[i]=uWork&0x0fff; }
asm("nop"); //breakpoint }ADC采樣程序5.4中斷程序設(shè)計(jì)
中斷類(lèi)型可屏蔽中斷流程外部中斷引腳時(shí)序中斷向量表中斷寄存器中斷類(lèi)型可屏蔽中斷BERRINTDLOGINTRTOSINT外部管腳或片上外設(shè)中斷不可屏蔽中斷復(fù)位中斷NMI中斷JTAG中斷可屏蔽中斷流程中斷請(qǐng)求發(fā)送給CPU設(shè)置相應(yīng)的IFR寄存器中斷屏蔽寄存器IER相應(yīng)位是否置“1”INTM=0?清IFR相應(yīng)位INTM=1,禁止可屏蔽中斷按照IVPD寄存器找到向量表根據(jù)中斷請(qǐng)求跳轉(zhuǎn)到ISR執(zhí)行ISR的內(nèi)容回到中斷前的位置繼續(xù)執(zhí)行否否是是外部中斷引腳時(shí)序中斷電平在時(shí)鐘上升沿采樣低脈沖至少保持3個(gè)時(shí)鐘周期中斷序列為1-1-0-0-0中斷信號(hào)必須有高電平出現(xiàn)012341-1-0-0-0時(shí)鐘中斷信號(hào)有效時(shí)段中斷向量表:位置基地址由IVPD寄存器決定 中斷向量表的大小為256字節(jié)IVPD0xd00xFFF0向量表1向量表20xd00xFFF0部分中斷向量表名稱(chēng)IVPD偏移優(yōu)先級(jí)說(shuō)明INT0103外部中斷0INT1804外部中斷1INT2185外部中斷2TINT0206定時(shí)器0中斷RINT0287McBSP0接收中斷XINT0888McBSP0發(fā)送中斷RINT1309McBSP1接收中斷XINT13810McBSP1發(fā)送中斷INT35815外部中斷3中斷寄存器INTM:全局中斷允許,‘1’為禁止,‘0’為允許IER:中斷屏蔽寄存器,相關(guān)位置‘1’,允許中斷IFR:中斷標(biāo)志寄存器,相關(guān)位置‘1’,中斷產(chǎn)生15141312111098DMAC5DMAC4XINT2RINT2INT3DSPINTDMAC1USBR/WR/WR/WR/WR/WR/WR/WR/W76543210XINT1RINT1RINT0TINT0INT2INT0R/WR/WR/WR/WR/WR/WR/WR/WIER/IFR寄存器1.初步認(rèn)識(shí)定時(shí)器可采樣時(shí)鐘、定時(shí)控制或作計(jì)數(shù)器使用減1計(jì)數(shù)器且是一個(gè)軟件可編程定時(shí)器其定時(shí)間隔與CPU的時(shí)鐘有關(guān)。VC5509有2個(gè)片上定時(shí)器5.5通用定時(shí)器2.定時(shí)器的組成框圖PSC:預(yù)定標(biāo)計(jì)數(shù)器TDDR:預(yù)定標(biāo)分頻系數(shù)TIM:主計(jì)數(shù)寄存器PRD:主周期寄存器3.定時(shí)器相關(guān)寄存器(4個(gè))PRSC:預(yù)定標(biāo)計(jì)數(shù)器TCR:定時(shí)器控制寄存器TIM:主計(jì)數(shù)寄存器PRD:主周期寄存器4.定時(shí)器工作過(guò)程TSS=0時(shí),開(kāi)啟定時(shí)器,PSC在CPU時(shí)鐘(CLKOUT)作用下作減1計(jì)數(shù)PSC減為0時(shí),產(chǎn)生借位信號(hào),使TIM減1,同時(shí)TDDR
的值裝載到PSC,開(kāi)始下一次預(yù)計(jì)數(shù);重復(fù)步驟(2),反復(fù)驅(qū)動(dòng)TIM減1計(jì)數(shù),直到TIM減為0時(shí),
TIM產(chǎn)生借位信號(hào),此借位信號(hào)作CPU的定時(shí)中斷TINT
和定時(shí)脈沖輸出TOUT,同時(shí)PRD的值裝載到TIM開(kāi)始下一個(gè)定時(shí)周期;96PSC30TDDR15……0PRD15……0TIM150TCR96PSC30TDDR定時(shí)器工作過(guò)程的示意圖:TDDR和PRD的范圍:TDDR為4bit:Max=16PRD為16bit:Max=65536定時(shí)中斷周期:定時(shí)中斷頻率:5.定中斷周期和頻率例1:設(shè)CLKOUT的頻率為8MHz,現(xiàn)要求A/D采樣頻率為4kHz,用定時(shí)器中斷產(chǎn)生定時(shí)信號(hào),問(wèn)如何設(shè)計(jì)PRD和TDDR?說(shuō)明:TDDR的設(shè)置有多種,可以PRD=1999=0x7CF,TDDR=0例2:設(shè)CLKOUT的頻率為8MHz,現(xiàn)有一個(gè)發(fā)光管,要求每秒閃爍1次(即每秒亮一次,暗一次,頻率為2Hz),用定時(shí)器產(chǎn)生定時(shí)信號(hào)控制這個(gè)發(fā)光管,問(wèn)如何設(shè)計(jì)PRD和TDDR?6.定時(shí)器的初始化步驟:2)通過(guò)寫(xiě)PRSC中的TDDR,將預(yù)定標(biāo)計(jì)數(shù)器周期寫(xiě)入TDDR(以輸入的時(shí)鐘周期為基本單位);1)停止定時(shí)(TSS=1),使能定時(shí)器自動(dòng)裝載(TLB=1);3)將主計(jì)數(shù)器周期數(shù)裝入PRD
(以輸入的時(shí)鐘周期為基本單位);4)關(guān)閉定時(shí)器自動(dòng)裝載(TLB=0),啟動(dòng)定時(shí)器(TSS=0)。#include"myapp.h"http://定義指示燈寄存器地址和寄存器類(lèi)型#defineLBDS(*((unsignedint*)0x400001))voidINTR_init(void);voidTIMER_init(void);int
nCount;main(){
nCount=0; PLL_Init(40);
SDRAM_init(); LBDS=0;
INTR_init();
TIMER_init(); while(1) { }}voidinterruptTimer(){
nCount++;nCount%=16; if(nCount==0) LBDS^=1;}voidINTR_init(void){ IVPD=0xd0; IVPH=0xd0; IER0=0x10; DBIER0=0x10; IFR0=0xffff;
asm("BCLRINTM");}voidTIMER_init(void){ioportunsignedint*tim0;
ioportunsignedint*prd0;
ioportunsignedint*tcr0;
ioportunsignedint*prsc0; tim0=(unsignedint*)0x1000; prd0=(unsignedint*)0x1001; tcr0=(unsignedint*)0x1002; prsc0=(unsignedint*)0x1003;*tcr0=0x04f0;*tim0=0;*prd0=0x0ffff;*prsc0=2;*tcr0=0x00e0;};========vectors.asm========;PlugintheentrypointatRESETintheinterruptvectortable.sect".vectors".ref_c_int00;Centrypoint.if(.MNEMONIC)rsv:;resetvectorB_c_int00;branchtoCentrypointNOP.align8nmi: .loop8
nop .endloopint0: .loop8
nop .endloopint2: .loop8
nop .endloop .ref_Timertint:
B_Timer
nop
.align8.…. .elsersv:;resetvector
goto_c_int00;branchtoCentrypointNOP.align8.endif5.6BootloaderBootloader硬件基礎(chǔ)和工作過(guò)程BootTable的結(jié)構(gòu)Bootloader的軟件操作流程什么是Bootloader?DSP的速度較快,EPROM或flash的速度較慢,片外的RAM也較快。為了使DSP充分發(fā)揮它的能力,必須將程序代碼放在RAM中運(yùn)行。為了方便地將代碼從ROM中搬到RAM中,在不帶flash的DSP中,TI在出廠(chǎng)時(shí)固化了一段程序,在上電后完成從ROM或外設(shè)將代碼搬到用戶(hù)指定的RAM中。此程序稱(chēng)為“bootloader”.
C5000系列DSP為方便用戶(hù)使用提供了多種加載方式,以TMS320VC5509為例,TMS320VC5509有增強(qiáng)主機(jī)接口(EHPI)加載方式、并行外部存儲(chǔ)器接口(EMIF)加載方式、標(biāo)準(zhǔn)串口加載方式以及支持外圍設(shè)備接口(SPI)加載方式等多種加載方式。加載方式可以通過(guò)預(yù)置通用I/O引腳的高低電平來(lái)選擇,在表格中給出了具體的說(shuō)明。BootTable的結(jié)構(gòu)BootTable32位入口地址配置寄存器個(gè)數(shù)寄存器地址|
寄存器內(nèi)容段大小段起始地址段數(shù)據(jù)段大小段起始地址段數(shù)據(jù)0000(結(jié)束標(biāo)志)按照配置寄存器個(gè)數(shù)循環(huán)段起始地址.text段大小段起始地址.cinit段大小Bootloader的軟件操作流程BootTable由編譯得到的out文件作為輸入由用戶(hù)手工編寫(xiě)的cmd文件作控制由Hex500生成使用FlashBurn燒寫(xiě)到板子的Flas
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025河北中興冀能實(shí)業(yè)有限公司高校畢業(yè)生招聘(第三批)考前自測(cè)高頻考點(diǎn)模擬試題及答案詳解(新)
- 踐行綠色發(fā)展責(zé)任的承諾書(shū)7篇
- 2025年抗輻射光學(xué)石英玻璃項(xiàng)目申請(qǐng)報(bào)告
- 從小王子書(shū)中看成長(zhǎng)讀后感9篇
- 2025屆青海省西寧市高三下學(xué)期一??荚囉⒄Z(yǔ)試卷(解析版)
- 2025年國(guó)網(wǎng)河南省電力公司招聘高校畢業(yè)生約180人(第三批)考前自測(cè)高頻考點(diǎn)模擬試題及一套答案詳解
- 推動(dòng)經(jīng)濟(jì)穩(wěn)定增長(zhǎng)的責(zé)任書(shū)8篇
- 遼寧省名校聯(lián)盟2024-2025學(xué)年高二上學(xué)期第一次月考考試地理試題(解析版)
- 江西省新九校協(xié)作體2024-2025學(xué)年高一下學(xué)期第一次聯(lián)考地理試題(解析版)
- 業(yè)務(wù)合規(guī)管理承諾函7篇
- 管理崗位津貼管理制度
- 重癥肺炎集束化治療專(zhuān)題報(bào)告
- 麻醉科院內(nèi)感染防控體系
- 2025年云南南方地勘工程有限公司招聘筆試參考題庫(kù)含答案解析
- 工程部管理培訓(xùn)課件
- DB31/T 978-2016同步注漿用干混砂漿應(yīng)用技術(shù)規(guī)范
- 夜場(chǎng)員工合同協(xié)議書(shū)
- 【DAMA】2025智變-AI賦能政府與央國(guó)企智能化轉(zhuǎn)型白皮書(shū)
- 新教材部編版二年級(jí)上冊(cè)《4.彩虹》教學(xué)設(shè)計(jì)
- 航空寵物知識(shí)培訓(xùn)課件
- 護(hù)理人員在職繼續(xù)教育培訓(xùn)與考評(píng)制度
評(píng)論
0/150
提交評(píng)論