第3章 32 Bit RISC微處理器 S3C2410A_第1頁
第3章 32 Bit RISC微處理器 S3C2410A_第2頁
第3章 32 Bit RISC微處理器 S3C2410A_第3頁
第3章 32 Bit RISC微處理器 S3C2410A_第4頁
第3章 32 Bit RISC微處理器 S3C2410A_第5頁
已閱讀5頁,還剩86頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第3章32BitRISC微處理器S3C2410A3.1S3C2410A簡介

3.1.1S3C2410A內部結構S3C2410是Samsung公司推出的16/32位RISC處理器,主要面向高性價比、低功耗的手持設備應用。S3C2410有S3C2410X和S3C2410A兩個型號,A型是X型的改進型,具有更好的性能和更低的功耗。為了降低系統的成本,S3C2410A在片上集成了單獨的16KB指令Cache和16KB數據Cache、用于虛擬存儲器管理的MMU、支持STN和TFT的LCD控制器、NANDFlashBootLoader、系統管理器(片選邏輯和SDRAM控制器)、3通道UART、4通道DMA、4通道PWM定時器、I/O口、RTC、8通道10位ADC和觸摸屏接口、I2C總線接口、I2S總線接口、USB主設備、USB從設備、SD主卡和MMC(MultiMediaCard,多媒體卡)卡接口、2通道的SPI(SerialPeripheralInterface,串行外圍設備接口)以及PLL時鐘發生器。S3C2410A的CPU內核采用的是16/32位ARM920T內核,同時還采用了AMBA(AdvancedMicrocontrollerBusArchitecture,先進的微控制器總線體系結構)新型總線結構。ARM920T采用了MMU,AMBA總線和Harvard高速緩存體系結構,該結構具有獨立的16KB指令Cache和16KB數據Cache,每個Cache都是由8字長的行組成的。S3C2410A提供一組完整的系統外圍設備接口,從而大大減少了整個系統的成本,省去了為系統配置額外器件的開銷。S3C2410A集成的片上功能包括:●內核電壓1.8V/2.0V,存儲器電壓3.3V,外部I/O電壓3.3V;●具有16KB的I-Cache和16KB的D-Cache以及MMU;●外部存儲器控制器(SDRAM控制和片選邏輯);●LCD控制器(最大支持4K彩色STN和256K彩色TFT)提供1通道LCD專用DMA;●4通道DMA并有外部請求引腳端;●3通道UART(IrDAl.0,16字節TxFIFO和16字節RxFIFO)/2通道SPI;●1通道多主設I2C總線和1通道I2S總線控制器;●版本1.0SD主接口和2.11兼容版MMC卡協議;●2個USB主設接口/1個USB從設接口(版本1.1);●4通道PWM定時器和1通道內部定時器;●看門狗定時器;●117位通用I/O口和24通道外部中斷源;●電源控制模式有正常、慢速、空閑和電源關斷4種模式;●8通道10位ADC和觸摸屏接口;●具有日歷功能的RTC;●使用PLL的片上時鐘發生器。S3C2410A的內部結構方框圖如圖3.1.1所示。圖3.1.1S3C2410A內部結構方框圖3.1.2S3C2410A的技術特點S3C2410A具有如下特點:1.體系結構●采用ARM920TCPU內核,具有16/32位RISC體系結構和強大的指令集,為手持設備和通用嵌入式應用提供片上集成系統解決方案;●增強的ARM體系結構MMU,支持WinCE、EPOC32和Linux;●使用指令Cache、數據Cache、寫緩沖器和物理地址TAGRAM減少主存儲器帶寬和反應時間對性能的影響;●ARM920TCPU內核支持ARM調試體系結構;●內部采用先進的微控制器總線體系結構(AMBA)(AMBA2.0,AHB/APB)。2.系統管理器●支持小/大端方式。●地址空間:每bank128MB(byte)(總共1GB)。●每個bank支持可編程的8/16/32位數據總線寬度。●bank0~bank6都采用固定的bank起始地址。●bank7具有可編程的bank起始地址和大小。●8個存儲器bank:一6個用于ROM、SRAM及其他;一2個用于ROM、SRAM和同步DRAM。●所有的存儲器bank都具有可編程的訪問周期。●支持使用外部等待信號來填充總線周期。●支持掉電時的SDRAM自刷新模式。●支持各種類型的ROM啟動(booting),包括NOR/NANDFlash和EEPROM等。3.NANDFlashBootLoader(啟動裝載)●支持從NANDFlash存儲器的啟動。采用4KB內部緩沖器用于啟動引導。●支持啟動之后NAND存儲器仍然作為外部存儲器使用。4.Cache存儲器●I-Cache(16KB)和D-Cache(16KB)為64路組相聯Cache。●每行8字長度,其中每行帶有一個有效位和兩個臟位(dirtybits)。●采用偽隨機數或循環替換算法。●采用寫直達(Write-through)或寫回(Write-back)Cache操作來更新主存儲器。●寫緩沖器可以保存16個字的數據值和4個地址值。5.時鐘和電源管理●片上MPLL和UPLL:一UPLL產生用于USB主機/設備操作的時鐘;一MPLL產生操作MCU的時鐘,時鐘頻率最高可達266MHz(2.0V內核電壓)。●通過軟件可以有選擇地為每個功能模塊提供時鐘。●電源模式包括正常、慢速、空閑和掉電模式:一正常模式為正常運行模式;一慢速模式為不加PLL的低時鐘頻率模式;一空閑模式只停止CPU的時鐘;一掉電模式切斷所有外設和內核的電源。●可以通過EINT[15:0]或RTC報警中斷從掉電模式中喚醒處理器。6.中斷控制器●55個中斷源(1個看門狗定時器、5個定時器、9個UART、24個外部中斷、4個DMA、2個RTC、2個ADC、1個I2C、2個SPI、1個SDI、2個USB、1個LCD和1個電池故障);●支持電平/邊沿觸發模式的外部中斷源;●可編程的電平/邊沿觸發極性;●為緊急中斷請求提供快速中斷服務(FIQ)支持。7.具有脈沖寬度調制(PWM)的定時器●具有PWM功能的4通道16位定時器,可基于DMA或中斷操作的1通道16位內部定時器;●可編程的占空比周期、頻率和極性;●能產生死區;●支持外部時鐘源。8.RTC(實時時鐘)●完整的時鐘特性:秒、分、時、日期、星期、月和年;●工作頻率32.768kHz;●具有報警中斷;●具有時鐘滴答中斷。9.通用I/O口●24個外部中斷口;●多路復用的I/O口。10.UAR ●3通道UART,可以基于DMA模式或中斷模式操作; ●支持5位、6位、7位或者8位串行數據發送/接收(Tx/Rx); ●支持外部時鐘作為UART的運行時鐘(UEXTCLK); ●波特率可編程; ●支持IrDA1.0; ●支持回環(Loopback)測試模式; ●每個通道內部都具有16字節的發送FIFO和16字節的接收FIFO。11.DMA控制器 ●4通道的DMA控制器; ●支持存儲器到存儲器、I/O到存儲器、存儲器到I/O和I/O到I/O的傳送; ●采用突發傳送模式提高傳送速率。12.A/D轉換和觸摸屏接口 ●8通道多路復用ADC; ●轉換速率最大為500KSPS(KiloSamplesPerSecond,每秒采樣千點),10位分辨率。13.LCD控制器STNLCD顯示特性 ●支持3種類型的STNLCD顯示屏:4位雙掃描、4位單掃描和8位單掃描顯示類型; ●對于STNLCD支持單色模式、4級灰度、16級灰度、256彩色和4096彩色; ●支持多種屏幕尺寸,典型的屏幕尺寸有:640×480,320×240,160×160; ●最大虛擬屏幕大小是4MB; ●在256彩色模式下支持的最大虛擬屏幕尺寸是:4096×1024,2048×2048,1024×40960或者其它尺寸。14.TFT(ThinFilmTransistor,薄膜場效應晶體管)彩色顯示特性 ●彩色TFT支持1、2、4或8bpp(bitperpixel,每像素所占位數)調色顯示; ●支持16bpp無調色真彩顯示; ●在24bpp模式下支持最大16M彩色TFT; 支持多種屏幕尺寸,典型的屏幕尺寸有:640×480,320×320,160×160或者其它尺寸; ●最大虛擬屏大小是4MB; ●在64彩色模式下支持的最大虛擬屏幕尺寸是:2048×1024或者其它尺寸。15.看門狗定時器 ●16位看門狗定時器; ●定時器溢出時產生中斷請求或系統復位。16.I2C總線接口 ●1通道多主機I2C總線; ●串行、8位、雙向數據傳送,在標準模式下數據傳送速率可達100kb/s,在快速模式下可達400kb/s。17.I2S總線接口 ●1通道音頻I2S總線接口,可基于DMA方式操作; ●串行,每通道8/16位數據傳輸; 串行,每通道8/16位數據傳輸; ●發送和接收(Tx/Rx)具備128字節FIFO(64字節發送FIFO+64字節接收FIFO); ●支持I2S格式和MSB-justified數據格式。18.USB主設備 ●2個USB主設接口; ●遵從OHCIRevl.0標準; ●兼容USBVerl.1標準。19.USB從設備 ●1個USB從設接口; ●具備5個USB設備端口; ●兼容USBVerl.1標準。20.SD主機接口 ●兼容SD存儲卡協議1.0版; ●兼容SDIO卡協議1.0版; 發送和接收采用字節FIFO; ●基于DMA或中斷模式操作; ●兼容MMC卡協議2.11版。21.SPI接口 ●兼容2通道SPI協議2.11版; ●發送和接收采用2字節的移位寄存器; ●基于DMA或中斷模式操作。22.工作電壓 ●內核電壓:1.8V,最高工作頻率200MHz(S3C2410A-20);2.0V,最高工作頻率266MHz(S3C2410A-26)。 ●存儲器和I/O電壓:3.3V。23.封裝 ●采用272-FBGA封裝。3.2S3C2410A存儲器控制器3.2.1S3C2410A的存儲器控制器特性S3C2410A的存儲器控制器提供訪問外部存儲器所需要的存儲器控制信號,具有以下特性: ●支持小/大端(通過軟件選擇)。 ●地址空間:每個bank有128MB(總共有8個bank,共1GB)。 ●除bank0只能是16/32位寬之外,其他bank都具有可編程的訪問位寬(8/16/32位)。 ●總共有8個存儲器bank(bank0~bank7): 一其中6個用于ROM,SRAM等; 一剩下2個用于ROM,SRAM,SDRAM等。 ●7個固定的存儲器bank(bank0~bank6)起始地址。 ●最后一個bank(bank7)的起始地址是可調整的。 ●最后兩個bank(bank6和bank7)的大小是可編程的。

