日立SH3單片機最小系統的建立
2.3 存儲器模塊
SH3單片機內部沒(méi)有ROM空間,系統必須在外部總線(xiàn)上連接ROM存儲器。SH3單片機總線(xiàn)采用地址總線(xiàn)與數據總線(xiàn)分離的設計模式,地址總線(xiàn)最大支持64 MB存儲空間。滿(mǎn)足這種總線(xiàn)模式的ROM都可以使用(SH3單片機內部沒(méi)有NAND FLASH控制器,所以不要選擇NAND FLASH存儲器)。由于一條指令占16 b空間,所以選一片8 MB 16位位寬的FLASH存儲器LH28F640BFN。
SH3系列處理器內部嵌有8 KB CACHE,在不使用緩存功能時(shí)有4 KB CACHE空間可以當作一般的RAM使用。由于本次只是討論最小系統的建立,程序比較簡(jiǎn)單,4 KB空間足以。在后續介紹比較大的運用時(shí)會(huì )介紹系統連接的SDRAM存儲器,在以后其他文章中討論。
2.4 MCU外圍輔助電路
(1)復位電路:HD6417708S單片機需要最短為10 ms的低電平復位信號,如果你的系統中其他芯片也需要Reset信號時(shí)請綜合考慮一下復位信號的長(cháng)度與電平。本系統的復位電路采用了一款集復位與看門(mén)狗電路于一身的“1075”復位芯片。
(2)時(shí)鐘電路:HD6417708S單片機的時(shí)鐘模塊有2個(gè)管腳:EXTAL(79)和XTAL(80)。如果想用無(wú)源晶振的話(huà)將晶振連到EXTAL和XTAL之間,兩管腳對地各接一個(gè)18 pF的電容就可以了。如果想用有緣晶振的話(huà)將晶振的時(shí)鐘輸出管腳接EXTAL管腳就行了。
(3)PLL模塊外圍輔助電路:HD6417708S單片機鎖相環(huán)電路要求在管腳74,管腳77分別對地接一個(gè)470 pF的電容。
(4)幾個(gè)特殊管腳的處理管腳87為Bus requst輸入功能管腳,如果系統正常運行時(shí)給這個(gè)管腳加一個(gè)低電平信號,單片機會(huì )釋放總線(xiàn)。如果您的系統有多個(gè)處理器需要共用總線(xiàn)時(shí)通過(guò)對這個(gè)管腳的合理控制可以實(shí)現總線(xiàn)分配,如果系統不用單片機釋放總線(xiàn)時(shí)就可以給這個(gè)管腳加一個(gè)10 kΩ的上拉電阻,這個(gè)管腳一定不要懸空。
管腳89~管腳93為外部中斷輸入管腳。管腳89為管腳NMI(非屏蔽中斷),為邊沿觸發(fā)中斷。
管腳90~管腳93為可屏蔽中斷管腳,為電平觸發(fā)中斷。這些管腳都不能懸空,如果沒(méi)有用到要將這些管腳各加上10 kΩ的上拉電阻就可以了。
管腳94是一個(gè)PCMCIA總線(xiàn)控制的管腳如果沒(méi)用到這種存儲器的話(huà)就可以加上10 kΩ的上拉阻就行了,不會(huì )影響其他部分。
MD3(管腳103)、MD4(管腳104)、MD5(管腳130)是3個(gè)模式控制引腳。MD3,MD4控制著(zhù)Area0的總線(xiàn)寬度,對應關(guān)系請參考參考文獻。
MD5復位時(shí)的狀態(tài)告訴單片機總線(xiàn)上的存儲器中數據(包括code和data)的存儲方式,復位時(shí)MD5為零時(shí)說(shuō)明存儲器中的數據是按大端模式存放的,復位時(shí)存儲器中的數據應選擇小端模式。
(管腳132)是一個(gè)等待請求管腳,低電平有效。當處理器的訪(fǎng)問(wèn)速度超過(guò)外部設備的反應速度時(shí)可以將這個(gè)管腳置低讓處理器進(jìn)行等待。如果系統的外部設備足夠快不用這個(gè)功能的話(huà)要加一個(gè)弱上拉電阻,絕對不能懸空或接地。自此,帶監視串口的HD6417708S單片機最小系統硬件平臺就搭建好了,編寫(xiě)相關(guān)軟件就可以讓系統運行起來(lái)。
3 軟件平臺的搭建
SH3系列單片機的開(kāi)發(fā)環(huán)境是由日本瑞薩公司專(zhuān)門(mén)提供的“High-performance Embedded Workshop”軟件,有很多版本,在瑞薩公司的網(wǎng)站上可以下載,我下的是“shv9200_ev.exe”版本。
首先安裝HD6417708S單片機的開(kāi)發(fā)工具“High-performance Embedded Workshop”軟件,安裝完成以后會(huì )在程序目錄里出現一個(gè)“Renes as”安裝程序,里面的“High-performance Embedded Workshop”圖標就是開(kāi)發(fā)軟件的圖標。
建立模板工程。雙擊開(kāi)發(fā)工具圖標出現一個(gè)工程對話(huà)框,選擇第一項“Create a new project workspace”,然后點(diǎn)擊OK按鈕進(jìn)入“New Project Workspace對話(huà)框。在“Workspace Name”對話(huà)框里為項目命一個(gè)名字,例如“123”,系統會(huì )把“ProjectName”與“Directory”
項的名字都默認為“123”,如果想指定工程的保存路徑的話(huà)就點(diǎn)擊“Browse”按鈕選擇想保存程序的地方,其他選項用默認選項就可以了,點(diǎn)擊“確定”按鈕進(jìn)入下一個(gè)對話(huà)框。在“CPUSerise”選擇框里選擇“SH-3”選項,在“CPUType”選擇框里選擇“SH7708”選項,然后點(diǎn)擊“Next”按鈕進(jìn)入下一個(gè)對話(huà)框界面。將“Endian”選項設為“Little”模式,這個(gè)選項很重要,前面“MCU外圍輔助電路”部分介紹的MD5管腳就是用來(lái)設置程序存儲大小端模式的,如果MD5管腳設置的大小端與軟件設置的不一樣整個(gè)程序就亂了。因為硬件將MD5管腳設置成了小端模式的狀態(tài)所以在此將“Endian”選項設為“Little”模式。其他選項用默認值就行了,然后點(diǎn)擊“Next”按鈕進(jìn)到下一個(gè)對話(huà)框界面。在對話(huà)框的最下面的“Generate Hardware Setup Function”的下拉菜單中選擇“C/C++ source file”選項,然后連續點(diǎn)擊“Next”按鈕直到出現“Targets”選項界面.將“SH-3Simulator(Little endian)”選項選上,然后連續點(diǎn)擊“Next”按鈕直到圖標變灰,再點(diǎn)擊“Finish”按鈕就進(jìn)入到工程的主界面了,模板工程就建立完成了。
模板工程相關(guān)文件介紹。由于建立的是一個(gè)模板工程,工程建立好以后就帶了一些文件包括啟動(dòng)代碼、異常處理程序以及為軟件開(kāi)發(fā)人員提供的程序接口等等?,F將幾個(gè)關(guān)鍵文件功能按照程序執行順序介紹如下:
首先在程序目錄里點(diǎn)擊“handle.src”文件,找到段標志“.sectionRSTHandler.code”,該段的程序代碼就是單片機上電復位后首先執行的代碼。然后點(diǎn)擊“resetprg.c”文件,里面有一個(gè)“void PowerON_Reset(void)”函數,單片機執行完“handle.src”文件中的“.section RSTHandler,code”段的程序代碼后跳到了該函數運行,如果想知道為什么跳到了這個(gè)函數請計算出“.section RSTHandl er,code”程序段中的“JMP”指令要跳轉的地址以及“void PowerON_Reset(void)”所分配地址會(huì )發(fā)現兩個(gè)地址對應同一個(gè)存儲單元。在“void PowerON_Reset(void)”函數中調用的“set_vbr((void*)((_UINT)INTHandlerPRG-INT_OFFSET))”函數,“_INITSCT()”和“_INIT_ IOLIB()”都是系統庫函數,在編譯器手冊中它們的功能都有介紹,在此不詳細介紹。
點(diǎn)擊“hwsetup.c”文件就可以看到“void PowerON_Reset(void)”函數中調用的HardwareSetup()函數的具體內容,本函數是用來(lái)初始化單片機總線(xiàn)及各個(gè)外圍功能模塊的。set_cr(SR_Init)函數是用來(lái)初始化狀態(tài)寄存器的一個(gè)系統函數,與中斷的設置關(guān)系較大,對于本系統意義不大,本著(zhù)簡(jiǎn)化系統的原則將這個(gè)函數注掉。然后就到“main()”函數了,點(diǎn)擊“123.c”文件發(fā)現“main()”函數是一個(gè)空函數,這是系統為程序員提供的接口,在這個(gè)函數里添加您的程序代碼就行了。至此模板工程里的相關(guān)文件就介紹完了。系統上電,單片機運行完模板自帶的初始化程序以后就跳到了“main()”函數,程序員只要在此函數中添加需要的功能代碼就可以實(shí)現所需要的功能了。
評論