




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Part5基于S3C2410的硬件系統(tǒng)設(shè)計(一)1324S3C2410X簡介存儲器接口設(shè)計I/O接口設(shè)計UART設(shè)計IIC接口設(shè)計中斷接口時鐘和功耗管理
PWM定時器56看門狗定時器日歷時鐘DMALCD控制器A/D轉(zhuǎn)換與觸摸屏USB接口SPI78109111213141515.1S3C2410X概述主要內(nèi)容主要特性系統(tǒng)結(jié)構(gòu)引腳信號25.1S3C2410X概述 S3C2410X是韓國三星公司推出的16/32位RISC微控制器,其CPU采用的是ARM920T內(nèi)核,加上豐富的片內(nèi)外設(shè),為手持設(shè)備和其它應(yīng)用,提供了低價格、低功耗、高性能微控制器的解決方案。
3芯片體系結(jié)構(gòu)主要特性8通道的10位A/D轉(zhuǎn)換器,最高速率可達(dá)500kB/s;提供有觸摸屏接口。具有117個通用I/O口和24通道的外部中斷源。兼容MMC的SD卡接口。具有電源管理功能,可以使系統(tǒng)以普通方式、慢速方式、空閑方式和掉電方式工作。看門狗定時器。具有日歷功能的RTC。有LCD控制器,支持4K色的STN和256K色的TFT,配置有DMA通道。具有PLL功能的時鐘發(fā)生器,時鐘頻率高達(dá)203MHz。雙電源系統(tǒng):1.8/2.0V內(nèi)核供電,3.3V存儲器和I/O供電。5二、系統(tǒng)結(jié)構(gòu) 主要由兩大部分構(gòu)成: ARM920T內(nèi)核 片內(nèi)外設(shè)。6
1、ARM920T內(nèi)核 由三部分:ARM9內(nèi)核ARM9TDMI、32KB的Cache、MMU。7三、引腳信號S3C微控制器是272-FBGA封裝。其信號可以分成:addr0---addr26、Data0---data31、GPA0---GPA22GPB10、GPC15、GPD15、GPE15、GPF7、GPG15、GPH10、EINT23、nGCS0—nGCS7、AIN7、IIC、SPI、OM0---OM3等,大部分都是復(fù)用的BACK95.2S3C2410X的存儲器主要內(nèi)容存儲器配置存儲器概述控制寄存器Flash及控制器Flash控制器概述控制器主要特性控制器的寄存器控制器的工作原理105.2.1S3C2410X的存儲器配置
一、概述
S3C2410X的存儲器管理器提供訪問外部存儲器的所有控制信號:27位地址信號、32位數(shù)據(jù)信號、8個片選信號、以及讀/寫控制信號等。
S3C2410X的存儲空間分成8組,最大容量是1GB,bank0---bank5為固定128MB,bank6和bank7的容量可編程改變,可以是2、4、8、16、32、64、128MB,并且bank7的開始地址與bank6的結(jié)束地址相連接,但是二者的容量必須相等。 bank0可以作為引導(dǎo)ROM,其數(shù)據(jù)線寬只能是16位和32位,復(fù)位時由OM0、OM1引腳確定;其它存儲器的數(shù)據(jù)線寬可以是8位、16位和32位。 S3C2410X的存儲器格式,可以為大端格式,也可以為小端格式。1113
二、存儲器的控制寄存器 內(nèi)存控制器為訪問外部存儲空間提供存儲器控制信號,S3C2410X存儲器控制器共有13個寄存器。寄存器地址功能操作復(fù)位值BWSCON0x48000000總線寬度和等待控制讀/寫0x0BANKCON00x48000004BANK0控制讀/寫0x0700BANKCON10x48000008BANK1控制讀/寫0x0700BANKCON20x4800000CBANK2控制讀/寫0x0700BANKCON30x48000010BANK3控制讀/寫0x0700BANKCON40x48000014BANK4控制讀/寫0x0700BANKCON50x48000018BANK5控制讀/寫0x0700BANKCON60x4800001CBANK6控制讀/寫0x18008BANKCON70x48000020BANK7控制讀/寫0x18008REFRESH0x48000024SDRAM刷新控制讀/寫0xAC0000BANKSIZE0x48000028可變的組大小設(shè)置讀/寫0x0MRSRB60x4800002CBANK6模式設(shè)置讀/寫xxxMRSRB70x48000030BANK7模式設(shè)置讀/寫xxx14
1、總線寬度和等待控制寄存器back31302928272625242322212019181716ST7WS7DW7ST6WS6DW6ST5WS5DW5ST4WS4DW41514131211109876543210ST3WS3DW3ST2WS2DW2ST1WS1DW1XDW0XSTn:控制存儲器組n的UB/LB引腳輸出信號。 1:使UB/LB與nBE[3:0]相連; 0:使UB/LB與nWBE[3:0]相連WSn:使用/禁用存儲器組n的WAIT狀態(tài) 1:使能WAIT;0:禁止WAITDWn:控制存儲器組n的數(shù)據(jù)線寬 00:8位;01:16位;10:32位;11:保留15Tcoh:nOE無效后片選信號的保持時間
00:0個;01:1個;10:2個;11:4個時鐘Tcah:nGCSn無效后地址信號的保持時間
00:0個;01:1個;10:2個;11:4個時鐘Tacp:頁模式的訪問周期
00:2個;01:3個;10:4個;11:6個時鐘PMC:頁模式的配置,每次讀寫的數(shù)據(jù)數(shù)
00:1個;01:4個;10:8個;11:16個 注:00為通常模式。
注:紫色為某實(shí)驗(yàn)箱上的配置,其值為0x0700back17MT:設(shè)置存儲器類型 00:ROM或者SRAM,[3:0]為Tacp和PMC;
11:SDRAM,[3:0]為Trcd和SCAN;
01、10:保留Trcd:由行地址信號切換到列地址信號的延時時鐘數(shù) 00:2個時鐘;01:3個時鐘;10:4個時鐘
SCAN:列地址位數(shù) 00:8位; 01:9位; 10:10位
14131211109876543210TacsTcosTaccTcohTcahTacp/TrcdPMC/SCAN
3、BANK6/7---存儲器組6/7控制寄存器31……171615保留MTback18REFEN:刷新控制。 1:使能刷新;0:禁止刷新TREFMD:刷新方式。 1:自刷新 0:自動刷新Trp:設(shè)置SDRAM行刷新時間(時鐘數(shù))
00:2個時鐘;01:3個;10:3個;11:4個時鐘Tsrc:設(shè)置SDRAM行操作時間(時鐘數(shù)) 00:4個時鐘;01:5個;10:6個;11:7個時鐘 注:SDRAM的行周期=Trp+Tsrc。Refresh_count:刷新計數(shù)值1514131211109876543210保留Refresh_count4、REFRESH---刷新控制寄存器31……242322212019181716保留REFENTREFMDTrpTsrc保留19 高24位未用。BURST_EN:ARM突發(fā)操作控制 0:禁止突發(fā)操作;1:可突發(fā)操作SCKE_EN:SCKE使能控制SDRAM省電模式 0:關(guān)閉省電模式;1:使能省電模式SCLK_EN:SCLK省電控制,使其只在SDRAM訪問周期內(nèi)使能SCLK 0:SCLK一直有效;1:SCLK只在訪問期間有效BK76MAP:控制BANK6/7的大小及映射76543210BURST_ENXSCKE_ENSCLK_ENXBK76MAP5、BANKSIZE---BANK6/7組大小控制寄存器21BK76MAP:控制BANK6/7的大小及映射 100:2MB; 101:4MB; 110:8MB 111:16MB; 000:32MB; 001:64MB 010:128MBback22WBL:突發(fā)寫的長度。0:固定長度;1:保留TM:測試模式。 00:模式寄存器集;其它保留CL:列地址反應(yīng)時間
000:1個時鐘;010:2個時鐘; 011:3個時鐘;其它保留BT:猝發(fā)類型
0:連續(xù); 1:保留BL:猝發(fā)時間
000:1個時鐘;其它保留
6、MRSRB6/7---BANK6/7模式設(shè)置寄存器1514131211109876543210WBLTMCLBTBL23;Tacc[10:8]存取周期110=10clocks111=14clocks;Bank1,316位,其余32位
For44b0x中Bootloader之存儲器初始化255.2.2FlashFLASH存儲器又稱閃存,是一種可在線多次擦除的非易失性存儲器,即掉電后數(shù)據(jù)不會丟失。FLASH存儲器還具有體積小、功耗低、抗振性強(qiáng)等優(yōu)點(diǎn),是嵌入式系統(tǒng)的首選存儲設(shè)備。FLASH存儲器主要分為兩種,一種為NOR型FLASH,另一種為NAND型FLASH。一、概述26這里以SST39VF160為例,介紹NOR型FLASH存儲器的結(jié)構(gòu)及操作。SST39VF160是SST公司的CMOS多功能FLASH(MPF)器件,存儲容量為2M字節(jié),16位數(shù)據(jù)寬度(即一個字為2字節(jié)),工作電壓為2.7~3.6V。SST39VF160由SST特有的高性能SuperFlash技術(shù)制造而成,SuperFlash技術(shù)提供了固定的擦除和編程時間,與擦除/編程周期數(shù)無關(guān)。芯片管腳配置如下圖所示。三、NOR型Flash存儲器29符號管腳名稱功能A19~A0地址輸入存儲器地址。扇區(qū)擦除時,A19~A11用來選擇扇區(qū)。塊擦除時,A19~A15用來選擇塊。DQ15~DQ0數(shù)據(jù)輸入/輸出讀周期內(nèi)輸出數(shù)據(jù),寫周期內(nèi)輸入數(shù)據(jù)。寫周期內(nèi)數(shù)據(jù)內(nèi)部鎖存。OE#或CE#為高時輸出為三態(tài)。CE#芯片使能CE#為低時啟動器件開始工作。OE#輸出使能數(shù)據(jù)輸出緩沖器的門控信號。WE#寫使能控制寫操作。VDD電源供給電源電壓:2.7~3.6VVss地NC不連接懸空管腳SST39VF160管腳描述NOR型FLASH存儲器采用的是SRAM接口,其地址線和數(shù)據(jù)線是分開的。30模式CE#OE#WE#DQ地址讀VILVILVIHDOUTAIN編程VILVIHVILDINAIN擦除VILVIHVILX扇區(qū)或塊地址,芯片擦除時為0xFFH等待VIHXX高阻X寫禁止XVILX高阻/DOUTXXXVIH高阻/DOUTX器件標(biāo)識符軟件模式VILVILVIHSST39VF160工作模式選擇31NOR型FLASH存儲器容量越來越大,為了方便數(shù)據(jù)管理,將FLASH劃分為塊(Block),每個塊又分成扇區(qū)(Sector)。SST39VF160的塊大小為32K字,扇區(qū)大小為2K字。讀操作,可以對任何地址的任何字節(jié)進(jìn)行,不受限制;寫操作,以字形式進(jìn)行編程。編程前包含字的扇區(qū)必須完全擦除;擦除操作,以扇區(qū)(2K)、塊(32K)或全片為單位進(jìn)行擦除。擦除后數(shù)據(jù)變?yōu)?xFF。32SST39VF160的存儲器操作由命令來啟動。命令通過標(biāo)準(zhǔn)微處理器寫時序?qū)懭肫骷?。命令時序第1個總線寫周期第2個總線寫周期第3個總線寫周期第4個總線寫周期第5個總線寫周期第6個總線寫周期地址數(shù)據(jù)地址數(shù)據(jù)地址數(shù)據(jù)地址數(shù)據(jù)地址數(shù)據(jù)地址數(shù)據(jù)字編程5555HAAH2AAAH55H5555HA0HWA3數(shù)據(jù)扇區(qū)擦除5555HAAH2AAAH55H5555H80H5555HAAH2AAAH55HSax30H塊擦除5555HAAH2AAAH55H5555H80H5555HAAH2AAAH55HBax50H芯片擦除5555HAAH2AAAH55H5555H80H5555HAAH2AAAH55H5555H10H軟件ID入口5555HAAH2AAAH55H5555H90HCFI查詢?nèi)肟?555HAAH2AAAH55H5555H98H軟件ID退出/CFI退出XXHF0H軟件ID退出/CFI退出5555HAAH2AAAH55H5555HF0H33內(nèi)部操作狀態(tài)檢測: SST39VFl60提供兩種軟件方式來檢測內(nèi)部操作是否完成。軟件檢測方式涉及兩個狀態(tài)位:利用數(shù)據(jù)輪詢特性DataPollingbit(DQ7)和跳轉(zhuǎn)位特性Togglebit(DQ6)。 在WE的上升沿,寫入結(jié)束檢測功能被使能,同時內(nèi)部寫入或擦除操作也被初始化。這里只介紹Togglebit方式。 在內(nèi)部寫入或擦除的過程中,任何對DQ6連續(xù)的讀操作都會產(chǎn)生一個不斷翻轉(zhuǎn)的1和O。當(dāng)內(nèi)部寫入或擦除完成時,DQ6位將停止翻轉(zhuǎn)。voidWaitfor_endofprg(void)
{
volatileunsignedintold_Status,now_Status;
old_Status=*((volatileunsignedshort*)0x00);//從任意地址讀出數(shù)據(jù)
while(1)
{
new_Status=*((volatileunsignedshort*)0x00)://從同一地址讀出數(shù)據(jù)
if((old_Status&Ox40)==(new_Status&Ox40))//比較DQ6位
break;
else
old_Status=new_Status:
}
} 34SST39VF160擦除IntSST39VF160_Sectorerase(unsignedlongSAaddr){ writeflash(0x5555,0xAA) writeflash(0x2AAA,0x55) writeflash(0x5555,0x80) writeflash(0x5555,0xAA) writeflash(0x2AAA,0x55) writeflash(SAaddr,0x30) waitfor_endofprg()}#definewriteflash(addr,dat)*((volatileunsignedshort*)(addr<<1))=(unsignedshort)dat Addr為寫入數(shù)據(jù)的目標(biāo)地址。Dat為16位半字而不是字節(jié),因而addr也是半字地址,但對存儲器而言地址是以字節(jié)為單位的,因此,addr必須加以調(diào)整,左移1位。如需擦除最后一個扇區(qū),Saaddr=0xFF800即可。35SST39VF160寫入IntSST39VF160_wordProg(unsignedlongaddr,unsignedshortdat){ writeflash(0x5555,0xAA) writeflash(0x2AAA,0x55) writeflash(0x5555,0xA0) writeflash(addr,dat) waitfor_endofprg()}寫入操作是一個字一個字進(jìn)行的,在需要進(jìn)行多字(16位)寫入時,只要循環(huán)調(diào)用SST39VF160_wordProg即可。類似:LINUX下公開源代碼的J-FLASH36四、NandFlash及其控制器
Norflash存儲器:讀速度高,而擦、寫速度低,容量小,價格高。 Nandflash存儲器:讀速度不如Norflash,而擦、寫速度高,容量大,價格低。有取代磁盤的趨勢。 因此,現(xiàn)在不少用戶從Nandflash啟動和引導(dǎo)系統(tǒng),而在SDRAM上執(zhí)行主程序代碼。(一)NandFlash控制器概述
S3C2410X微控制器從Nandflash的引導(dǎo)功能:其內(nèi)部有一個叫做“起步石(Steppingstone)”的SRAM緩沖器,系統(tǒng)啟動時,Nandflash存儲器的前面4KByte字節(jié)將被自動載入到起步石中,然后系統(tǒng)自動執(zhí)行這些載入的引導(dǎo)代碼。引導(dǎo)代碼執(zhí)行完畢后,自動跳轉(zhuǎn)到SDRAM執(zhí)行。
Nandflash操作的校驗(yàn)功能:使用S3C2410X內(nèi)部硬件ECC功能可以對Nandflash的數(shù)據(jù)進(jìn)行有效性的檢測。
37(二)NandFlash控制器主要特性NandFlash模式:支持讀/擦/編程N(yùn)andflash存儲器。自動導(dǎo)入模式:復(fù)位后,引導(dǎo)代碼被送入Steppingstone,傳送后,引導(dǎo)代碼在Steppingstone中執(zhí)行。具有硬件ECC(糾錯碼)功能:硬件產(chǎn)生糾錯代碼。內(nèi)部4KB的SRAM緩沖器Steppingstone,在Nandflash引導(dǎo)后可以作為其他用途使用。38NandFlash控制器功能框圖主要由6部分組成引腳信號:CLE:命令鎖存R/nB:就緒/忙39(三)NandFlash控制器的寄存器寄存器地址功能操作復(fù)位值NFCON0x4E000000NandFlash配置讀/寫-NFCMD0x4E000004NandFlash命令讀/寫-NFADDR0x4E000008NandFlash地址讀/寫-NFDATA0x4E00000CNandFlash數(shù)據(jù)讀/寫-NFSTAT0x4E000010NandFlash狀態(tài)讀/寫-NFECC0x4E000014NandFlash糾錯讀/寫-40NFEN:NF控制器使能控制 0:禁止使用; 1:允許使用IECC:初始化ECC編碼/解碼器控制位 0:不初始化ECC; 1:初始化ECCNFCE:NF片選信號nFCE控制位持續(xù)時間設(shè)置 0:nFCE為低有效; 0:nFCE為高無效TACLE:CLE/ALE持續(xù)時間設(shè)置值(0---7) 持續(xù)時間=HCLK*(TACLS+1)
CLE/ALE:命令/地址鎖存允許TWRPH0:寫信號持續(xù)時間設(shè)置值(0~7) 持續(xù)時間=HCLK*(TWRPH0+1)
TWRPH1:寫信號無效后CLE/ALE保持時間設(shè)置值(0~7) 持續(xù)時間=HCLK*(TWRPH1+1)1514131211109876543210NFENXIECCNFCETACLEXTWRPH0XPWRPH10-000-0-01、NFCON---Flash配置寄存器411514131211109876543210保留命令字2、NFCMD---Flash命令寄存器 高24位未用,低8位為讀入或者寫出的數(shù)據(jù)1514131211109876543210保留地址值3、NFADDR---Flash地址寄存器1514131211109876543210保留輸入/輸出數(shù)據(jù)4、NFDATA---Flash數(shù)據(jù)寄存器 高24位未用,低8位為Flash存儲器地址值42RnB:NandFlash存儲器狀態(tài)位 0:存儲器忙; 1:存儲器準(zhǔn)備好1514131211109876543210保留RnB5、NFSTAT---Flash狀態(tài)寄存器1514131211109876543210錯誤校正碼#1錯誤校正碼#06、NFECC---Flash錯誤校正碼寄存器31302928272625242322212019181716保留錯誤校正碼#243(四)NandFlash控制器的工作原理
1、自動導(dǎo)入啟動代碼步驟
完成復(fù)位。 如果自動導(dǎo)入模式使能,Nandflash存儲器的前面4K字節(jié)被自動拷貝到Steppingstone內(nèi)部緩沖器中。 Steppingstone被映射到nGCS0對應(yīng)的BANK0存儲空間。 CPU在Steppingstone的4-KB內(nèi)部緩沖器中開始執(zhí)行引導(dǎo)代碼。
注意:在自動導(dǎo)入模式下,不進(jìn)行ECC檢測。因此,Nandflash的前4KB應(yīng)確保不能有位錯誤(一般Nandflash廠家都確保)。
44
2、NandFLASH模式配置
通過NFCONF寄存器配置Nandflash; 寫Nandflash命令到NFCMD寄存器; 寫Nandflash地址到NFADDR寄存器; 在讀寫數(shù)據(jù)時,通過NFSTAT寄存器來獲得Nandflash的狀態(tài)信息。應(yīng)該在讀操作前或?qū)懭胫髾z查R/nB信號(準(zhǔn)備好/忙信號)。 在讀寫操作后要查詢校驗(yàn)錯誤代碼,對錯誤進(jìn)行糾正。45
3、系統(tǒng)引導(dǎo)和NandFLASH配置
OM[1:0]=00b:使能Nandflash控制器自動導(dǎo)入模式; OM[3:0]為芯片引腳,設(shè)置引導(dǎo)模式、存儲器bank0的數(shù)據(jù)寬度、時鐘模式等。 OM[1:0]=01b、10b: bank0數(shù)據(jù)寬度為16位、32位 OM[1:0]=11b:測試模式
Nandflash的存儲頁面大小應(yīng)該為512字節(jié)。
NCON(引腳):Nandflash尋址步驟數(shù)選擇 0:3步尋址; 1:4步尋址 注:如果NANDFlash的容量是256Mbit以下,那么,blockadress最高位只到bit24,因此尋址只需要3步。46
4、NandFlash操作的校驗(yàn)問題
S3C2410A在寫/讀操作時,每512字節(jié)數(shù)據(jù)自動產(chǎn)生3字節(jié)的ECC奇偶代碼(24位)。
24位ECC奇偶代碼=18位行奇偶+6位列奇偶
ECC產(chǎn)生模塊執(zhí)行以下步驟:
當(dāng)MCU寫數(shù)據(jù)到Nand時,ECC產(chǎn)生模塊生成ECC代碼。 當(dāng)MCU從Nand讀數(shù)據(jù)時,ECC產(chǎn)生模塊生成ECC代碼同時用戶程序?qū)⑺c先前寫入時產(chǎn)生的ECC代碼比較。
47Flash這里以K9F2808U0C為例,介紹NAND型FLASH存儲器的結(jié)構(gòu)及操作。K9F2808U0C是SAMSUNG公司生產(chǎn)的NAND型FLASH存儲器,存儲容量為16M×8Bit,工作電壓為2.7~3.6V。528字節(jié)的頁編程操作時間為200μs,16K字節(jié)的塊擦除操作時間為2ms。頁面的數(shù)據(jù)以每個字50ns的速度被讀出。片內(nèi)寫控制自動實(shí)現(xiàn)所有編程和擦除功能,包括脈沖的周期、內(nèi)部校驗(yàn)和數(shù)據(jù)冗余?!狽AND型Flash存儲器48Flash——NAND型Flash存儲器K9F2808U0C的存儲空間分為32K頁,每一頁有(512+16)字節(jié)。該寄存器被分為兩個區(qū):數(shù)據(jù)區(qū)和空閑區(qū)。數(shù)據(jù)區(qū)又可分為上、下兩個區(qū),每個區(qū)為256字節(jié);空閑區(qū)可以用于存放ECC校驗(yàn)和其它校驗(yàn)信息。
49并行Flash——NAND型Flash存儲器對K9F2808U0C的操作是通過將特定的指令數(shù)據(jù)寫到芯片指令寄存器中實(shí)現(xiàn),指令與時序的定義如下表所示。功能第一個周期第二個周期忙時可接受的命令讀數(shù)據(jù)寄存器(數(shù)據(jù)區(qū))00h/01h-讀數(shù)據(jù)寄存器(空閑區(qū))50h-讀器件ID90h-復(fù)位FFh-O頁編程80h10h塊擦除60hD0h讀狀態(tài)70h-OBACK505.3輸入/輸出端口主要內(nèi)容概述寄存器應(yīng)用舉例51一、概述
S3C2410X有117個輸入/輸出端口。這些端口是: A口(GPA):23個輸出口 B口(GPB):11個輸入/輸出口 C口(GPC):16個輸入/輸出口 D口(GPD):16個輸入/輸出口 E口(GPE):16個輸入/輸出口 F口(GPF):8個輸入/輸出口 G口(GPG):16個輸入/輸出口 H口(GPH):11個輸入/輸出口 這些端口都具有多功能,通過引腳配置寄存器,可以將其設(shè)置為所需要的功能,如:I/O功能、中斷功能等等。52
二、端口寄存器及引腳配置 每一個端口都有4個寄存器,它們是:引腳配置寄存器、數(shù)據(jù)寄存器、引腳上拉寄存器等。RegisterAddressR/WDescriptionResetValueGPXCON0x560000x0R/W端口X配置寄存器XGPXDAT0x560000x4R/W端口X數(shù)據(jù)寄存器XGPXUP0x560000x8R/W端口X上拉寄存器XRESERVED0x560000xCR/W端口X保留寄存器-53 GPADAT寄存器為準(zhǔn)備輸出的數(shù)據(jù)其值為23位[22:0] 注意:(1)當(dāng)A口引腳配置為非輸出功能時,其輸出無意義; (2)從引腳輸入沒有意義。1、端口A寄存器及引腳配置
RegisterAddressR/WDescriptionResetValueGPACON0x56000000R/W端口A引腳配置寄存器0x7FFFFFGPADAT0x56000004R/W端口A數(shù)據(jù)寄存器-RESERVED0x56000008-端口A保留寄存器-RESERVED0x5600000C-端口A保留寄存器-541、端口A寄存器及引腳配置
位號位名位值:01位號位名位值:0122GPA22輸出nFCE10GPA10輸出ADDR2521GPA21輸出nRSTOUT9GPA9輸出ADDR2420GPA20輸出nFRE8GPA8輸出ADDR2319GPA19輸出nFWE7GPA7輸出ADDR2218GPA18輸出ALE6GPA6輸出ADDR2117GPA17輸出CLE5GPA5輸出ADDR2016GPA16輸出nGCS54GPA4輸出ADDR1915GPA15輸出nGCS43GPA3輸出ADDR1814GPA14輸出nGCS32GPA2輸出ADDR1713GPA13輸出nGCS21GPA1輸出ADDR1612GPA12輸出nGCS10GPA0輸出ADDR011GPA11輸出ADDR26FCE:Flash片選55GPBDAT---為準(zhǔn)備輸出或輸入的數(shù)據(jù) 其值為11位[10:0]GPBUP---端口B上拉寄存器,位[10:0]有意義。
0:對應(yīng)引腳設(shè)置為上拉 1:無上拉功能
注意:
當(dāng)B口引腳配置為非輸入/輸出功能時,其寄存器中的值沒有意義。2、端口B寄存器及引腳配置
RegisterAddressR/WDescriptionResetValueGPBCON0x56000010R/W端口B引腳配置寄存器0x0GPBDAT0x56000014R/W端口B數(shù)據(jù)寄存器-GPBUP0x56000018R/W端口B上拉寄存器0x0RESERVED0x5600001C-端口B保留寄存器-56端口B引腳配置寄存器
位號位名位值:0001101121,20GPB10輸入輸出nXDREQ0Reserved19,18GPB9輸入輸出nXDACK0Reserved17,16GPB8輸入輸出nXDREQ1Reserved15,14GPB7輸入輸出nXDACK1Reserved13,12GPB6輸入輸出nXBACKReserved11,10GPB5輸入輸出nXBREQReserved9,8GPB4輸入輸出TCLK0Reserved7,6GPB3輸入輸出TOUT3Reserved5,4GPB2輸入輸出TOUT2Reserved3,2GPB1輸入輸出TOUT1Reserved1,0GPB0輸入輸出TOUT0Reserved57GPCDAT---為準(zhǔn)備輸出或輸入的數(shù)據(jù) 其值為16位[15:0]GPCUP---端口C上拉寄存器,位[15:0]有意義。
0:對應(yīng)引腳設(shè)置為上拉 1:無上拉功能
注意:
當(dāng)C口引腳配置為非輸入/輸出功能時,其寄存器中的值沒有意義。3、端口C寄存器及引腳配置
RegisterAddressR/WDescriptionResetValueGPCCON0x56000020R/W端口C引腳配置寄存器0x0GPCDAT0x56000024R/W端口C數(shù)據(jù)寄存器-GPCUP0x56000028R/W端口C上拉寄存器0x0RESERVED0x5600002C-端口C保留寄存器-58端口C引腳配置寄存器
位號位名位值位號位名位值000110110001101131,30GPC15輸入輸出VD7保留15,14GPC7輸入輸出LCDVF2保留29,28GPC14輸入輸出VD6保留13,12GPC6輸入輸出LCDVF1保留27,26GPC13輸入輸出VD5保留11,10GPC5輸入輸出LCDVF0保留25,24GPC12輸入輸出VD4保留9,8GPC4輸入輸出VM保留23,22GPC11輸入輸出VD3保留7,6GPC3輸入輸出VFRAME保留21,20GPC10輸入輸出VD2保留5,4GPC2輸入輸出VLINE保留19,18GPC9輸入輸出VD1保留3,2GPC1輸入輸出VCLK保留17,16GPC8輸入輸出VD0保留1,0GPC0輸入輸出VEND保留59GPDDAT---為準(zhǔn)備輸出或輸入的數(shù)據(jù) 其值為16位[15:0]GPDUP---端口D上拉寄存器,位[15:0]有意義。
0:對應(yīng)引腳設(shè)置為上拉 1:無上拉功能 初始化時,[15:12]無上拉功能,而[11:0]有上拉
注意:
當(dāng)D口引腳配置為非輸入/輸出功能時,其寄存器中的值沒有意義。4、端口D寄存器及引腳配置
RegisterAddressR/WDescriptionResetValueGPDCON0x56000030R/W端口D引腳配置寄存器0x0GPDDAT0x56000034R/W端口D數(shù)據(jù)寄存器-GPDUP0x56000038R/W端口D上拉寄存器0xF000RESERVED0x5600003C-端口D保留寄存器-60端口D引腳配置寄存器位號位名位值位號位名位值000110110001101131,30GPD15輸入輸出VD23nSS015,14GPD7輸入輸出VD15保留29,28GPD14輸入輸出VD22nSS113,12GPD6輸入輸出VD14保留27,26GPD13輸入輸出VD21保留11,10GPD5輸入輸出VD13保留25,24GPD12輸入輸出VD20保留9,8GPD4輸入輸出VD12保留23,22GPD11輸入輸出VD19保留7,6GPD3輸入輸出VD11保留21,20GPD10輸入輸出VD18保留5,4GPD2輸入輸出VD10保留19,18GPD9輸入輸出VD17保留3,2GPD1輸入輸出VD9保留17,16GPD8輸入輸出VD16保留1,0GPD0輸入輸出VD8保留61GPEDAT---為準(zhǔn)備輸出或輸入的數(shù)據(jù) 其值為16位[15:0]GPEUP---端口E上拉寄存器,位[15:0]有意義。
0:對應(yīng)引腳設(shè)置為上拉 1:無上拉功能 初始化時,各個引腳都有上拉功能。
注意:
當(dāng)E口引腳配置為非輸入/輸出功能時,其寄存器中的值沒有意義。5、端口E寄存器及引腳配置
RegisterAddressR/WDescriptionResetValueGPECON0x56000040R/W端口E引腳配置寄存器0x0GPEDAT0x56000044R/W端口E數(shù)據(jù)寄存器-GPEUP0x56000048R/W端口E上拉寄存器0x0RESERVED0x5600004C-端口E保留寄存器-62端口E引腳配置寄存器位號位名位值位號位名位值000110110001101131,30GPE15輸入輸出IICSDA保留15,14GPE7輸入輸出SDDAT0保留29,28GPE14輸入輸出IICSCL保留13,12GPE6輸入輸出SDCMD保留27,26GPE13輸入輸出SPICLK0保留11,10GPE5輸入輸出SDCLK保留25,24GPE12輸入輸出SPISI0保留9,8GPE4輸入輸出IISSDO保留23,22GPE11輸入輸出SPISO0保留7,6GPE3輸入輸出IISSDI保留21,20GPE10輸入輸出SDDAT3保留5,4GPE2輸入輸出CDCLK保留19,18GPE9輸入輸出SDDAT2保留3,2GPE1輸入輸出IISSCLK保留17,16GPE8輸入輸出SDDAT1保留1,0GPE0輸入輸出IISLRCK保留63GPFDAT---為準(zhǔn)備輸出或輸入的數(shù)據(jù) 其值為8位[7:0]GPFUP---端口F上拉寄存器,位[7:0]有意義。
0:對應(yīng)引腳設(shè)置為上拉 1:無上拉功能 初始化時,各個引腳都有上拉功能。
注意:
當(dāng)F口引腳配置為非輸入/輸出功能時,其寄存器中的值沒有意義。6、端口F寄存器及引腳配置
RegisterAddressR/WDescriptionResetValueGPFCON0x56000050R/W端口F引腳配置寄存器0x0GPFDAT0x56000054R/W端口F數(shù)據(jù)寄存器-GPFUP0x56000058R/W端口F上拉寄存器0x0RESERVED0x5600005C-端口F保留寄存器-64端口F引腳配置寄存器位號位名位值0001101115,14GPF7輸入輸出EINT7保留13,12GPF6輸入輸出EINT6保留11,10GPF5輸入輸出EINT5保留9,8GPF4輸入輸出EINT4保留7,6GPF3輸入輸出EINT3保留5,4GPF2輸入輸出EINT2保留3,2GPF1輸入輸出EINT1保留1,0GPF0輸入輸出EINT0保留65GPGDAT---為準(zhǔn)備輸出或輸入的數(shù)據(jù) 其值為16位[15:0]GPGUP---端口G上拉寄存器,位[15:0]有意義。
0:對應(yīng)引腳設(shè)置為上拉 1:無上拉功能 初始化時,[15:11]引腳無上拉功能,其它引腳有。
注意:
當(dāng)G口引腳配置為非輸入/輸出功能時,其寄存器中的值沒有意義。7、端口G寄存器及引腳配置
RegisterAddressR/WDescriptionResetValueGPGCON0x56000060R/W端口G引腳配置寄存器0x0GPGDAT0x56000064R/W端口G數(shù)據(jù)寄存器-GPGUP0x56000068R/W端口G上拉寄存器0xF800RESERVED0x5600006C-端口G保留寄存器-66端口G引腳配置寄存器位號位名位值位號位名位值000110110001101131,30GPG15輸入輸出EINT23nYPON15,14GPG7輸入輸出EINT15SPICLK129,28GPG14輸入輸出EINT22YMON13,12GPG6輸入輸出EINT14SPISI127,26GPG13輸入輸出EINT21nXPON11,10GPG5輸入輸出EINT13SPISO125,24GPG12輸入輸出EINT20XMON9,8GPG4輸入輸出EINT12LCD-PEN23,22GPG11輸入輸出EINT19TCLK17,6GPG3輸入輸出EINT11nSS121,20GPG10輸入輸出EINT18保留5,4GPG2輸入輸出EINT10nSS019,18GPG9輸入輸出EINT17保留3,2GPG1輸入輸出EINT9保留17,16GPG8輸入輸出EINT16保留1,0GPG0輸入輸出EINT8保留LCD-PEN:POWER_ENABLEnSS0:SPI0_SELECT67GPHDAT---為準(zhǔn)備輸出或輸入的數(shù)據(jù) 其值為11位[10:0]GPHUP---端口H上拉寄存器,位[10:0]有意義。
0:對應(yīng)引腳設(shè)置為上拉 1:無上拉功能
注意:
當(dāng)H口引腳配置為非輸入/輸出功能時,其寄存器中的值沒有意義。8、端口H寄存器及引腳配置
RegisterAddressR/WDescriptionResetValueGPHCON0x56000070R/W端口H引腳配置寄存器0x0GPHDAT0x56000074R/W端口H數(shù)據(jù)寄存器-GPHUP0x56000078R/W端口H上拉寄存器0x0RESERVED0x5600007C-端口H保留寄存器-68端口H引腳配置寄存器
位號位名位值:0001101121,20GPH10輸入輸出CLKOUT1Reserved19,18GPH9輸入輸出CLKOUT0Reserved17,16GPH8輸入輸出UCLKReserved15,14GPH7輸入輸出RXD2nCTS113,12GPH6輸入輸出TXD2nRTS111,10GPH5輸入輸出RXD1Reserved9,8GPH4輸入輸出TXD1Reserved7,6GPH3輸入輸出RXD0Reserved5,4GPH2輸入輸出TXD0Reserved3,2GPH1輸入輸出nRTS0Reserved1,0GPH0輸入輸出nCTS0ReservedBACK程序示例見VIVI中:S3C2410.h(地址映射)、smdk2410.h(功能設(shè)置值)、smdk.c(將值寫到指定地址)699、端口其它控制寄存器
RegisterAddressR/WDescriptionResetValueMISCCR0x56000080R/W混合控制寄存器0x10330DCLKCON0x56000084R/WD時鐘控制寄存器0x070nEN_SCKE---SCLK使能位。在電源關(guān)閉模式下對SDRAM做保護(hù) 0:正常狀態(tài) 1:低電平nEN_SCLKx---SCLKx使能位。在電源關(guān)閉模式下對SDRAM做保護(hù) 0:SCLKx=SCLK 1:低電平nRSTCON---對nRSTOUT軟件復(fù)位控制位 0:使nRSTOUT為低,0;1:使nRSTOUT為高,1151413121110987保留USBSUSPND1
USBSUSPND0
保留CLKSEL1
保留(1)MISCCR---混合控制寄存器31……2019181716保留(為0)nEN_SCKE
nEN_SCLK1
nEN_SCLK0
nRSTCON
6543210CLKSEL0
USBPAD
MEM_HZ_CONSPUCR_L
SPUCR_H
71USBSUSPND1---USB端口1模式 0:正常 1:浮空USBSUSPND0---USB端口0模式 0:正常 1:浮空CLKSEL1---CLKOUT1引腳輸出信號源選擇 000:MPLLCLK 001:UPLLCLK 010:FCLK 011:HCLK 100:PCLK 101:DCLK1 11x:保留CLKSEL0---CLKOUT0引腳輸出信號源選擇 000:MPLLCLK 001:UPLLCLK 010:FCLK 011:HCLK 100:PCLK 101:DCLK0 11x:保留151413121110987保留USBSUSPND1
USBSUSPND0
保留CLKSEL1
保留72USBPAD---與USB連接選擇 0:與USB設(shè)備連接 1:與USB主機(jī)連接MEM_HZ_CON---MEM高阻控制位 0:Hi-Z 1:前一狀態(tài)SPUCR_L---數(shù)據(jù)口低16位[15:0]上拉控制位 0:上拉 1:無上拉SPUCR_H---數(shù)據(jù)口高16位[31:16]上拉控制位 0:上拉 1:無上拉6543210CLKSEL0
USBPAD
MEM_HZ_CONSPUCR_L
SPUCR_H
7315…1211109876543210保留DCLK0CMPDCLK0DIV保留DCLK0SelCKDCLK0EN(2)DCLKCON---D時鐘控制寄存器31…28272625242322212019181716保留DCLK1CMP
DCLK1DIV
保留
DCLK1SEL
DCLK1ENDCLK1(0)CMP---DCLK1(0)低電平時間所占的比例數(shù)。 設(shè)該位值為m,m<DCLK1(0)DIV。 則低、高電平持續(xù)時間的源周期數(shù)分別為: m+1、DCLK1(0)DIV-mDCLK1(0)DIV---DCLK1(0)分頻值 DCLK1(0)frequency =sourceclock/(DCLK1(0)DIV+1)7415…1211109876543210保留DCLK0CMPDCLK0DIV保留DCLK0SelCKDCLK0EN(2)DCLKCON---D時鐘控制寄存器(續(xù))31…28272625242322212019181716保留DCLK1CMP
DCLK1DIV
保留
DCLK1SEL
DCLK1ENDCLK1(0)SelCK---DCLK1(0)sourceclock選擇 0:源時鐘選擇PCLK 1:源時鐘選擇UCLK(USB)DCLK1(0)EN---DCLK1(0)Enable 0:禁止 1:允許75 主要設(shè)置各個外中斷源的觸發(fā)方式、濾波10、外中斷控制寄存器
RegisterAddressR/WDescriptionResetValueEXTINT00x56000088R/W外中斷觸發(fā)方式寄存器00x0EXTINT10x5600008CR/W外中斷觸發(fā)方式寄存器10x0EXTINT20x56000090R/W外中斷控制寄存器20x076EINT0~7---中斷請求信號觸發(fā)方式選擇 000:低電平觸發(fā) 001:高電平觸發(fā) 01x:下降沿觸發(fā) 10x:上升沿觸發(fā) 11x:雙邊沿觸發(fā)第3、7、11、15、19、23、27、31位---保留1514131211109876543210XEINT3XEINT2XEINT1XEINT0(1)EXTINT0---外中斷觸發(fā)方式控制寄存器031302928272625242322212019181716XEINT7XEINT6XEINT5XEINT477EINT8~15---中斷請求信號觸發(fā)方式選擇 000:低電平觸發(fā) 001:高電平觸發(fā) 01x:下降沿觸發(fā) 10x:上升沿觸發(fā) 11x:雙邊沿觸發(fā)第3、7、11、15、19、23、27、31位---保留1514131211109876543210XEINT11XEINT10XEINT9XEINT8(2)EXTINT1---外中斷觸發(fā)方式控制寄存器131302928272625242322212019181716XEINT15XEINT14XEINT13XEINT1278EINT16~23---外中斷請求信號觸發(fā)方式選擇 000:低電平觸發(fā) 001:高電平觸發(fā) 01x:下降沿觸發(fā) 10x:上升沿觸發(fā) 11x:雙邊沿觸發(fā)第3、7、11、15、19、23、27、31位---為FILTEN各引腳濾波控制位 0:禁止濾波 1:使能濾波1514131211109876543210F19EINT19F18EINT18F17EINT17F16EINT16(3)EXTINT2---外中斷控制寄存器231302928272625242322212019181716F23EINT23F22EINT22F21EINT21F20EINT2079 主要設(shè)置各個外中斷源的濾波器設(shè)置11、外中斷濾波控制寄存器
RegisterAddressR/WDescriptionResetValueEINTFLT00x56000094R/W保留-EINTFLT10x56000098R/W保留-EINTFLT20x5600009CR/W外中斷濾波控制寄存器20x0EINTFLT30x560000A0R/W外中斷濾波控制寄存器30x080FLTCLK16~19---外中斷16~19濾波器時鐘選擇
0:PCLK 1:外部/振蕩時鐘(由OM引腳選擇)EINTFLT16~19---外中斷16~19濾波器寬度(頻帶寬度)
1514……876……0FLTCLK17EINTFLT17FLTCLK16EINTFLT16(1)EINTFLT2---外中斷濾波控制寄存器23130……24232216FLTCLK19EINTFLT19FLTCLK18EINTFLT1881FLTCLK20~23---外中斷20~23濾波器時鐘選擇
0:PCLK 1:外部/振蕩時鐘(由OM引腳選擇)EINTFLT20~23---外中斷20~23濾波器寬度(頻帶寬度)
1514……876……0FLTCLK21EINTFLT21FLTCLK20EINTFLT20(2)EINTFLT3---外中斷濾波控制寄存器33130……24232216FLTCLK23EINTFLT23FLTCLK22EINTFLT228212、外中斷屏蔽、標(biāo)志寄存器
RegisterAddressR/WDescriptionResetValueEINTMAK0x560000A4R/W外中斷屏蔽寄存器0x00FFFFF0EINTPEND0x560000A8R/W外中斷標(biāo)志寄存器0x083外中斷屏蔽寄存器位號含義位號含義位號含義23EINT2315EINT157EINT722EINT2214EINT146EINT621EINT2113EINT135EINT520EINT2012EINT124EINT419EINT1911EINT113保留18EINT1810EINT102保留17EINT179EINT91保留16EINT168EINT80保留 0:允許中斷 1:禁止中斷注意:EINT0---EINT3不能在此被屏蔽,在SRCPND中屏蔽。84外中斷標(biāo)志寄存器位號含義位號含義位號含義23EINT2315EINT157EINT722EINT2214EINT146EINT621EINT2113EINT135EINT520EINT2012EINT124EINT419EINT1911EINT113保留18EINT1810EINT102保留17EINT179EINT91保留16EINT168EINT80保留 0:無中斷請求 1:有中斷請求
注意:對某位寫1,則清除相應(yīng)標(biāo)志,即清為0.85GSTATUS3、4: 復(fù)位時被清0,其它情況下其數(shù)據(jù)不變。 用戶可以用于保存數(shù)據(jù)。13、外中斷狀態(tài)寄存器
RegisterAddressR/WDescriptionResetValueGSTATUS00x560000ACR外部引腳狀態(tài)寄存器不確定GSTATUS10x560000B0R芯片ID(標(biāo)識)寄存器0x32410000GSTATUS20x560000B4R/W復(fù)位狀態(tài)寄存器0x1GSTATUS30x560000B8R/W信息保存寄存器0x0GSTATUS40x560000C0R/W信息保存寄存器0x086nWEIT---引腳nWEIT狀態(tài)nCON---引腳nCON狀態(tài)RnB---引腳R/nB狀態(tài)nBATT_FLT---引腳nBATT_FLT狀態(tài)
注意:各位的數(shù)值0、1,隨著對應(yīng)引腳變化。31……43210保留nWEITnCONRnBnBATT_FLT(1)GSTATUS0---外部引腳狀態(tài)寄存器87WDTRST---上電復(fù)位控制狀態(tài) 1:出現(xiàn)了上電復(fù)位 對該位寫,則將該位清0OFFRST---掉電模式復(fù)位狀態(tài)。 1:系統(tǒng)出現(xiàn)了從掉電模式喚醒復(fù)位 對該位寫,則將該位清0PWRST---看門狗復(fù)位狀態(tài) 1:系統(tǒng)出現(xiàn)了看門狗定時器復(fù)位 對該位寫,則將該位清031……3210保留WDTRSTOFFRSTPWRST(2)GSTATUS2---復(fù)位狀態(tài)寄存器BACK885.4UART通用異步串行接口主要內(nèi)容概述結(jié)構(gòu)寄存器應(yīng)用舉例89一、概述
S3C2410的UART(通用異步串行口)有三個獨(dú)立的異步串行I/O端口:UART0、UART1、UART2,每個串口都可以在中斷和DMA兩種模式下進(jìn)行收發(fā)。UART支持的最高波特率達(dá)230.4kbps。
每個UART包含:波特率發(fā)生器、接收器、發(fā)送器和控制單元。波特率發(fā)生器以PCLK或UCLK為時鐘源。發(fā)送器和接收器各包含1個16字節(jié)的FIFO寄存器和移位寄存器。
S3C2410的3個UART都有遵從1.0規(guī)范的紅外傳輸功能,UART0、UART1有完整的握手信號,可以連接MODEM。 當(dāng)發(fā)送數(shù)據(jù)的時候,數(shù)據(jù)先寫到FIFO然后拷貝到發(fā)送移位寄存器,然后從數(shù)據(jù)輸出端口(TxDn)依次被移位輸出。被接收的數(shù)據(jù)也同樣從接收端口(RxDn)移位輸入到移位寄存器,然后拷貝到FIFO中。90通用異步收發(fā)嵌入式開發(fā)板和PC機(jī)的通訊電纜可以按照如圖所示的方式連接。串行數(shù)據(jù)傳送模式:單工半雙工全雙工串行通信方式:同步通信異步通信91使用UART0通信S3C2410的I/O電壓為3.3V(可承受5V),連接時須注意電平的匹配。與PC機(jī)相連時,由于PC機(jī)串口是RS232電平,所以連接時需要使用RS232轉(zhuǎn)換器。S3C2410其它通信設(shè)備S3C2410PC機(jī)串口232電平轉(zhuǎn)換TxD0RxD0TxD0RxD0TxD0RxD0TxD0RxD092引
腳名
稱功
能
描
述1DCD數(shù)據(jù)載波檢測2RXD數(shù)據(jù)接收3TXD數(shù)據(jù)發(fā)送4DTR數(shù)據(jù)終端準(zhǔn)備好5GND地6DSR數(shù)據(jù)設(shè)備準(zhǔn)備好7RTS請求發(fā)送8CTS清除發(fā)送9RI振鈴指示RS-232-C標(biāo)準(zhǔn)采用的接口是9芯或25芯的D型插頭,以常用的9芯D型插頭為例,各引腳定義如下:93二、串行口結(jié)構(gòu)和工作原理
1、串行口結(jié)構(gòu)
主要有4部分構(gòu)成:接收器、發(fā)送器、波特率發(fā)生器、控制邏輯等。94接收器/發(fā)送器的結(jié)構(gòu)錯誤狀態(tài)寄存器控制寄存器波特率除數(shù)寄存器MODEM狀態(tài)RMODEM控制R發(fā)送移位寄存器接收移位寄存器線路控制寄存器收發(fā)狀態(tài)寄存器FIFO控制寄存器FIFO狀態(tài)寄存器發(fā)送緩沖寄存器接收緩沖寄存器::::中斷/DMA請求nRTSnCTSTxDRxDTxFIFORxFIFO95
2、工作原理
(1)串行口的操作
數(shù)據(jù)幀格式:可編程,包含1個開始位、5到8個數(shù)據(jù)位、1個可選的奇偶校驗(yàn)位、1個或2個停止位,通過線路控制器(ULCONn)來設(shè)置。 發(fā)送中止信號:迫使串口輸出邏輯0,這種狀態(tài)保持一個傳輸幀的時間長度。通常在一幀傳輸數(shù)據(jù)完整地傳輸完之后,再通過這個全0狀態(tài)將中止信號發(fā)送給對方。中止信號發(fā)送之后,傳送數(shù)據(jù)連續(xù)放到FIFO中(在不使用FIFO模式下,將被放到輸出保持寄存器)。 接收器具有錯誤檢測功能:可以檢測出溢出錯誤,奇偶校驗(yàn)錯誤,幀錯誤和中止?fàn)顩r,每種情況下都會將一個錯誤標(biāo)志在接收狀態(tài)寄存器置位。
96
(2)串行口的波特率發(fā)生器 每個UART的波特率發(fā)生器為傳輸提供了串行移位時鐘。波特率產(chǎn)生器的時鐘源可以從S3C2410的內(nèi)部系統(tǒng)時鐘PCLK或UCLK中來選擇。波特率數(shù)值決定于波特率除數(shù)寄存器(UBRDIVn)的值,波特率數(shù)與UBRDIVn的關(guān)系為:UBRDIVn=(int)(CLK/(fB*16))-1
其中CLK為所選擇的時鐘頻率,fB為波特率。fB=CLK/16/(UBRDIVn+1
) 例如,如果波特率為115200bps且PCLK或UCLK為40MHz,則UBRDIVn為: UBRDIVn=(int)(40000000)/(115200*16))-1 =(int)(21.7)-1 =21-1
=20
97
(3)串行口波特率誤差極限 在應(yīng)用中,實(shí)際波特率往往與理想波特率有差別,其誤差不能超過一定的范圍,其極限為:UART傳輸10bit數(shù)據(jù)的時間誤差應(yīng)該小于1.87%(3/160)。t_true=(UBRDIVn+1)×16×10/PCLK實(shí)際的傳輸10bit所需時間 t_ideal=10/baud_rate理想情況下傳輸10位需要的時間UARTerror=((t_true–t_ideal)/t_ideal)×100%
98
(4)串行口的自動流控制功能 UART0和UART1不僅有完整的握手信號,而且有自動流控制功能,在寄存器UMCONn中設(shè)置實(shí)現(xiàn)。自動流控制是利用信號nRTS、nCTS來實(shí)現(xiàn)的。在接收數(shù)據(jù)時,只要接收FIFO中有兩個空字節(jié)就會使nRTS有效,使對方發(fā)送數(shù)據(jù);在發(fā)送數(shù)據(jù)時,只要nCTS有效,就會發(fā)送數(shù)據(jù)。其實(shí)現(xiàn)過程如下圖所示。 nRTS:請求對方發(fā)送 nCTS:清除請求發(fā)送
99
(5)使用FIFO進(jìn)行收發(fā)
主要是通過對FIFO狀態(tài)寄存器UFSTATn的查詢,確定進(jìn)行收發(fā)。
使用FIFO進(jìn)行發(fā)送: (1)選擇發(fā)送模式(中斷或者DMA模式) (2)查詢對方是否有請求發(fā)送要求,由MODEM狀態(tài)寄存器UMSTATn[0]給出,該位為1,則有請求,再查詢FIFO狀態(tài)寄存器UFSTATn的數(shù)據(jù)滿狀態(tài)位是否為1,如果不是1,可以向發(fā)送緩沖寄存器UTXHn寫入發(fā)送的數(shù)據(jù)。上面二者有一個或者兩個都不滿足,則不發(fā)送數(shù)據(jù)。
使用FIFO進(jìn)行接收(請求發(fā)送): (1)選擇接收模式(中斷或者DMA模式) (2)請求發(fā)送。先要查詢FIFO狀態(tài)寄存器UFSTATn的數(shù)據(jù)滿狀態(tài)位是否為1,如果不是1,則可以向?qū)Ψ桨l(fā)出“請求發(fā)送信號”,對MODEM控制寄存器MCONn中的請求發(fā)送信號產(chǎn)生位置1,使UARTn發(fā)出nRTS信號;如果UFSTATn的數(shù)據(jù)滿狀態(tài)位是1,則不能夠請求發(fā)送數(shù)據(jù)。100
(6)不使用FIFO進(jìn)行收發(fā)
主要是通過對收/發(fā)狀態(tài)寄存器UTRSTATn的查詢,確定進(jìn)行收發(fā)。
數(shù)據(jù)發(fā)送: (1)選擇發(fā)送模式(中斷或者DMA模式) (2)查詢對方是否有請求發(fā)送要求,由MODEM狀態(tài)寄存器UMSTATn[0]給出,該位為1,則有請求,再查詢發(fā)送/接收狀態(tài)寄存器UTRSTATn[1]的“發(fā)送緩沖器空”狀態(tài)位是否為1,如果是1,可以向發(fā)送緩沖寄存器UTXHn寫入發(fā)送的數(shù)據(jù)。
數(shù)據(jù)接收(請求發(fā)送): (1)選擇接收模式(中斷或者DMA模式) (2)請求發(fā)送。先要查詢發(fā)送/接收狀態(tài)寄存器UTRSTATn[0]的接收緩沖器“數(shù)據(jù)就緒狀態(tài)位”是否為1,如果是1,需要先讀取數(shù)據(jù),然后再請求對方發(fā)送數(shù)據(jù),方法是對MODEM控制寄存器MCONn中的請求發(fā)送信號產(chǎn)生位置1,使UARTn發(fā)出nRTS信號。如果UFSTATn的數(shù)據(jù)滿狀態(tài)位是1,則不能夠請求發(fā)送數(shù)據(jù) 101
(7)中斷或DMA請求 每個UART都有3類、7種事件產(chǎn)生中斷請求或者DMA請求。 7種中斷請求事件是:溢出錯誤、奇偶校驗(yàn)錯誤、幀格式錯誤、傳輸中斷信號、接收緩沖器數(shù)據(jù)就緒、發(fā)送緩沖器空、發(fā)送移位器空。 它們可以分成3類:錯誤中斷請求、接收中斷請求、發(fā)送中斷請求。 接收中斷:
非FIFO模式:當(dāng)接收緩沖寄存器收到數(shù)據(jù)后,產(chǎn)生中斷請求。 FIFO模式:RxFIFO中數(shù)據(jù)的數(shù)目達(dá)到了觸發(fā)中斷的水平,或者超時(在三幀時間內(nèi)未收到任何數(shù)據(jù)),均產(chǎn)生中斷請求。 發(fā)送中斷: 非FIFO模式:當(dāng)發(fā)送緩沖器空時,產(chǎn)生中斷請求。 FIFO模式:TxFIFO中數(shù)據(jù)的數(shù)目達(dá)到了觸發(fā)中斷的水平。102
錯誤中斷: 一共有4種錯誤中斷:溢出錯誤、奇偶檢驗(yàn)錯誤、幀格式錯誤、傳輸中斷信號錯誤。
說明:
(1)對于“奇偶校驗(yàn)錯誤、幀格式錯誤、傳輸中斷信號錯誤”中斷,在數(shù)據(jù)接收時就產(chǎn)生了,但是在數(shù)據(jù)接收產(chǎn)生時并非出現(xiàn)中斷請求,而是在讀出錯誤數(shù)據(jù)時才出現(xiàn)中斷請求。 (2)如果設(shè)置的是DMA模式,而不是中斷請求模式,對于以上所出現(xiàn)的中斷請求,應(yīng)該是DMA請求。 (3)傳輸中斷信號定義:在超出一幀的時間內(nèi),全部輸出低電平。103
(8)循環(huán)檢測模式 S3C2410X的每一個UART都提供有檢測功能,它是一種數(shù)據(jù)循環(huán)流動的自發(fā)、自收方式,數(shù)據(jù)從發(fā)送緩沖器傳送到TXD,數(shù)據(jù)不經(jīng)過引腳輸出,在內(nèi)部將數(shù)據(jù)傳到接收引腳RXD,再傳輸?shù)浇邮站彌_器。104三、UART專用寄存器 3個UART,每個都有11個專用寄存器,共31個寄存器(UART2無MODEM寄存器)RegisterAddressR/WDescriptionResetValueULCONn0x5000x000R/W線路控制寄存器0x00UCONn0x5000x004R/W控制寄存器0x00UFCONn0x5000x008R/WFIFO控制寄存器0x00UMCONn0x5000x00CR/WMODEM控制寄存器*0x00UTRSTATn0x5000x010R發(fā)送/接收狀態(tài)寄存器0x6UERSTATn0x5000x014RRx錯誤狀態(tài)寄存器0x0UFSTATn0x5000x018RFIFO狀態(tài)寄存器0x00UMSTATn0x5000x01CRMODEM狀態(tài)寄存器*0x0UTXHn0x5000x020/23W發(fā)送緩沖寄存器-URXHn0x5000x024/27R接收緩沖寄存器
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度教育培訓(xùn)機(jī)構(gòu)教育行業(yè)數(shù)據(jù)服務(wù)協(xié)議
- 二零二五年度農(nóng)業(yè)科技文職人員聘用協(xié)議
- 2025年度茶樓合作經(jīng)營協(xié)議書:茶樓與茶藝茶具研發(fā)中心的合作合同
- 二零二五年度知識產(chǎn)權(quán)質(zhì)押合同解除與資金返還協(xié)議
- 2025年度船舶租賃與船舶技術(shù)咨詢服務(wù)協(xié)議
- 2025年度超市轉(zhuǎn)讓與智能化升級改造合作協(xié)議
- 2025年度智能化社區(qū)物業(yè)委托經(jīng)營管理合同
- 專業(yè)資格教育培訓(xùn)合作協(xié)議
- 新型儲能技術(shù)應(yīng)用開發(fā)合作協(xié)議
- 行路難:古典詩詞中的壯志情懷教案
- 《中國潰瘍性結(jié)腸炎診治指南(2023年)》解讀
- 中國故事英文版哪吒英文二篇
- 鐵路橋梁工程各工序工效分析
- 2022《文創(chuàng)產(chǎn)品的設(shè)計》PPT演示文稿
- 介入科制度匯編
- 鍍鋅管理論重量表常用
- 鐵總計統(tǒng)【2017】177號關(guān)于進(jìn)一步加強(qiáng)鐵路建設(shè)項(xiàng)目征地拆遷工作和費(fèi)用管理的指導(dǎo)意見
- 電子技術(shù)基礎(chǔ)與技能-(3)
- 部編版四年級下冊語文第二單元課文教材分析及全部教案
- 美術(shù)開學(xué)第一課(課堂PPT)
- 出生證明委托書(共2頁)
評論
0/150
提交評論