●所有存儲器bank的訪問周期都是可編程的。 ●總線訪問周期可以通過插入外部等待來擴展。 ●支持SDRAM的自刷新和掉電模式。3.2.1S3C2410A的存儲器映射S3C2410A復位后,存儲器的映射情況如圖3.2.1所示,bank6和bank7對應不同大小存儲器時的地址范圍參見表3.2.1。[不使用NANDFlash作為啟動ROM][使用NANDFlash]作為啟動ROM]注意:①SROM表示是ROM或SRAM類型的存儲器;②SFR指特殊功能寄存器。圖3.2.1S3C2410A復位后的存儲器映射表3.2.1bank6和bank7地址注:bank6和bank7必須具有相同的存儲器大小。3.3復位、時鐘和電源管理1.復位電路在系統中,復位電路主要完成系統的上電復位和系統在運行時用戶的按鍵復位功能。復位電路可由簡單的RC電路構成,也可以使用其他的相對較復雜,但功能更完善的電路。為了提供高效的電源監視性能,選取了專門的系統監視復位芯片IMP811S。該芯片性能優良,可以通過手動控制系統的復位,同時還可以實時監控系統的電源。一旦系統電源低于系統復位的閥值(2.9V),IMP811S將會對系統進行復位。系統復位電路如圖3.3.1所示。圖3.3.1系統復位電路也可以采用如圖3.3.2所示較簡單的RC復位電路,經使用證明,其復位邏輯是可靠的。該復位電路的工作原理如下:在系統上電時,通過電阻R108向電容C162充電,當C162兩端的電壓未達到高電平的門限電壓時,RESET端輸出為高電平,系統處于復位狀態;當C162兩端的電壓達到高電平的門限電壓時,RESET端輸出為低電平,系統進入正常工作狀態。當用戶按下按鈕RESET時,C162兩端的電荷被放掉,RESET端輸出為高電平,系統進入復位狀態,再重復以上的充電過程,系統進入正常工作狀態。兩級非門電路用于按鈕去抖動和波形整形;nRESET端的輸出狀態與RESET端相反,用于低電平復位的器件;通過調整R108和C162的參數,可調整復位狀態的時間。圖3.3.2系統的復位電路2.時鐘電路在S3C2410A中的時鐘控制邏輯能夠產生CPU所需的FCLK時鐘信號。AHB總線外圍設備所需的HCLK時鐘信號,以及APB總線外圍設備所需的PCLK時鐘信號。S3C2410A有兩個鎖相環(PhaseLockedLoops,PLL),一個用于FCLK,HCLK和PCLK,另一個專門用于USB模塊(48MHz)。時鐘控制邏輯可以在不需要PLL的情況下產生慢速時鐘,并且可以通過軟件來控制時鐘與每個外圍模塊是連接還是斷開,從而降低功耗。S3C2410A微處理器的主時鐘可以由外部時鐘源提供,也可以由外部振蕩器提供,如圖3.3.3所示,采用哪種方式通過引腳OM[3:2]來進行選擇。 ●OM[3:2]=00時,MPLL和UPLL的時鐘均選擇外部晶體振蕩器; ●OM[3:2]=0l時,MPLL的時鐘選擇外部晶體振蕩器;UPLL選擇外部時鐘源;

