版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第5章TMS320C55XDSP的外設(shè)
5.1引言
5.2通用計(jì)時(shí)器
5.3TMS320C5509DSP片上ADC5.4外部存儲(chǔ)器接口(EMIF)5.5本章小結(jié)習(xí)題與思考題
在第1章中,我們講到DSP處理器往往需要脫機(jī)獨(dú)立工作,為與外設(shè)接口方便,其中往往設(shè)置了豐富的周邊接口電路。在實(shí)際應(yīng)用中掌握DSP片上外設(shè)的使用方法非常重要。
圖5-1為TMS320C5509的CPU、總線、片上存儲(chǔ)器以及部分片上外設(shè)的示意圖。如圖所示的TMS320C5509有多種片上外設(shè),這給我們的設(shè)計(jì)和應(yīng)用帶來了很大的方便。
5.1引言
TMS320C5509的片上外設(shè)主要有:時(shí)鐘產(chǎn)生器(振蕩器與鎖相環(huán)PLL)、計(jì)時(shí)器(Timer)、通用的I/O口(GPIO)、多通道同步緩沖串口(McBSP)、主機(jī)接口(HIP)、直接存儲(chǔ)器訪問(DMA)控制器、外部存儲(chǔ)器接口(EMIF)、內(nèi)部集成電路(I2C)模塊、多媒體卡(MMC)控制器、USB2.0接口、模擬/數(shù)字轉(zhuǎn)換器(ADC)等。
本書將在本章以及后續(xù)章節(jié)介紹TMS320C5509的片上外設(shè)的使用方法。在學(xué)習(xí)的過程中,大家可以參考TI公司針對(duì)不同外設(shè)的應(yīng)用手冊(cè)。
圖5-1TMS320C5509的CPU、總線、片上存儲(chǔ)器以及部分片上外設(shè)示意圖
5.2.1通用計(jì)時(shí)器簡介
TMS320C5509的通用計(jì)時(shí)器由兩個(gè)計(jì)數(shù)器組成,提供了20bit的計(jì)數(shù)范圍:1個(gè)4bit的預(yù)定標(biāo)計(jì)數(shù)器和1個(gè)16bit的主計(jì)數(shù)器。圖5-2所示是通用計(jì)時(shí)器的原理框圖。
5.2通?用?計(jì)?時(shí)?器圖5-2通用計(jì)時(shí)器原理框圖該計(jì)時(shí)器有兩個(gè)計(jì)數(shù)器(PSC和TIM)和兩個(gè)周期寄存器(TDDR和PRD)。TDDR和PRD里面存放計(jì)時(shí)器的計(jì)時(shí)值,而計(jì)時(shí)的任務(wù)由PSC和TIM來完成。
在計(jì)數(shù)器初始化或計(jì)數(shù)器重新裝入過程中,周期寄存器的內(nèi)容會(huì)被復(fù)制到計(jì)數(shù)寄存器中。計(jì)時(shí)器控制器(TCR)控制和監(jiān)視計(jì)時(shí)器和計(jì)時(shí)器引腳(TIN/TOUT)的工作狀態(tài)。根據(jù)TCR中的FUNCbit的值,可以將計(jì)時(shí)器引腳配置成通用輸出(同TCR的DATAOUTbit相連接)、計(jì)時(shí)器輸出、一個(gè)時(shí)鐘輸入或者高阻狀態(tài)。
預(yù)定標(biāo)計(jì)數(shù)器由輸入時(shí)鐘驅(qū)動(dòng),這個(gè)輸入時(shí)鐘可以是CPU時(shí)鐘也可以是外部時(shí)鐘。每個(gè)時(shí)鐘周期,PSC減1。當(dāng)PSC減為0時(shí),TIM會(huì)自動(dòng)減1。當(dāng)TIM減為0后一個(gè)周期,計(jì)時(shí)器會(huì)向CPU發(fā)出中斷請(qǐng)求,向DMA控制器發(fā)出一個(gè)同步事件(TEVT),同時(shí)送出一個(gè)輸出信號(hào)到計(jì)時(shí)器引腳。
如果置位TCR中的自動(dòng)裝入位(ARB),則計(jì)時(shí)器配置成自動(dòng)裝入模式。在這種模式下,每當(dāng)計(jì)時(shí)器計(jì)數(shù)減為0,預(yù)定標(biāo)和計(jì)數(shù)器的值都會(huì)被重新裝入。為了保證在自動(dòng)裝入模式下,計(jì)時(shí)器的輸出引腳能正常工作,計(jì)時(shí)器的周期[(TDDR
+
1)
×
(PRD
+
1)]必須大于等于4個(gè)時(shí)鐘周期。
5.2.2TMS320C55X中斷系統(tǒng)
中斷指的是這樣一個(gè)過程:CPU正處理某件事情(執(zhí)行程序)時(shí),外部發(fā)生了某一件事件并向CPU發(fā)信號(hào)請(qǐng)求去處理,CPU暫時(shí)中斷當(dāng)前工作,轉(zhuǎn)去處理這一事件(進(jìn)入中斷服務(wù)程序),處理完再回來繼續(xù)原來的工作。實(shí)現(xiàn)這種功能的部件稱為中斷系統(tǒng),產(chǎn)生中斷的請(qǐng)求源稱為中斷源。
中斷系統(tǒng)使得DSP能夠處理多個(gè)任務(wù)。DSP有許多中斷源,可以設(shè)置中斷控制寄存器來確定響應(yīng)哪些中斷而不理會(huì)哪些中斷。DSP在對(duì)片上外設(shè)操作時(shí)很多時(shí)候都要用到中斷。
C55X支持32個(gè)中斷服務(wù)子程序ISR。有些ISR可以由軟件或硬件觸發(fā),有些則只能由軟件觸發(fā)。當(dāng)CPU同時(shí)接收到多個(gè)硬件中斷請(qǐng)求時(shí),CPU會(huì)按照預(yù)先定義的優(yōu)先級(jí)對(duì)它們做出響應(yīng)和處理。所有的C55X中斷,無論是軟件還是硬件中斷,都可分成可屏蔽中斷、不可屏蔽中斷兩類??善帘沃袛嗫梢酝ㄟ^軟件來加以屏蔽,不可屏蔽中斷則不能被屏蔽。所有的軟件中斷都是不可屏蔽中斷。
1.中斷管理寄存器
C55X的中斷管理寄存器如表5-1所示。
表5-1C55X的中斷管理寄存器1)中斷向量指針(IVPD、IVPH)
中斷向量均為16bit指向程序空間的中斷向量。DSP中斷向量指針(IVPD)指向256byte的程序頁,它包括了DSP中斷向量IV0~I(xiàn)V15和IV24~I(xiàn)V31。這些向量都可以映射到只分配給DSP的存儲(chǔ)器。
主機(jī)中斷向量指針(IVPH)指向256byte的程序頁,它包括了主機(jī)中斷向量IV16~I(xiàn)V23。這些向量都可以映射到DSP和主機(jī)處理器共享的存儲(chǔ)器,因此主機(jī)處理器可以定義相關(guān)的中斷服務(wù)子程序。
如果IVPD和IVPH的值相同,
則所有的中斷向量會(huì)在同一個(gè)256byte的程序頁里。DSP硬件復(fù)位時(shí),給兩個(gè)IVP都裝入FFFFh。兩個(gè)IVP都不受軟件復(fù)位指令的影響。
在修改IVPD和IVPH之前,要確認(rèn):
●可屏蔽中斷被全局禁止(INTM=1)。這可以防止IVP被修改成指向新向量之前,產(chǎn)生任何可屏蔽中斷。
●每個(gè)硬件非屏蔽中斷,對(duì)于舊的IVPD和新的IVPD值,都有一個(gè)向量和一個(gè)中斷服務(wù)子程序。如果在修改IVPD過程中,發(fā)生一個(gè)硬件非屏蔽中斷,就可防止提取非法指令代碼。
表5-2說明不同中斷向量的地址如何產(chǎn)生。CPU連接一個(gè)16bit的中斷向量指針和一個(gè)編碼成5bit的向量數(shù)(例如,IV1是00001,IV16是10000),再左移3bit。
表5-2向量與向量地址的形成2)中斷標(biāo)志寄存器(IFR0、IFR1)
兩個(gè)16bit的中斷標(biāo)志寄存器IFR0和IFRl包含了所有可屏蔽中斷的標(biāo)志位。當(dāng)一個(gè)可屏蔽中斷的要求到達(dá)CPU時(shí),一個(gè)IFR的相應(yīng)標(biāo)志置l,它表示中斷還未解決或正等待CPU的確認(rèn)。圖5-3所示是C55XIFR0寄存器的示意圖,表5-3是IFR0各位域的功能說明,IFR1示意圖在圖5-4中給出,其具體各位域的功能可以參考TMS320VC5509A的數(shù)據(jù)手冊(cè)。
可以通過讀IFR來確定未決的中斷,寫IFR來清零未決中斷。要清零一個(gè)中斷請(qǐng)求(且將其IFRbit清零),則寫1到相應(yīng)的IFRbit。例如:;清零標(biāo)志IF14和IF2
MOV#0100000000000100b,mmap(@IFR0)
所有未決的中斷,都可通過把IFR現(xiàn)有內(nèi)容寫回到IFR來清零。硬件中斷請(qǐng)求的確認(rèn)也可清零相應(yīng)的IFRbit。一個(gè)器件的復(fù)位也可清零所有的IFRbit。
表5-3IFR0寄存器各位功能
圖5-3IFR0寄存器圖5-4IFR1寄存器
3)中斷使能寄存器(IER0、IER1)
要使能一個(gè)可屏蔽中斷,將其IER0或IER1里的相應(yīng)位置1。要禁止一個(gè)可屏蔽中斷,則將其IER0或IER1里相應(yīng)的使能位置0。復(fù)位時(shí),所有的IERbit都清0,禁止所有的可屏蔽中斷。IER0和IER1的各位所對(duì)應(yīng)的中斷與IFR0和IFR1相同,可以參考表5-3和圖5-3、圖5-4。
4)調(diào)試中斷使能寄存器(DBIER0、DBIER1)
只有當(dāng)調(diào)試器工作在實(shí)時(shí)仿真模式,CPU暫停的情況下,才使用這兩個(gè)16bit的調(diào)試中斷使能寄存器:DBIER0和DBIER1。如果CPU以實(shí)時(shí)模式運(yùn)行,則使用標(biāo)準(zhǔn)的中斷處理程序,而不用DBIER。在一個(gè)DBIER里,使能的可屏蔽中斷定義為臨界的時(shí)間中斷。當(dāng)CPU在實(shí)時(shí)模式下暫停時(shí),只對(duì)臨界的時(shí)間中斷提供服務(wù),而臨界的時(shí)間中斷也在中斷使能寄存器(IER1或IER0)里使能。
讀DBIER來識(shí)別臨界的時(shí)間中斷。寫DBIER來使能或禁止臨界的時(shí)間中斷。要使能一個(gè)中斷,則對(duì)相應(yīng)的bit置位。要禁止一個(gè)中斷,則將相應(yīng)的bit清0。用戶可參閱C55XDSP的數(shù)據(jù)手冊(cè),了解DBIER各bit所對(duì)應(yīng)的中斷。
注意:DBIERl和DBIER0不受軟復(fù)位指令或DSP硬件復(fù)位的影響。用戶使用實(shí)時(shí)仿真模式前,要先初始化這些寄存器。
2.中斷響應(yīng)過程
DSP處理中斷的4個(gè)步驟如下:
(1)接收中斷請(qǐng)求。軟件或硬件都要求將當(dāng)前程序隊(duì)列掛起。
(2)響應(yīng)中斷請(qǐng)求。CPU必須響應(yīng)中斷請(qǐng)求。如果是可屏蔽中斷,則響應(yīng)必須滿足某些條件;如果是不可屏蔽中斷,則CPU立即響應(yīng)。
(3)準(zhǔn)備進(jìn)入中斷服務(wù)子程序。CPU要執(zhí)行的主要任務(wù)有:
①完成當(dāng)前指令的執(zhí)行,并沖掉流水線上還未解碼的指令。
②自動(dòng)將某些必要的寄存器的值保存到數(shù)據(jù)堆棧和系統(tǒng)堆棧。
③從用戶事先設(shè)置好的向量地址獲取中斷向量,該中斷向量指向中斷服務(wù)子程序。
(4)執(zhí)行中斷服務(wù)子程序。CPU執(zhí)行用戶編寫的ISR。ISR以一條中斷返回指令結(jié)束,自動(dòng)恢復(fù)步驟(3)中自動(dòng)保存的寄存器值。
注意:①外部中斷只能發(fā)生在CPU退出復(fù)位后的至少3個(gè)周期后,否則無效。②在硬件復(fù)位后,不論INTMbit的設(shè)置和寄存器IER0、IERl的值如何,所有的中斷(可屏蔽和不可屏蔽)都被禁止,直到通過軟件寫堆棧指針(SP和SSP寄存器)初始化堆棧后,才可開放中斷。堆棧初始化后,INTMbit和寄存器IER0、IER1的值決定開放哪些中斷。
5.2.3計(jì)時(shí)器中斷
通用計(jì)時(shí)器有一個(gè)計(jì)時(shí)器中斷信號(hào)(TINT)。當(dāng)主計(jì)數(shù)寄存器(TIM)減為0時(shí),計(jì)時(shí)器會(huì)向CPU發(fā)出中斷請(qǐng)求,計(jì)時(shí)器中斷的速率為:
(5-1)
TINT會(huì)自動(dòng)在一個(gè)中斷標(biāo)志寄存器(IFR0和IFR1)設(shè)置一個(gè)標(biāo)志。
用戶可以在中斷使能寄存器(IER0和IER1)以及調(diào)試中斷使能寄存器(DBIER0和DBIER1)里,使能或禁止這個(gè)中斷。沒有使用通用計(jì)時(shí)器時(shí),禁止計(jì)時(shí)器中斷,以免產(chǎn)生不希望的中斷。
由5.2.2節(jié)我們知道計(jì)時(shí)器0中斷對(duì)應(yīng)IER0和IFR0的第4位。5.2.4計(jì)時(shí)器寄存器
對(duì)于通用計(jì)時(shí)器,DSP包含了如表5-4所列的寄存器。
表5-4通用計(jì)時(shí)器寄存器1.周期和計(jì)數(shù)寄存器
周期和計(jì)數(shù)寄存器的說明如表5-5所示,其位域的分布如圖5-5所示。
表5-5周期和計(jì)數(shù)寄存器圖5-5通用計(jì)時(shí)器里的周期和計(jì)數(shù)寄存器對(duì)于周期和計(jì)數(shù)寄存器各位域的說明如表5-6~5-8所示。
表5-6寄存器PRSC各位域的說明表5-7寄存器PRD各位域的說明表5-8寄存器TIM各位域的說明2.計(jì)數(shù)器控制寄存器(TCR)
圖5-6所示是計(jì)數(shù)器控制寄存器(TCR)。表5-9說明了TCR的各域。通過置位TCR的各域,可以配置、啟動(dòng)、停止、裝入/重新裝入計(jì)時(shí)器。TCR中的其他bit控制相關(guān)的計(jì)時(shí)器輸出引腳的功能。
圖5-6計(jì)數(shù)器控制寄存器(TCR)
表5-9TCR的域續(xù)續(xù)續(xù)5.2.5計(jì)時(shí)器的操作
計(jì)時(shí)器的操作主要有2部分,一是對(duì)其寄存器進(jìn)行初始化,二是設(shè)置中斷向量。
計(jì)時(shí)器初始化步驟如下:
(1)確定計(jì)時(shí)器是停止的(TSS
=
1),使能計(jì)時(shí)器自動(dòng)裝入(TLB
=
1),正確的置位TCR中的其他控制bit。當(dāng)TLB為1時(shí),周期寄存器(PRD和TDDR)中的值會(huì)自動(dòng)裝入計(jì)數(shù)寄存器(TIM和PSC)。
(2)通過寫PRSC中的TDDR,
裝入期望的預(yù)定標(biāo)計(jì)數(shù)周期系數(shù)(以輸入時(shí)鐘周期為基本單位)。
(3)往PRD中裝入主計(jì)數(shù)器系數(shù)(以輸入時(shí)鐘周期為基本單位)。
(4)關(guān)閉計(jì)時(shí)器自動(dòng)裝入(TLB
=
0),啟動(dòng)計(jì)時(shí)器(TSS
=
0)。當(dāng)計(jì)時(shí)器開始工作時(shí),TIM會(huì)保持PRD的值,PSC會(huì)保持TDDR的值。下面是一個(gè)計(jì)時(shí)器初始化的實(shí)例:
voidTIMER_init(void) //初始化計(jì)時(shí)器
{
ioportunsignedint*tim0;
ioportunsignedint*prd0;
ioportunsignedint*tcr0;
ioportunsignedint*prsc0;
tim0=(unsignedint*)0x1000; //定時(shí)器0計(jì)數(shù)寄存器地址
prd0=(unsignedint*)0x1001; //定時(shí)器0周期寄存器地址
tcr0=(unsignedint*)0x1002; //定時(shí)器0控制寄 存器地址
prsc0=(unsignedint*)0x1003; //定時(shí)器0預(yù)定標(biāo) 寄存器地址
*tcr0=0x04f0; //TLB=1;ARB=1;TSS=1
*tim0=0; //清主計(jì)數(shù)器
*prd0=0x0ffff; //設(shè)置周期寄存器PRD=FFFFH
*prsc0=2; //設(shè)置周期寄存器TDDR=2,清預(yù)定標(biāo)寄存器PSC=0
*tcr0=0x00e0; //TLB=0;ARB=1;TSS=0
}通用計(jì)時(shí)器有一個(gè)計(jì)時(shí)器中斷信號(hào)(TINT)。
當(dāng)主計(jì)數(shù)器(TIM)減為0時(shí),計(jì)時(shí)器會(huì)向CPU發(fā)出中斷請(qǐng)求。
TINT會(huì)自動(dòng)在一個(gè)中斷標(biāo)志寄存器(IFR0和IFR1)設(shè)置一個(gè)標(biāo)志。用戶可以在中斷使能寄存器(IER0和IER1)以及調(diào)試中斷使能寄存器(DBIER0和DBIER1)里,使能或禁止這個(gè)中斷,以免產(chǎn)生不希望出現(xiàn)的中斷。
下面是一個(gè)設(shè)置中斷的實(shí)例:
voidINTR_init(void)
{
IVPD=0xd0; //設(shè)置中斷向量表的起始地址為 0xd000
IVPH=0xd0;
IER0=0x10; //中斷使能寄存器IER0的TINT0 位置1,即開計(jì)時(shí)器0中斷
DBIER0=0x10; //調(diào)試中斷使能寄存器的相關(guān)位 置位
IFR0=0xffff; //清除中斷標(biāo)志位
asm(“BCLRINTM”); //嵌入?yún)R編語句,清可屏 蔽中斷屏蔽位
}
一、任務(wù)目的
(1)熟悉VC5509A的定時(shí)器;
(2)掌握VC5509A定時(shí)器的控制方法;
(3)掌握VC5509A的中斷結(jié)構(gòu)和對(duì)中斷的處理流程;
(4)學(xué)會(huì)C語言中斷程序設(shè)計(jì),以及運(yùn)用中斷程序控制程序流程。任務(wù)7DSP的定時(shí)器
二、所需設(shè)備
(1)
PC兼容機(jī)一臺(tái),操作系統(tǒng)為Windows2000(或WindowsNT、Windows98、WindowsXP,以下假定操作系統(tǒng)為Windows2000)。Windows操作系統(tǒng)的內(nèi)核如果是NT的應(yīng)該安裝相應(yīng)的補(bǔ)丁程序(如:Windows2000為ServicePack3,WindowsXP為ServicePack1)。
(2)
ICETEK-VC5509-A-USB-EDU試驗(yàn)箱一臺(tái)。如無試驗(yàn)箱則配備ICETEK-USB或ICETEK-PP仿真器和ICETEK-VC5509-A或ICETEK-VC5509-C評(píng)估板,+5V電源一只。
(3)
USB連接電纜一條(如使用PP型仿真器換用并口電纜一條)。三、相關(guān)原理
1.通用定時(shí)器介紹及其控制方法
(略)
2.中斷響應(yīng)過程
外設(shè)事件要引起CPU中斷,必須保證:IER中相應(yīng)使能位被使能,IFR相應(yīng)中斷也被使能。在軟件中,當(dāng)設(shè)置好相應(yīng)中斷標(biāo)志后,開中斷,進(jìn)入等待中斷發(fā)生的狀態(tài)。外設(shè)(如定時(shí)器)中斷發(fā)生時(shí),首先跳轉(zhuǎn)到相應(yīng)高級(jí)的中斷服務(wù)程序中(如:定時(shí)器1會(huì)引起TINT中斷),程序在進(jìn)行服務(wù)操作之后,應(yīng)將本外設(shè)的中斷標(biāo)志位清除以便能繼續(xù)中斷,然后返回。
3.中斷程序設(shè)計(jì)
程序中應(yīng)包含中斷向量表,VC5509A默認(rèn)向量表從程序區(qū)0地址開始存放,根據(jù)IPVD和IPVH的值確定向量表的實(shí)際地址。
注意觀察程序中INTR_init()函數(shù)的定義部分,其中IVPD和IVPH的值都為0x0d0;同時(shí)觀察配置文件ICETEK-VC5509-A.cmd中的VECT段描述中o=0x0d000。
向量表中每項(xiàng)為8個(gè)字,存放一個(gè)跳轉(zhuǎn)指令,跳轉(zhuǎn)指令中的地址為相應(yīng)服務(wù)程序入口地址。第一個(gè)向量表的首項(xiàng)為復(fù)位向量,即CPU復(fù)位操作完成后自動(dòng)進(jìn)入執(zhí)行的程序入口。服務(wù)程序在服務(wù)操作完成后,清除相應(yīng)中斷標(biāo)志并返回,完成一次中斷服務(wù)。
4.程序流程圖
程序流程圖如圖5-7所示。
圖5-7程序流程圖
5.程序分析
主程序:
#include"myapp.h"
//定義指示燈寄存器地址和寄存器類型
#defineLBDS(*((unsignedint*)0x400001))
voidINTR_init(void); //定義中斷初始化函數(shù)
voidTIMER_init(void);
intnCount;
main()
{
nCount=0; //nCount置初值
CLK_init(); //調(diào)用時(shí)鐘初始化函數(shù)
SDRAM_init(); //調(diào)用EMIF初始化函數(shù),這將在本章后面講述
LBDS=0; //LBDS設(shè)為0,將指示燈關(guān)閉
INTR_init(); //中斷初始化
TIMER_init(); //計(jì)時(shí)器初始化
while(1)
{
} //死循環(huán),等待中斷
}
voidinterruptTimer()
{
nCount++;nCount%=16; //中斷計(jì)數(shù),當(dāng)進(jìn)入中斷 16次后執(zhí)行LBDS^=1
if(nCount==0)
LBDS^=1; //位操作,對(duì) LBDS進(jìn)行位異或
}程序的工程中包含了兩種源代碼,主程序采用C語言編制利于控制,中斷向量表在vector.asm匯編語言文件中,利于直觀地控制存儲(chǔ)區(qū)分配。在工程中只需將它們添加進(jìn)來即可,編譯系統(tǒng)會(huì)自動(dòng)識(shí)別并分別處理,完成整合工作。
Vector.asm程序:
.sect".vectors";開始命名段.vectors
.ref_c_int00 ;C程序入口
rsv: ;Reset中斷向量
B_c_int00 ;跳轉(zhuǎn)到程序入口
NOP
.align8
nmi: ;不可屏蔽中斷
.loop8
nop
.endloop
int0: ;外部中斷INT0
.loop8
nop
.endloop
int2: ;外部中斷INT2
.loop8
nop
.endloop
.ref_Timer ;引用外部函數(shù)Timer
tint: ;Timer0中斷
B_Timer ;跳轉(zhuǎn)到中斷服務(wù)子程 序Timer
nop
.align8;節(jié)省篇幅,下面省略
C5509共有32個(gè)中斷向量,每個(gè)向量占4個(gè)字的空間。使用向量一般用一條跳轉(zhuǎn)指令轉(zhuǎn)到相應(yīng)中斷服務(wù)子程序,其余空位用NOP填充。
程序的C語言主程序中包含了內(nèi)嵌匯編語句,提供一種在需要更直接控制DSP狀態(tài)時(shí)的方法,同樣的方法也能提高C語言部分程序的計(jì)算效率。
四、任務(wù)步驟
(1)設(shè)置CodeComposerStudio2.21在硬件仿真(Emulator)方式下運(yùn)行。
(2)啟動(dòng)CodeComposerStudio2.21。
(3)打開工程文件。打開菜單“Project”的“Open”項(xiàng),選擇項(xiàng)目文件夾下的“Timer.pjt”。在項(xiàng)目瀏覽器中,雙擊main.c,激活main.c文件,瀏覽該文件的內(nèi)容,理解各語句作用。打開ICETEK-VC5509-A.cmd,對(duì)照vector.asm源程序?qū)W習(xí)中斷向量表的寫法。
(4)編譯、下載程序。
(5)運(yùn)行程序,觀察結(jié)果。
(6)改變TIMER_init()函數(shù)里
*prd0=0x0ffff為“=0x0fff”;重復(fù)步驟(4)、(5),觀察現(xiàn)象。
(7)退出CCS。五、結(jié)果
(1)指示燈在定時(shí)器的定時(shí)中斷中按照設(shè)計(jì)定時(shí)閃爍。
(2)使用定時(shí)器和中斷服務(wù)程序可以完成許多需要定時(shí)完成的任務(wù),比如DSP定時(shí)啟動(dòng)A/D轉(zhuǎn)換、日常生活中的計(jì)時(shí)器計(jì)數(shù)、空調(diào)的定時(shí)啟動(dòng)和關(guān)閉等。
(3)在調(diào)試程序時(shí),有時(shí)需要指示程序工作的狀態(tài),可以利用指示燈的閃爍來達(dá)到,指示燈靈活的閃爍方式可表達(dá)多種狀態(tài)信息。六、問題與思考
(1)對(duì)照vector.asm和本任務(wù)程序的.cmd文件以及.map文件,看看中斷向量表是如何定義的,以及其在存儲(chǔ)器中的存放地址。
(2)查閱相關(guān)資料以及本程序的CLK_init.c程序,看本任務(wù)的CPU時(shí)鐘設(shè)置為多少,根據(jù)式(5-1)以及周期寄存器的設(shè)置計(jì)算計(jì)時(shí)的時(shí)間長度。
5.3.1ADC簡介
TMS320C5509DSP內(nèi)部集成了一個(gè)10位連續(xù)逼近式數(shù)模轉(zhuǎn)換器ADC。ADC將外部輸入的模擬信號(hào),轉(zhuǎn)換為DSP處理的數(shù)字信號(hào)。該ADC在一個(gè)時(shí)刻可以最多對(duì)4路模擬輸入的一個(gè)進(jìn)行采樣,并用10位的數(shù)字形式表示。該ADC的最大采樣率為21.5kHz,所以很適合對(duì)慢速變化的模擬信號(hào)進(jìn)行采樣。如在電源監(jiān)視電路中對(duì)電壓采樣,這個(gè)ADC不適合作為ADC主數(shù)據(jù)流的源。其框圖如圖5-8所示。5.3TMS320C5509DSP片上ADC
圖5-8ADC框圖
TMS320C5509DSP內(nèi)部集成的10位數(shù)模轉(zhuǎn)換器ADC采用連續(xù)逼近方式,因此功耗很低。它采用保持電路來產(chǎn)生均勻間隔的腳本。該ADC使用引腳AVDD和AVSS上的外部參考電壓,將轉(zhuǎn)換過程所使用的電壓和系統(tǒng)電源電壓隔離開。這些引腳也為模數(shù)轉(zhuǎn)換提供參考電壓,AVDD提供高電壓,AVSS提供低電壓。5.3.2總轉(zhuǎn)換時(shí)間
ADC的總轉(zhuǎn)換時(shí)間由兩個(gè)部分組成:采樣保持時(shí)間和轉(zhuǎn)換時(shí)間,如圖5-9所示。
采樣保持時(shí)間是采樣保持電路獲取一個(gè)采樣點(diǎn)的時(shí)間,一般大于等于40μs。轉(zhuǎn)換時(shí)間是將一個(gè)采樣值采用連續(xù)逼近的方法用數(shù)字的形式來表示的時(shí)間。轉(zhuǎn)換時(shí)間要用13個(gè)轉(zhuǎn)換時(shí)鐘周期完成。內(nèi)部的轉(zhuǎn)換時(shí)鐘最大可以達(dá)到2MHz。圖5-9ADC總的轉(zhuǎn)換時(shí)間5.3.3初始化和監(jiān)視轉(zhuǎn)換周期
ADC不是工作在連續(xù)模式下,因此每次轉(zhuǎn)換時(shí),DSP都必須將ADC控制寄存器(ADCCTL)的ADCSTARTbit置1。一旦啟動(dòng)轉(zhuǎn)換,DSP就必須等待,直到轉(zhuǎn)換完成,然后再去選擇另一個(gè)通道,或者啟動(dòng)另一次新的轉(zhuǎn)換。
ADC不支持對(duì)DSP或者DMA的中斷,所以DSP必須查詢ADC數(shù)據(jù)寄存器(ADCDATA)的ADCBUSYbit來確定A/D轉(zhuǎn)換的狀態(tài)。在轉(zhuǎn)換過程完成后,ADCBUSYbit的值從1變?yōu)?,表明轉(zhuǎn)換的數(shù)據(jù)有效,DSP可以從ADCDATA將數(shù)據(jù)讀走,ADCCTL寄存器中的通道選擇(CHSELECT)bit復(fù)制到ADCDATA中,使DSP可以判斷采樣值是來自哪個(gè)通道。5.3.4ADC寄存器
ADC的寄存器如表5-10所示,通過DSP中可以訪問的I/O空間來訪問這些寄存器。表5-10ADC寄存器1.?ADC寄存器(ADCCTL)
ADC的控制寄存器是一個(gè)讀/寫寄存器,用來選擇模擬輸入通道和啟動(dòng)一次轉(zhuǎn)換,如圖5-10和表5-11所示。圖5-10ADC寄存器ADCCTL
表5-11ADC的控制寄存器ADCCTL2.?ADC的數(shù)據(jù)寄存器(ADCDATA)
ADC的數(shù)據(jù)寄存器(如圖5-11和表5-12所示)是一個(gè)讀/寫寄存器,表示一個(gè)轉(zhuǎn)換是否在進(jìn)行,記錄從模擬信號(hào)轉(zhuǎn)換來的數(shù)字?jǐn)?shù)據(jù),還要指明數(shù)據(jù)所來自的通道。圖5-11ADC寄存器ADCDATA
表5-12ADC寄存器ADCDATA
3.?ADC時(shí)鐘分頻寄存器(ADCCLKDIV)
ADC時(shí)鐘分頻寄存器(如圖5-12和表5-13所示)是一個(gè)讀/寫寄存器,表示轉(zhuǎn)換時(shí)鐘和采樣保持時(shí)間的分頻值。圖5-12ADC時(shí)鐘分頻寄存器ADCCLKDIV
表5-13ADC時(shí)鐘分頻寄存器ADCCLKDIV說明4.ADC時(shí)鐘控制寄存器(ADCCLKDIV)
ADC時(shí)鐘控制寄存器如圖5-13所示,其說明如表5-14所示。圖5-13ADC時(shí)鐘控制寄存器ADCCLKDIV
表5-14ADC時(shí)鐘控制寄存器ADCCLKDIV
一、任務(wù)目的
掌握VC5509A片內(nèi)A/D的控制方法。任務(wù)8單路、多路模數(shù)轉(zhuǎn)換(A/D)二、所需設(shè)備
(1)
PC兼容機(jī)一臺(tái),操作系統(tǒng)為Windows2000(或WindowsNT、Windows98、WindowsXP,以下假定操作系統(tǒng)為Windows2000)。Windows操作系統(tǒng)的內(nèi)核如果是NT的應(yīng)該安裝相應(yīng)的補(bǔ)丁程序(如:Windows2000為ServicePack3,WindowsXP為ServicePack1)。
(2)ICETEK-VC5509-A-USB-EDU試驗(yàn)箱一臺(tái)。如無試驗(yàn)箱則配備ICETEK-USB或ICETEK-PP仿真器和ICETEK-VC5509-A或ICETEK-VC5509-C評(píng)估板,+5V電源一只,信號(hào)發(fā)生器。
(3)
USB連接電纜一條(如使用PP型仿真器換用并口電纜一條)。
三、相關(guān)原理
1.TMS320VC5509A模數(shù)轉(zhuǎn)換模塊特性
(1)帶內(nèi)置采樣和保持的10位模數(shù)轉(zhuǎn)換模塊ADC,最小轉(zhuǎn)換時(shí)間為500ns,最大采樣率為21.5kHz。
(2)
2個(gè)模擬輸入通道(AIN0、AIN1)。
(3)采樣和保持獲取時(shí)間窗口有單獨(dú)的預(yù)定標(biāo)控制。圖5-14程序流程圖
2.模數(shù)轉(zhuǎn)換工作過程
(1)模數(shù)轉(zhuǎn)換模塊接到啟動(dòng)轉(zhuǎn)換信號(hào)后,開始轉(zhuǎn)換第一個(gè)通道的數(shù)據(jù)。
(2)經(jīng)過一個(gè)采樣時(shí)間的延遲后,將采樣結(jié)果放入轉(zhuǎn)換結(jié)果寄存器保存。
(3)轉(zhuǎn)換結(jié)束,設(shè)置標(biāo)志。
(4)等待下一個(gè)啟動(dòng)信號(hào)。
3.模數(shù)轉(zhuǎn)換的程序控制
模數(shù)轉(zhuǎn)換相對(duì)于計(jì)算機(jī)來說是一個(gè)較為緩慢的過程,一般采用中斷方式啟動(dòng)轉(zhuǎn)換或保存結(jié)果,這樣在CPU忙于其他工作時(shí)可以少占用處理時(shí)間。設(shè)計(jì)轉(zhuǎn)換程序應(yīng)首先考慮處理過程如何與模數(shù)轉(zhuǎn)換的時(shí)間相匹配,根據(jù)實(shí)際需要選擇適當(dāng)?shù)挠|發(fā)轉(zhuǎn)換的手段,并且也要能及時(shí)地保存結(jié)果。由于TMS320VC5509ADSP芯片內(nèi)的A/D轉(zhuǎn)換精度是10位的,轉(zhuǎn)換結(jié)果的低10位為所需數(shù)值,所以在保留時(shí)應(yīng)注意將結(jié)果的高6位去除,取出低10位有效數(shù)字。關(guān)于TMS320VC5509ADSP芯片內(nèi)的A/D轉(zhuǎn)換器的詳細(xì)結(jié)構(gòu)和控制方法,請(qǐng)參見TI用戶手冊(cè)《TMS320VC5507/5509DSPAnalog-to-DigitalConverter(ADC)ReferenceGuide》(spru568.pdf)。
4.程序說明
程序流程圖如圖5-14所示。
部分主程序:
main()
{
inti;
unsignedintuWork;//定義中間工作變量
EnableAPLL();
SDRAM_init();
InitADC();
PLL_Init(132);
while(1) //死循環(huán)
{
for(i=0;i<256;i++) //采樣256個(gè)值
{
ADCCTL=0x8000; //啟動(dòng)A/D轉(zhuǎn)換,通道0
do
{
uWork=ADCDATA;
}while(uWork&0x8000); //等待直到ADC數(shù)據(jù)可用后執(zhí)行下面語句,注意
//此處的位操作
nADC0[i]=uWork&0x0fff; //屏蔽無效位,保留采樣數(shù)據(jù)
}
for(i=0;i<256;i++)
{
ADCCTL=0x9000; //啟動(dòng)A/D 轉(zhuǎn)換,通道1
do
{
uWork=ADCDATA;
}while(uWork&0x8000);
nADC1[i]=uWork&0x0fff;
}
asm(“nop”); //嵌入?yún)R編語句,方便 在此處設(shè)定斷點(diǎn)
}
}
voidInitADC()
{
ADCCLKCTL=0x23;//設(shè)定4MHzADCLK
ADCCLKDIV=0x4f00;
}
四、任務(wù)步驟
(1)準(zhǔn)備。
①連接設(shè)備。
②準(zhǔn)備信號(hào)源進(jìn)行A/D輸入。
③設(shè)置CCS2.21在硬件仿真(Emulator)方式下運(yùn)行。
④啟動(dòng)CCS2.21,選擇菜單Debug→ResetCPU。
(2)打開工程文件。打開工程文件Lab0305-AD。在項(xiàng)目瀏覽器中,雙擊main.c,打開main.c文件,瀏覽該文件的內(nèi)容,理解各語句作用。
(3)編譯、下載程序。
(4)打開觀察窗口。打開源程序main.c,在有注釋“在此加軟件斷點(diǎn)”的行上加軟件斷點(diǎn)。
選擇菜單View->Graph->Time/Frequency…,在圖5-15所示的窗口中進(jìn)行設(shè)置。
圖5-15設(shè)置圖形界面
(5)設(shè)置軟件斷點(diǎn)。
在main.c中有斷點(diǎn)注釋的語句上加軟件斷點(diǎn)。
(6)運(yùn)行程序,觀察結(jié)果。
按F5鍵運(yùn)行到斷點(diǎn),觀察A/D轉(zhuǎn)換產(chǎn)生的波形。按F12鍵連續(xù)運(yùn)行,并調(diào)整信號(hào)源可調(diào)部分,觀察實(shí)時(shí)A/D采樣波形隨之發(fā)生的變化。
(7)保留工作區(qū)。
選擇菜單File→workspace→saveworkspacsAs…,輸入文件名SY.wks。
(8)退出CCS。
五、結(jié)果
我們可以看到ADC兩個(gè)通道的采樣波形如圖5-16所示。
圖5-16程序運(yùn)行圖形界面六、問題與思考
(1)理解程序中的ADC初始化函數(shù),看其是如何將ADCCLK設(shè)置為4MHz的。
(2)試將程序改為由中斷控制進(jìn)行A/D采集。
5.4.1EMIF簡介
EMIF是ExternalMemoryInterface的縮寫,它控制DSP和外部存儲(chǔ)器之間所有的數(shù)據(jù)傳輸。下面就EMIF做一簡單介紹,詳細(xì)情況請(qǐng)參照CCS的在線幫助或者參考相關(guān)應(yīng)用手冊(cè)。5.4外部存儲(chǔ)器接口(EMIF)圖5-17為EMIF的輸入/輸出框圖,說明了EMIF和DSP其他模塊以及外部存儲(chǔ)器之間怎樣連接。和外設(shè)總線控制的連接允許CPU訪問EMIF的寄存器。
圖5-17EMIF的輸入/輸出框圖
EMIF為3種類型的存儲(chǔ)器提供了無縫接口:
●異步存儲(chǔ)器,包括ROM、FLASH以及異步SRAM;
●同步觸發(fā)SRAM(SBSRAM);
●同步觸發(fā)DRAM(SDRAM)。
EMIF支持下列類型的訪問:
●
32bit數(shù)據(jù)訪問;
●
16bit數(shù)據(jù)訪問;
●
8bit數(shù)據(jù)訪問。5.4.2EMIF信號(hào)
表5-15歸納了EMIF的信號(hào)。在類型中,I表示輸入,O表示輸出,Z表示高阻狀態(tài)。
表5-15EMIF的信號(hào)續(xù)表續(xù)表5.4.3對(duì)存儲(chǔ)器的考慮
對(duì)EMIF編程時(shí),必須了解外部存儲(chǔ)器地址如何分配給片使能(CE)空間,每個(gè)CE空間可以同哪些類型的存儲(chǔ)器連接,以及用哪些存儲(chǔ)器bit來配置CE空間。
TMS320VC55X的外部存儲(chǔ)器映射在存儲(chǔ)空間的分布,相當(dāng)于EMIF的片選使能信號(hào)。例如,CE1空間里的一片存儲(chǔ)器,必須將其片選引腳連接到EMIF的CE1引腳。當(dāng)EMIF訪問CE1時(shí),就驅(qū)動(dòng)變低。圖5-18表示外部存儲(chǔ)器與信號(hào)之間的關(guān)系。
圖5-18TMS320VC5509外部存儲(chǔ)器與信號(hào)之間的關(guān)系由圖5-18可以看出,DSP外部存儲(chǔ)器被分成4個(gè)CE空間,CE0空間在低地址位置,而CE3位于高地址。每個(gè)CE空間可以包含4M個(gè)字節(jié)。有些CE3空間中的地址可以用來尋址DSP內(nèi)部的ROM??梢酝ㄟ^設(shè)置CPU內(nèi)部狀態(tài)寄存器ST3_55中MPNMC位的值來在CE3空間和ROM之間選擇。5.4.4EMIF寄存器
C55X中有關(guān)EMIF的所有寄存器如表5-16所示。
表5-16EMIF寄存器5.4.5SDRAM的使用
在5509系統(tǒng)中,EMIF的數(shù)據(jù)總線寬度為16bit,與主機(jī)接口(HPI)分享一個(gè)并口,具體的配置由外部總線選擇寄存器(EBSR)的低二位決定;提供了四個(gè)彼此獨(dú)立的外存接口(CEX),每個(gè)CE空間容量為4MB,其中CE3空間根據(jù)需要可劃分一部分空間作為片內(nèi)ROM;通過寫CE空間控制寄存器中的MTYPE指定外存類型;SDRAM的時(shí)鐘頻率可編程控制。訪問SDRAM芯片之前,必須先將EMIF配置成外部SDRAM訪問模式。配置前,要先寫DSP時(shí)鐘發(fā)生器確定DSP的時(shí)鐘頻率,首先,清除MEMCEN位,防止CLKMEM引腳驅(qū)動(dòng)存儲(chǔ)器時(shí)鐘,保持MEMCEN=0,寫EGCR中的MEMFREQ、WPE。WPE
=
1時(shí),CE空間寫使能,反之禁止寫。5509中,當(dāng)CPU頻率為144MHz、MEMFREQ=
001b(1/2CPU頻率)時(shí),外部總線選擇寄存器(EBSR)中EMIFX2位必須置1,對(duì)于其他的MEMFREQ值,必須置0。其次,將映射為外部SDRAM的每一個(gè)CE空間的CE空間控制寄存器中的MTYPE設(shè)置成011b,表明外存為16位的SDRAM。接下來,設(shè)置SDRAM控制寄存器1(SDC1)中的SDSIZE=0(表明SDRAM的大小為64Mb),SDWID=0(表明SDRAM存儲(chǔ)器寬度是16位);設(shè)置SDRAM控制寄存器2(SDC2)中的SDACC=0,表明EMIF提供16位數(shù)據(jù)線給SDRAM。最后,置位MEMCEN,寫SDRAM初始化寄存器(INIT)。需要說明的是,如果由EMIF控制SDRAM自刷新,則還要寫SDRAM周期寄存器(SDPER)。當(dāng)所有數(shù)值都設(shè)定好以后,延時(shí)6個(gè)CPU時(shí)鐘周期,EMIF開始按順序初始化SDRAM。當(dāng)某個(gè)CE空間被配置為SDRAM空間后,必須對(duì)其進(jìn)行初始化。任何對(duì)INIT的寫操作都會(huì)要求對(duì)SDRAM進(jìn)行初始化。初始化操作前必須正確設(shè)置MTYPE。整個(gè)初始化過程包括以下步驟:
(1)發(fā)送3個(gè)NOP到所有SDRAM空間;
(2)執(zhí)行1個(gè)DCAB命令;
(3)執(zhí)行8個(gè)REFR命令;
(4)執(zhí)行1個(gè)MRS命令;
(5)清除SDRAM的INIT中的數(shù)據(jù)。下面介紹一個(gè)TMS320VC5509與SDRAM(IS42S
16400A)的接口連接以及部分相關(guān)程序。考慮到5509與IS42S16400A的工作電壓相同,都為3.3V,存取時(shí)間基本同步,而且它們的數(shù)據(jù)線寬度都是16bit,因此選擇IS42S16400A,二者可以直接接口。IS42S16400A占用CE0、CE1兩個(gè)空間。SDRAM與EMIF的連接圖如圖5-19所示。
圖5-19SDRAM與EMIF的連接圖下面是EMIF對(duì)應(yīng)寄存器的初始化程序:
VoidSdram_init()
{
ioportunsignedint3ebsr=(unsignedint3)0x6c00;
ioportunsignedint3egcr=(unsignedint3)0x800;
ioportunsignedint3ce01=(unsignedint3)0x803;
ioportunsignedint3ce11=(unsignedint3)0x806;
ioportunsignedint3sdc1=(unsignedint3)0x80f;
ioportunsignedint3sdc2=(unsignedint3)0x813;
ioportunsignedint3sdc3=(unsignedint3)0x814;
ioportunsignedint3sdper=(unsignedint3)0x810;
unsignedint3sdper=(unsignedint3)0x810;
ioportunsignedint3init=(unsignedint3)0x812;
*ebsr=0x0001;
*egcr=0x0080;
*ce01=0x3000;
*ce11=0x3000;
*sdc1=0x4122;*sdc2=0x0151;
*sdc3=0x0004;
*sdper=0x08fc;
*egcr=0x00a0;
*init=0x01;
}
一、任務(wù)目的
(1)了解ICETEK-VC5509-A板在TMS320VC5509DSP外部擴(kuò)展存儲(chǔ)空間上的擴(kuò)展。
(2)了解ICETEK-VC5509-A板上指示燈擴(kuò)展原理。
(3)學(xué)習(xí)在C語言中使用擴(kuò)展控制寄存器的方法。任務(wù)9通過EMIF接口控制指示燈二、所需設(shè)備
(1)
PC兼容機(jī)一臺(tái),操作系統(tǒng)為Windows2000(或WindowsNT、Windows98、WindowsXP,以下假定操作系統(tǒng)為Windows2000)。Windows操作系統(tǒng)的內(nèi)核如果是NT的應(yīng)該安裝相應(yīng)的補(bǔ)丁程序(如:Windows2000為ServicePack3,WindowsXP為ServicePack1)。
(2)
ICETEK-VC5509-A-USB-EDU試驗(yàn)箱一臺(tái)。如無試驗(yàn)箱則配備ICETEK-USB或ICETEK-PP仿真器和ICETEK-VC5509-A或ICETEK-VC5509-C評(píng)估板,+5V電源一只。
(3)
USB連接電纜一條(如使用PP型仿真器換用并口電纜一條)。三、相關(guān)原理
(1)
TMS320VC5509DSP的EMIF接口:存儲(chǔ)器擴(kuò)展接口(EMIF)是DSP擴(kuò)展片外資源的主要接口,它提供了一組控制信號(hào)和地址、數(shù)據(jù)線,可以擴(kuò)展各類存儲(chǔ)器和寄存器映射的外設(shè)。ICETEK-VC5509-A評(píng)估板在EMIF接口上除了擴(kuò)展了片外SDRAM外,還擴(kuò)展了指示燈、D
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 商業(yè)保險(xiǎn)理賠操作規(guī)范與常見問題
- 營養(yǎng)與健康湘菜
- 中職職業(yè)技能實(shí)訓(xùn)課程安排
- 節(jié)日小報(bào)設(shè)計(jì)制作教程
- 入院宣教及出院指導(dǎo)
- 營養(yǎng)膳食烹飪總結(jié)
- 2025版食物中毒常見癥狀及護(hù)理知識(shí)
- 課程內(nèi)容審核合同
- 文化藝術(shù)活動(dòng)合作合同協(xié)議
- 安保服務(wù)委托協(xié)議
- 2025年安全培訓(xùn)計(jì)劃表
- 2025年沈陽華晨專用車有限公司公開招聘筆試歷年參考題庫附帶答案詳解
- 2026(蘇教版)數(shù)學(xué)五上期末復(fù)習(xí)大全(知識(shí)梳理+易錯(cuò)題+壓軸題+模擬卷)
- 2024廣東廣州市海珠區(qū)琶洲街道招聘雇員(協(xié)管員)5人 備考題庫帶答案解析
- 第五單元國樂飄香(一)《二泉映月》課件人音版(簡譜)初中音樂八年級(jí)上冊(cè)
- 【MOOC】理解馬克思-南京大學(xué) 中國大學(xué)慕課MOOC答案
- JGT266-2011 泡沫混凝土標(biāo)準(zhǔn)規(guī)范
- 銀行物業(yè)服務(wù)投標(biāo)方案(技術(shù)方案)
- 數(shù)控刀具的選擇
- 病理生理學(xué)(南華大學(xué))智慧樹知到答案章節(jié)測試2023年
- 國家公園 (中國旅游地理課件)
評(píng)論
0/150
提交評(píng)論