●OM[3:2]=10時,MPLL的時鐘選擇外部時鐘源;UPLL選擇外部晶體振蕩器; ●OM[3:2]=11時,MPLL和UPLL的時鐘均選擇外部時鐘源。在系統中選擇OM[3:2]均接地的方式,即采用外部振蕩器提供系統時鐘。系統時鐘源直接采用外部晶振,內部PLL電路可以調整系統時鐘,使系統運行速度更快。S3C2410X的系統時鐘電路見圖3.3.3,其外部振蕩器由12MHz晶振和2個15pF的微調電容組成。振蕩電路輸出接到S3C2410X微處理器的XTIPLL腳,輸入由XTOPLL提供。由于片內的PLL電路兼有頻率放大和信號提純的功能,因此,系統可以以較低的外部時鐘信號獲得較高的工作頻率,從而降低因高速開關時鐘所造成的高頻噪聲。圖3.3.3S3C2410X微處理器外部時鐘電路3.電源電路對于電源控制邏輯,S3C2410A具有多種電源管理方案,對于每個給定的任務都具有最優的功耗。在S3C2410A中的電源管理模塊具有正常模式、慢速模式、空閑模式和掉電模式4種有效模式。在正常模式,電源管理模塊為CPU和S3C2410A中的所有外圍設備提供時鐘。在這個模式,由于所有外圍設備都處于開啟狀態,因此功耗達到最大。用戶可以通過軟件來控制外圍設備的操作。例如,如果不需要定時器,那么用戶可以斷開定時器的時鐘,以降低功耗。慢速模式又稱無PLL模式。與正常模式不同,在慢速模式不使用PLL,而使用外部時鐘(XTIPLL或EXTCLK)直接作為S3C2410A中的FCLK。在這種模式下,功耗大小僅取決外部時鐘的頻率,功耗與PLL無關。在空閑模式下,電源管理模塊只斷開CPU內核的時鐘(FCLK),但仍為所有其他外圍設備提供時鐘。空閑模式降低了由CPU內核產生的功耗。任何中斷請求可以從空閑模式喚醒CPU。在掉電模式,電源管理模塊斷開內部電源。因此,除喚醒邏輯以外,CPU和內部邏輯都不會產生功耗。激活掉電模式需要兩個獨立的電源,一個電源為喚醒邏輯供電;另一個為包括CPU在內的其他內部邏輯供電,并且這個電源開/關可以控制。在掉電模式下,為CPU和內部邏輯供電的第二個電源將關斷。通過EINT[15:0]或RTC報警中斷可以從掉電模式喚醒S3C2410A。在設計系統電源電路之前對S3C2410A的電源引腳進行分析:VDDalive引腳給處理器復位模塊和端口寄存器提供1.8V電壓;VDDi和VDDiarm為處理器內核提供1.8V電壓;VDDi_MPLL為MPLL提供1.8V模擬電源和數字電源;VDDi_UPLL為UPLL提供1.8V模擬電源和數字電源;VDDOP和VDDMOP分別為處理器端口和處理器存儲器端口提供3.3V電壓;VDD_ADC為處理器內的ADC系統提供3.3V電壓;VDDRTC為時鐘電路提供1.8V電壓,該電壓在系統掉電后仍需要維持。系統需要使用3.3V和1.8V的直流穩壓電源。為簡化系統電源電路的設計,要求整個系統的輸入電壓為高質量的5V直流穩壓電源。VDD3.3V提供給VDDMOP,VDDIO,VDDADC和VCC引腳,VDD1.8V提供給VDDi_X。5V輸入電壓經過DC-DC轉換器可完成5V到3.3V和1.8V的電壓轉換。系統中RTC所需電壓由1.8V電源和后備電源共同提供,在系統工作時1.8V電壓有效,系統掉電時后備電池開始工作,以供RTC電路所需的電源,同時使用發光二極管指示電源狀態。S3C2410A電源電路如圖3.3.4所示。(a)3.3V電源電路(b)1.8V電源電路(電阻R203=100K,R204=47.5K,阻值需要修改)圖3.3.4電源電路3.4S3C2410A的I/O口3.4.1S3C2410A的I/O口配置S3C2410A共有117個多功能復用輸入/輸出端口(I/O口),分為端口A~端口H8組,其中8組I/O口按照其位數的不同又可分為:端口A(GPA)是1個23位輸出口;端口B(GPB)和端口H(GPH)是2個11位I/O口;端口C(GPC)、端口D(GPD)、端口E(GPE)和端口G(GPG)是4個16位I/O口;端口F(GPF)是1個8位I/O口。為了滿足不同系統設計的需要,每個I/O口可以很容易地通過軟件對進行配置。每個引腳的功能必須在啟動主程序之前進行定義。如果一個引腳沒有使用復用功能,那么它可以配置為I/O口。注意:端口A除了作為功能口外,只能夠作為輸出口使用。S3C2410A的I/O口配置情況如表3.4.1~3.4.7所列。表3.4.1S3C2410A的端口AI/O口配置情況端口A可選擇的引腳端功能GPA22輸出nFCE–GPA21輸出nRSTOUT–GPA20輸出nFRE–GPA19輸出nFWE–GPA18輸出ALE–GPA17輸出CLE–GPA16~GPA12輸出nGCS5~nGCS1–GPA11~GPA1輸出ADDR26~ADDR16–GPA0輸出ADDR0–端口B可選擇的引腳端功能GPB10輸入/輸出nXDREQ0–GPB9輸入/輸出nXDACK0–GPB8輸入/輸出nXDREQ1–GPB7輸入/輸出nXDACK1–GPB6輸入/輸出nXBREQ–GPB5輸入/輸出nXBACK–GPB4輸入/輸出TCLK0–GPB3~GPB0輸入/輸出TOUT3~TOUT0–表3.4.2S3C2410A的端口BI/O口配置情況端口C可選擇的引腳端功能GPC15~GPC8輸入/輸出VD7~VD0–GPC7~GPC5輸入/輸出LCDVF2~LCDVF0–GPC4輸入/輸出VM–GPC3輸入/輸出VFRAME–GPC2輸入/輸出VLINE–GPC1輸入/輸出VCLK–GPC0輸入/輸出LEND–表3.4.3S3C2410A的端口CI/O口配置情況端口D可選擇的引腳端功能GPD15輸入/輸出VD23nSS0GPD14輸入/輸出VD22nSS1GPD13~GPD0輸入/輸出VD21~VD8–表3.4.4S3C2410A的端口DI/O口配置情況端口E可選擇的引腳端功能GPE15輸入/輸出IICSDA–GPE14輸入/輸出IICSCL–GPE13輸入/輸出SPICLK0–GPE12輸入/輸出SPIMOSI0–GPE11輸入/輸出SPIMISO0–GPE10~GPE7輸入/輸出SDDAT3~SDDAT0–GPE6輸入/輸出SDCMD–GPE5輸入/輸出SDCLK–表3.4.5S3C2410A的端口E、FI/O口配置情況GPE4輸入/輸出I2SSDOI2SSDIGPE3輸入/輸出I2SSDInSS0GPE2輸入/輸出CDCLK–GPE1輸入/輸出I2SSCLK–GPE0輸入/輸出I2SLRCK–端口FGPF7~GPF0輸入/輸出EINT7~EINT0–端口G可選擇的引腳端功能GPG15輸入/輸出EINT23nYPONGPG14輸入/輸出EINT22YMONGPG13輸入/輸出EINT21nXPONGPG12輸入/輸出EINT20XMONGPG11輸入/輸出EINT19TCLK1GPG10~GPG8輸入/輸出EINT18~EINT16–GPG7輸入/輸出EINT15SPICLK1表3.4.6S3C2410A的端口GI/O口配置情況GPG6輸入/輸出EINT14SPIMOSI1GPG5輸入/輸出EINT13SPIMISO1GPG4輸入/輸出EINT12LCD_PWRENGPG3輸入/輸出EINT11nSS1GPG2輸入/輸出EINT10nSS0GPG1輸入/輸出EINT9–GPG0輸入/輸出EINT8–端口H可選擇的引腳端功能GPH10輸入/輸出CLKOUT1–GPH9輸入/輸出CLKOUT0–GPH8輸入/輸出UEXTCLK–GPH7輸入/輸出RXD2nCTS1GPH6輸入/輸出TXD2nRTS1GPH5輸入/輸出RXD1–GPH4輸入/輸出TXD1–GPH3輸入/輸出RXD0–GPH2輸入/輸出TXD0–GPH1輸入/輸出nRTS0–GPH0輸入/輸出nCTS0–表3.4.7S3C2410A的端口HI/O口配置情況3.4.2S3C2410A的I/O口寄存器在S3C2410A中,大多數的引腳端都是復用的,所以對于每一個引腳端都需要定義其功能。為了使用I/O口,首先需要定義引腳的功能。每個引腳端的功能通過端口控制寄存器(PnCON)來定義(配置)。與配置I/O口相關的寄存器包括:端口控制寄存器(GPACON~GPHCON)、端口數據寄存器(GPADAT~GPHDAT)、端口上拉寄存器(GPBUP~GPHUP)、雜項控制寄存器以及外部中斷控制寄存器(EXTINTN)等。在掉電模式,如果GPF0~GPF7和GPG0~GPG7用作為喚醒信號,那么這些端口必須配置為中斷模式。如果端口配置為輸出口,數據可以寫入到端口數據寄存器(PnDAT)的相應位中;如果將端口配置為輸入口,則可以從端口數據寄存器(PnDAT)的相應位中讀出數據。端口上拉寄存器用于控制每組端口的上拉電阻為使能/不使能。如果相應位設置為0,則表示該引腳的上拉電阻使能;為1,則表示該引腳的上拉電阻不使能。如果使能了端口上拉寄存器,則不論引腳配置為哪種功能(輸入、輸出、DATAn、EINTn等),上拉電阻都會起作用。雜項控制寄存器用于控制數據端口的上拉電阻、高阻狀態、USBPad和CLKOUT的選擇。24個外部中斷通過不同的信號方式被請求。EXTINTn寄存器用于配置這些信號對于外部中斷請求采用的是低電平觸發、高電平觸發、下降沿觸發、上升沿觸發還是雙邊沿觸發。有8個外部中斷有數字濾波器。僅16EINT引腳端(EINT[15:0])用來作為喚醒源。所有GPIO寄存器的值在掉電模式下都會被保存。外部中斷屏蔽寄存器EINTMASK不能阻止從掉電模式喚醒,但是如果EINTMASK正在屏蔽的是EINT[15:4]中的某位,則可以實現喚醒,不過寄存器SRCPND的位EINT4和EINT823在剛剛喚醒后不能設置為1。相關寄存器的設置分別描述如下:寄存器地址讀/寫描述復位值GPACON0x56000000R/W配置端口A引腳端,使用位[22:0]。設置為0:輸出引腳端;設置為1:第2功能0x7FFFFFGPADAT0x56000004R/W端口A數據寄存器,使用位[22:0]未定義保留0x56000008–保留未定義保留0x5600000C–保留未定義1.端口A控制寄存器(參見表3.4.8)表3.4.8端口A控制寄存器寄存器地址讀/寫描述復位值GPBCON0x56000010R/W配置端口B引腳端,使用位[21:0],分別對端口B的11個引腳端進行配置。00:輸入;01:輸出;10:第2功能;11:保留0x0GPBDAT0x56000014R/W端口B數據寄存器,使用位[10:0]未定義GPBUP0x56000018R/W端口B上拉電阻不使能寄存器,使用位[10:0]。0:使能;1:不使能0x0保留0x5600001C–保留未定義2.端口B控制寄存器(參見表3.4.9)表.3.4.9端口B控制寄存器寄存器地址讀/寫描述復位值GPCCON0x56000020R/W配置端口C引腳端,使用位[31:0],分別對端口B的16個引腳端進行配置。00:輸入;01:輸出;10:第2功能;11:保留0x0GPCDAT0x56000024R/W端口C數據寄存器,使用位[15:0]未定義GPCUP0x56000028R/W端口C上拉電阻不使能寄存器,使用位[15:0]。0:使能;1:不使能0x0保留0x5600002C–保留未定義3.端口C控制寄存器(參見表3.4.10)表3.4.10端口C控制寄存器寄存器地址讀/寫描述復位值GPDCON0x56000030R/W配置端口D引腳端,使用位[31:0],分別對端口B的16個引腳端進行配置。00:輸入;01:輸出;10:第2功能;11:保留/第3功能0x0GPDDAT0x56000034R/W端口D數據寄存器,使用位[15:0]未定義GPDUP0x56000038R/W端口D上拉電阻不使能寄存器,使用位[15:0]。0:使能;1:不使能0xF000保留0x5600003C–保留未定義4.端口D控制寄存器(參見表3.4.11)表3.4.11端口D控制寄存器寄存器地址讀/寫描述復位值GPECON0x56000040R/W配置端口E引腳端,使用位[31:0],分別對端口B的16個引腳端進行配置。00:輸入;01:輸出;10:第2功能;11:保留/第3功能0x0GPEDAT0x56000044R/W端口E數據寄存器,使用位[15:0]未定義GPEUP0x56000048R/W端口E上拉電阻不使能寄存器,使用位[15:0]。0:使能;1:不使能0x0保留0x5600004C–保留未定義5.端口E控制寄存器(參見表3.4.12)表3.4.12端口E控制寄存器寄存器地址讀/寫描述復位值GPFCON0x56000050R/W配置端口F引腳端,使用位[15:0],分別對端口B的8個引腳端進行配置。00:輸入;01:輸出;10:第2功能;11:保留0x0GPFDAT0x56000054R/W端口F數據寄存器,使用位[7:0]

未定義GPFUP0x56000058R/W端口F上拉電阻不使能寄存器,使用位[7:0]。0:使能;1:不使能0x0保留0x5600005C–保留未定義6.端口F控制寄存器(參見表3.4.13)表3.4.13端口F控制寄存器寄存器地址讀/寫描述復位值GPGCON0x56000060R/W配置端口G引腳端,使用位[31:0],分別對端口B的16個引腳端進行配置。00:輸入;01:輸出;10:第2功能;11:保留/第3功能0x0GPGDAT0x56000064R/W端口G數據寄存器,使用位[15:0]

未定義GPGUP0x56000068R/W端口G上拉電阻不使能寄存器,使用位[15:0]。0:使能;1:不使能0xF800保留0x5600006C–保留未定義7.端口G控制寄存器(參見表3.4.14)表3.4.14端口G控制寄存器寄存器地址讀/寫描述復位值GPHCON0x56000070R/W配置端口H引腳端,使用位[21:0],分別對端口B的11個引腳端進行配置。00:輸入;01:輸出;10:第2功能;11:保留/第3功能0x0GPHDAT0x56000074R/W端口H數據寄存器,使用位[10:0]

未定義GPHUP0x56000078R/W端口H上拉電阻不使能寄存器,使用位[10:0]。0:使能;1:不使能0x0保留0x5600007C–保留未定義8.端口H控制寄存器(參見表3.4.15)表3.4.15端口H控制寄存器寄存器地址讀/寫描述復位值MISCCR0x56000080R/W上拉電阻、高阻狀態、USBPad和CLKOUT的選擇控制0x103309.雜項控制寄存器(參見表3.4.16)表3.4.16雜項控制寄存器寄存器地址讀/寫描述復位值DCLKCON0x56000084R/WDCLK0/1控制,位[27:16]控制DCLK1,位[11:0]控制DCLK90x010.DCLK控制寄存器(參見表3.4.17)表3.4.17DCLK控制寄存器寄存器地址讀/寫描述復位值EXTINT00x56000088R/W外部中斷控制寄存器0,使用位[30:0],分別對EINT7~EINT0觸發信號進行配置。000:低電平觸發;001:高電平觸發;01x:下降沿下降;10x:上升沿觸發;11x:雙邊沿觸發0x0EXTINT10x5600008CR/W外部中斷控制寄存器1,使用位[30:0],分別對EINT15~EINT8觸發信號進行配置。000:低電平觸發;001:高電平觸發;01x:下降沿下降;10x:上升沿觸發;11x:雙邊沿觸發0x011.外部中斷控制寄存器(參見表3.4.18)表3.4.18外部中斷控制寄存器EXTINT20x56000090R/W外部中斷控制寄存器2,使用位[30:0],分別對EINT23~EINT16觸發信號進行配置。000:低電平觸發;001:高電平觸發;01x:下降沿下降;10x:上升沿觸發;11x:雙邊沿觸發。位31為EINT23濾波器使能控制,1:使能;0:不使能0x0寄存器地址讀/寫描述復位值EINTFLT00x56000094R/W保留EINTFLT10x56000098R/W保留EINTFLT20x5600009CR/W外部中斷控制寄存器2,控制EINT19~EINT16的濾波器時鐘和帶寬0x0EINTFLT30x4C6000A0R/W外部中斷控制寄存器3,控制EINT23~EINT20的濾波器時鐘和帶寬0x012.外部中斷濾波寄存器(參見表3.4.19)表3.4.19外部中斷濾波寄存器寄存器地址讀/寫描述復位值EINTMASK0x560000A4R/W外部中斷屏蔽寄存器,使用位[23:4]控制EINT23~EINT4中斷屏蔽。0:使能中斷;1:屏蔽中斷0x00FFFFF0寄存器地址讀/寫描述復位值EINTPEND0x560000A8R/W外部中斷掛起寄存器,使用位[23:4]控制EINT23~EINT4中斷請求。0:不被請求;1:被請求0x014.外部中斷掛起寄存器(參見表3.4.21)表3.4.21外部中斷掛起寄存器13.外部中斷屏蔽寄存器(參見表3.4.20)表3.4.20外部中斷屏蔽寄存器寄存器地址讀/寫描述復位值GSTATUS00x560000ACR外部引腳端狀態UndefinedGSTATUS10x560000B0R芯片ID0x32410000GSTATUS20x560000B4R/W復位狀態0x1GSTATUS30x560000B8R/WInfrom寄存器,可以利用nRESET和看門狗定時器清零0x0GSTATUS40x560000BCR/WInfrom寄存器,可以利用nRESET和看門狗定時器清零0x015.通用狀態寄存器(參見表3.4.22)表3.4.22通用狀態寄存器3.5S3C2410A的中斷控制3.5.1ARM系統的中斷處理在ARM系統中,支持復位、未定義指令、軟中斷、預取中止、數據中止、IRQ和FIQ7種異常,每種異常對應于不同的處理器模式,有對應的異常向量(固定的存儲器地址)。在ARM系統中,一旦有中斷發生,正在執行的程序都會停下來,通常都會執行如下的中斷步驟: (1)保存現場。保存當前的PC值到R14,保存當前的程序運行狀態到SPSR。 (2)模式切換。根據發生的中斷類型,進入IRQ模式或FIQ模式。 (3)獲取中斷服務子程序地址。PC指針跳到異常向量表所保存的IRQ或FIQ地址處,IRQ或FIQ的異常向量地址處一般保存的是中斷服務子程序的地址,PC指針跳入到中斷服務子程序,進行中斷處理。(4)多個中斷請求處理。在ARM系統中,可以存在多個中斷請求源,比如串口中斷、AD中斷、外部中斷、定時器中斷及DMA中斷等,所以可能出現多個中斷源同時請求中斷的情況。為了更好地區分各個中斷源,通常為這些中斷定義不同的優先級別,并為每一個中斷設置一個中斷標志位。當發生中斷時,通過判斷中斷優先級以及訪問中斷標志位的狀態來識別哪一個中斷發生了,進而調用相應的函數進行中斷處理。(5)中斷返回,恢復現場。當完成中斷服務子程序后,將SPSR中保存的程序運行狀態恢復到CPSR中,R14中保存的被中斷程序的地址恢復到PC中,繼續執行被中斷的程序。3.5.2S3C2410A的中斷控制器S3C2410A采用ARM920TCPU內核,ARM920TCPU的中斷包含有IRQ和FIQ。IRQ是普通中斷,FIQ是快速中斷,FIQ的優先級高于IRQ。FIQ中斷通常在進行大批量的復制、數據傳輸等工作時使用。S3C2410A通過對程序狀態寄存器(PSR)中的F位和I位進行設置控制CPU的中斷響應。如果設置PSR的F位為1,則CPU不會響應來自中斷控制器的FIQ中斷;如果設置PSR的I位為1,則CPU不會響應來自中斷控制器的IRQ中斷。如果設置PSR的F位或I位設置為0,同時將中斷屏蔽寄存器(INTMSK)中的相對應位設置為0,CPU響應來自中斷控制器的IRQ或FIQ中斷請求。中斷屏蔽寄存器用于指示中斷是否禁止。如果設置中斷屏蔽寄存器中的相對應屏蔽位為1,表示相對應的中斷禁止;如果設置為0,表示中斷發生時將正常執行中斷服務。如果發生中斷時相對應的屏蔽位正好為1,則中斷掛起寄存器中的相對中斷源掛起位將置1。S3C2410A有SRCPND(中斷源掛起寄存器)和INTPND(中斷掛起寄存器)兩個中斷掛起寄存器。SRCPND和INTPND兩個掛起寄存器用于指示某個中斷請求是否處于掛起狀態。當多個中斷源請求中斷服務時,SRCPND寄存器中的相應位設置為1,仲裁過程結束后INTPND寄存器中只有1位被自動設置為1。S3C2410A中的中斷控制器能夠接收來自56個中斷源的請求,這些中斷源來自DMA控制器、UART、I2C及外部中斷引腳等。從表3.5.1可以看出,S3C2410A共有32個中斷請求信號。S3C2410A采用了中斷共享技術,INT_UARTO、INT_UART1、INT_UART2、EINT8_23和EINT4_7為多個中斷源共享使用的中斷請求信號。中斷請求的優先級邏輯是由7個仲裁器組成的,其中包括6個一級仲裁器和1個二級仲裁器,如圖3.5.1所示。每個仲裁器是否使能由寄存器PRIORITY[6:0]決定。每個仲裁器可以處理4~6個中斷源,從中選出優先級最高的。優先級順序由寄存器PRIORITY[20:7]的相應位決定。

表3.5.1S3C2410A的中斷源中斷源描述仲裁器分組INT_ADCADCEOC和觸摸中斷(INT_ADC/INT_TC)ARB5INT_RTCRTC報警中斷ARB5INT_SPI1SPI1中斷ARB5INT_UART0UART0中斷(故障、接收和發送)ARB5INT_IICI2C中斷ARB4VINT_USBHUSB主設備中斷ARB4INT_USBUSB從設備中斷ARB4保留保留ARB4INT_UART1UART1中斷(故障、接收和發送)ARB4INT_SPI0SPI0中斷ARB4INT_SDISDI中斷ARB3INT_DMA3DMA通道3中斷ARB3INT_DMA2DMA通道2中斷ARB3INT_DMA1DMA通道1中斷ARB3INT_DMA0DMA通道0中斷ARB3INT_LCDLCD中斷ARB3INT_UART2UART2中斷(故障、接收和發送)ARB2INT_TIMER4定時器4中斷ARB2INT_TIMERS定時器3中斷ARB2INT_TIMER2定時器2中斷ARB2INT_TIMER1定時器1中斷ARB2INT_TIMER0定時器0中斷ARB2INT_WDT看門狗定時器中斷ARB1INT_TICKRTC時鐘滴答中斷ARB1nBATT_FLT電源故障中斷ARB1保留保留ARB1EINT8_23外部中斷8~23ARB1EINT4_7外部中斷4~7ARB1EINT3外部中斷3ARB0EINT2外部中斷2ARB0EINTI外部中斷1ARB0EINT0外部中斷0ARB0圖3.5.1優先級生成模塊寄存器地址R/W描述復位值SRCPND0X4A000000R/W中斷源掛起寄存器,為0時,無中斷請求;當有中斷產生,相應位置1。所有來自中斷源的中斷請求首先被登記到中斷源掛起寄存器中0x00000000INTMOD0X4A000004R/W中斷模式寄存器:0=IRQ模式,1=FIQ模式。多個IRQ中斷的仲裁過程在優先級寄存器進行。0x00000000INTMSK0X4A000008R/W中斷屏蔽寄存器:0=允許中斷,1=屏蔽中斷。中斷屏蔽寄存器的主要功能是屏蔽相應中斷的請求,即使中斷掛起寄存器的相應位已經置1,也就是說已經有相應的中斷請求發生了;但是如果此時中斷屏蔽寄存器的相應位置1,則中斷控制器將屏蔽該中斷請求CPU不會響應該中斷0xFFFFFFFFS3C2410A中斷控制器的特殊寄存器如表3.5.2所示,中斷控制需要正確的設置這些寄存器,寄存器中每一位的含義請參閱S3C2410A數據手冊。表3.5.2中斷控制器的特殊寄存器PRIORITY0x4A00000CR/WIRQ中斷優先級控制寄存器0x7FINTPND0X4A000010R/W中斷狀態指示寄存器:0=該中斷沒有請求,1=該中斷源發出中斷請求0x00000000INTOFFSET0X4A000014R中斷偏移寄存器,指示IRQ中斷源0x00000000SUBSRCPND0X4A000018R/W子中斷源狀態寄存器,指示中斷請求的狀態。0=該中斷沒有請求,1=該中斷源發出中斷請求0x00000000INTSUBMSK0X4A00001CR/W定義哪幾個中斷源屏蔽。0=中斷服務允許,1=中斷服務屏蔽0x7FF3.5.3S3C2410A的中斷編程實例本小節介紹一個通過定時器1控制一個led燈每1秒鐘改變一次狀態,需要完成的主要工作如下。(1)對定時器1初始化,并設定定時器的中斷時間為1,具體代碼參見Timedinit()函數。 voidTimerl_init(void){ rGPBCON=rGPBCON&0xfffffffc&0x00000001; rGPBDAT=rGPBDAT|0x001; rTCFG0=255; rTCFG1=0<<4; rTCNTB1=48828;//在pclk=50MHz下,1s的記數值rTCNTB1=50000000/4/256=48828; rTCMPB1=0x00; rTCON=(1+11)|(1<<9)|(0<<8);//禁用定時器1,手動加載 rTCON=(1+11)|(0<<9)|(1<<8);//啟動定時器1,自動裝載 }(2)為了使CPU響應中斷,在中斷服務子程序執行之前,必須打開ARM920T的CPSR中的I位,以及相應的中斷屏蔽寄存器中的位。打開相應的中斷屏蔽寄存器中的位,是在TimerlINTInit()函數中實現的,具體代碼如下。 voidTimerlINT_Init(void){//定時器接口使能 if((rINTPND&BIT_TIMERI)){ rSRCPND|=BIT_TIMER1; } pISR_TMER1=(int)Timerl_ISR;//寫入定時器1中斷服務子程序的入口地址 rINTMSK&=~(BIT_TIMERI);//開中斷; }(3)等待定時器中斷,通過一個死循環,如“while(1);”實現等待過程。(4)根據設置的定時時間,產生定時器中斷。中斷發生后,首先進行現場保護,然后轉人中斷的入口代碼處執行。該部分代碼通常使用匯編語言編寫。在執行中斷服務程序之前,要確保HandleIRQ地址處保存中斷分發程序IsrIRQ的入口地址,代碼如下。 ldrr0,=HandleIRQ ldrr1,=IsrIRQ strr1,[r0〕 接下來將執行IsrIRQ中斷分發程序,具體代碼如下。 IsrIRQ subsp,sp,#4;//為保存PC預留堆棧空間 stmfdsp!,{r8-r9} ldrr9,=INTOFFSET ldrr9,[r9];//加載INTOFFSET寄存器值到r9 ldrr8,=HandleEINT0;//加載中斷向量表的基地址到r8 addr8,r8,r9,lsl#2;//獲得中斷向量 ldrr8,[r8];//加載中斷服務程序的入口地址到r8 strr8,[sp,#8];//保存sp,將其作為新的pc值 ldmfdsp!,(r8-r9,pc};//跳轉到新的pc處執行,即跳轉到中斷服務子程序執行(5)執行中斷服務子程序,該子程序實現led燈每一秒鐘改變一次狀態。看到LEDl燈閃爍一次,則說明定時器發生了一次中斷。具體實現見函數Timerl_ISR()。 intf; void__irqTimer1_ISR(void) { If(f==0) {rGPBDAT=rGPBDAT|0x001; f=1; } If(f==1) {rGPBDAT=rGPBDAT&0x0; f=0; } rSRCPND|=BIT_TIMER1; rINTPND|=BIT_TIMER1; }(6)從中斷返回,恢復現場,跳轉到被中斷的主程序繼續執行,等待下一次中斷的到來。3.6S3C2410A的DMA控制器3.6.1DMA工作原理DMA(DirectMemoryAcess,直接存儲器存取)方式是指存儲器與外設在DMA控制器的控制下,直接傳送數據而不通過CPU,傳輸速率主要取決于存儲器存取速度。在DMA傳輸過程中,DMA控制器負責管理整個操作,并且無須CPU介入,從而大大提高了CPU的工作效率。DMA方式為高速I/O設備和存儲器之間的批量數據交換提供了直接的傳輸通道。由于I/O設備直接同內存發生成塊的數據交換,可以提高I/O效率。現在大部分計算機系統均采用DMA技術。許多輸入/輸出設備的控制器都支持DMA方式。在進行DMA數據傳送之前,DMA控制器會向CPU申請總線控制權,CPU如果允許,則將控制權交出。因此,在數據交換時,總線控制權由DMA控制器掌握,在傳輸結束后,DMA控制器將總線控制權交還給CPU。采用DMA方式進行數據傳輸的具體過程如下。(1)外設向DMA控制器發出DMA請求。(2)DMA控制器向CPU發出總線請求信號。(3)CPU執行完現行的總線周期后,向DMA控制器發出響應請求的回答信號。(4)CPU將控制總線、地址總線及數據總線讓出,由DMA控制器進行控制。(5)DMA控制器向外部設備發出DMA請求回答信號。(6)進行DMA傳送。(7)數據傳送完畢,DMA控制器通過中斷請求線發出中斷信號。CPU在接收到中斷信號后,轉人中斷處理程序進行后續處理。(8)中斷處理結束后,CPU返回到被中斷的程序繼續執行。CPU重新獲得總線控制權。3.6.2S3C2410A的DMA控制器在系統總線和外圍總線之間,S3C2410A有4個DMA控制器。每個DMA控制器可以處理以下4種情況:(1)源和目的都在系統總線上;(2)源在系統總線上,目的在外圍總線上;(3)源在外圍總線上,目的在系統總線上;(4)源和目的都在外圍總線上。如果DCON寄存器選擇采用硬件(H/W)DMA請求模式,DMA控制器可以從對應通道的DMA請求源中選擇一個。如果DCON寄存器選擇采用軟件(S/W)DMA請求模式,那么這些DMA請求源將沒有任何意義。DMA請求源如表3.6.1所示。通道請求源0請求源1請求源2請求源3請求源4通道0nXDREQ0UART0SDI定時器USB設備EP1通道1nXDREQ1UARTII2SSDISPI0USB設備EP2通道2I2SSDOI2SSDISDI定時器USB設備EP3通道3UART2SDISPI1定時器USB設備EP4表3.6.1DMA請求源DMA的操作過程可以用一個3種狀態的FSM(FiniteStateMachine,有限狀態機)來描述,具體步驟如下:(1)狀態1狀態1為初始狀態,DMA等待一個DMA請求。如果出現DMA請求,進入狀態2。在這種狀態下,DMAACK和INTREQ為0。(2)狀態2在狀態2,DMAACK變為1,并且從DCON[19:0]寄存器向計數器(CURRTC)加載計數值。注意,此時DMAACK一直是1,直到被清零。(3)狀態3在狀態3,子FSM使DMA的微操作被初始化。子FSM從源地址讀取數據,并將其寫入目標地址。在這個操作過程中,需要考慮數據大小(尺寸)和傳輸大小(尺寸)。這一操作重復執行,直到在整體服務模式下的計數器(CURR_TC)變為0;這一操作在單個服務模式下則只執行一次。子FSM每完成一次微操作,主FSM將CURR_TC進行一次向下計數。另外,當CURR_TC變為0時,主FSM將INTREQ信號置1,并將DCON寄存器的中斷設置位[29]置1。除此以外,如果發生以下情況,則對DMAACK清零。在單個服務模式下,主FSM的3種狀態執行完后就停止,并等待下一個DMA請求。如果又產生了新的DMA請求,則所有3個狀態都將被重復。因此,對于每一個微傳送操作,DMAACK先后置1和清零。相反,在整體服務模式下,主FSM一直在狀態3等待直到CURRTC變為0,因此DMAACK在整個傳送過程中都置1,當TC為時則清零。S3C2410A每個DMA通道有9個控制寄存器,4個通道共有36個寄存器。每個DMA通道的9個控制寄存器中有6個用于控制DMA傳輸,另外3個用于監控DMA控制器的狀態。要進行DMA操作,首先需要對這些寄存器進行正確配置。相關寄存器介紹如下:(1)DMA初始化源寄存器(DISRC)如表3.6.2所示,DMA初始化源寄存器(DISRC)用于存放要傳輸的源數據的起始地址。寄存器地址讀/寫描述復位值DISRCO0x4B000000讀/寫DMA0初始化源寄存器0x00000000DISRCI0x4B000040DMAl初始化源寄存器DISRC20x4B000080DMA2初始化源寄存器DISRC30x4B0000C0DMA3初始化源寄存器表3.6.2DMA初始化源寄存器寄存器地址讀/寫描述復位值DISRCC00x4B000004讀/寫DMA0~DMA3初始化源控制寄存器。位[1]:位[1]=0,源數據在AHB總線上;位[1]=1,源數據在APB總線上。位[0]:位[0]=0,傳送數據后,源地址增加;位[0]=1,地址固定不變0x00000000DISRCC10x4B000044DISRCC20x4B000084DISRCC30x4B0000C4表3.6.3DMA初始化源控制寄存器(2)DMA初始化源控制寄存器(DISRCC)如表3.6.3所示,DMA初始化源控制寄存器(DISRCC)用于控制源數據在AHB總線還是APB總線上并控制地址增長方式寄存器地址讀/寫描述復位值DIDST00x4B000008讀/寫DMAO初始化目標地址寄存器0x00000000DIDST10x4B000048DMA1初始化目標地址寄存器DIDST20x4B000088DMA2初始化目標地址寄存器DIDST30x4B0000C8DMA3初始化目標地址寄存器3)DMA初始化目標地址寄存器(DIDST),如表3.6.4所示,DMA初始化目標地址寄存器(DIDST)用于存放傳輸目標的起始地址。表3.6.4DMA初始目標地址寄存器寄存器地址讀/寫描述復位值DIDSTC00x4B00000C讀/寫DMAn初始化目標控制寄存器。位[1]:位[1]=0,目標在AHB總線上;位[1]=1,目標在APB總線上。位[0]:位[0]=0,傳送數據后,目標地址增加;位[0]=1,地址固定不變0x00000000DIDSTC10x4B00004CDIDSTC20x4B00008CDIDSTC30x4B0000CC(4)DMA初始化目標控制寄存器(DIDSTC)如表3.6.5所示,DMA初始化目標控制寄存器(DIDSTC)用于控制目標位于AHB總線還是APB總線上,并控制地址增長方式。表3.6.5DMA初始化目標控制寄存器寄存器地址讀/寫描述復位值DCON00x4B000010讀/寫DMA0控制寄存器0x00000000DCON10x4B000050DMA1控制寄存器DCON20x4B000090DMA2控制寄存器DCON30x4B0000D0DMA3控制寄存器(5)DMA控制寄存器(DCON)如表3.6.6所示,有4個DMA控制寄存器(DCON)(DCON0~DCON3),DMA控制寄存器的位描述如表3.6.7所示。表3.6.6DMA控制寄存器DCONn位描述DMDHS[31]請求模式或握手模式選擇。0:請求模式;1:握手模式SYNC[30]DREQ/DACK同步模式選擇。0:DREQ和DACK與APB時鐘同步1:DREQ和DACK與AHB時鐘同步INT[29]CURR_TC中斷使能設置。0:禁止中斷;1:使能中斷TSZ[28]選擇傳輸單位的大小。0:單位傳輸;1:長度為4的突發式傳輸SERVMODE[27]服務模式選擇。0:單個服務模式;1:整體服務模式表3.6.7DMA控制寄存器的位描述HWSRCSEL[26:24]為DMA設置DMA請求源。DCONO:000一nXDREQ0;001一UART0;010一SDI;011一定時器;100一USB設備EP1;DCONl:000一nXDREQ1;001一UART1;010一I2SSDI;011一SPI;100一USB設備EP2;DCON2:000-I2SSD0;001一I2SSDI;010一SDI;011一定時器;100一USB設備EP3;DCON3:000--UART2;001-SDI;010-SPI;011一定時器;100一USB設備EP4SWHW_SEL[23]選擇DMA軟件請求源和硬件請求源。0:軟件請求模式,DMA通過設置DMASKTRIG寄存器SW_TRIG位觸發;1:硬件請求模式,DMA通過設置該寄存器的HWSRCSEL位觸發RELOAD[22]設置是否重新加載(當前計數器值等于零后)。0:自動加載;1:DMA通道關閉,不重新加載DSZ[21:20]傳輸數據的大小。00:字節01:半字10:字11:保留TC[19:0]初始化計數器寄存器地址讀/寫描述復位值DSTAT00x4B000014只讀DMA0~DMA3計數寄存器。位

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論