版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第5章基于S3C2410的系統(tǒng)硬件設(shè)計第五章基于3C2410的系統(tǒng)硬件設(shè)計1第5章基于S3C2410的系統(tǒng)硬件設(shè)計主要內(nèi)容132S3C2410簡介I/O口中斷A/D接口DMAUART6789
觸摸屏10111LCDUSB設(shè)備的數(shù)據(jù)收發(fā)音頻錄放鍵盤和LED控制第5章基于S3C2410的系統(tǒng)硬件設(shè)計5.1
S3C2410簡介S3C2410是Samsung公司推出的16/32位RISC處理器,主要面向手持設(shè)備以及高性價比、低功耗的應(yīng)用。CPU內(nèi)核采用的是ARM公司設(shè)計的16/32位ARM920T
RISC處理器。S3C2410A提供一組完整的系統(tǒng)外圍設(shè)備:√2個USB主設(shè)備接口,1個USB從設(shè)備接口;√4通道PWM定時器和1通道內(nèi)部定時器;√看門狗定時器;√117位通用I/O口和24通道外部中斷源;√電源控制模式包括:正常、慢速、空閑和掉電四種模式;√8通道10位ADC和觸摸屏接口;√具有日歷功能的RTC;√使用PLL的片上時鐘發(fā)生器。√1.8V/2.0V內(nèi)核供電,3.3V存儲器供電,3.3V外部I/O供電;√具有16KB的ICache和16KB的DCache以及
MMU;√外部存儲器控制器;√LCD控制器提供1通道LCD專用DMA;√4通道DMA并有外部請求引腳;√3通道UART和2通道SPI;√1通道多主機(jī)IIC總線和1通道IIS總線控制器;√SD主接口版本1.0和MMC卡協(xié)議2.11兼容版;1第5章基于S3C2410的系統(tǒng)硬件設(shè)計S3C2410結(jié)構(gòu)框圖1第5章基于S3C2410的系統(tǒng)硬件設(shè)計5.1.1
S3C2410A的特點(diǎn)√體系結(jié)構(gòu)√系統(tǒng)管理器√N(yùn)AND
Flash啟動裝載器√Cache存儲器√時鐘和電源管理√中斷控制器√具有脈沖帶寬調(diào)制(PWM)的定時器√RTC(實(shí)時時鐘)√通用I/O口√UART√DMA控制器√A/D轉(zhuǎn)換和觸摸屏接口√LCD控制器STN
LCD顯示特性√TFT彩色顯示特性√看門狗定時器√IIC總線接口√IIS總線接口√USB主設(shè)備√USB從設(shè)備√SD主機(jī)接口√SPI接口√工作電壓√封裝1第5章基于S3C2410的系統(tǒng)硬件設(shè)計5.1.2存儲器控制器S3C2410A的存儲器控制器提供訪問外部存儲器所需要的存儲器控制信號。支持小/大端(通過軟件選擇)地址空間:每bank有128M字節(jié)(總共有8個banks,共1G字節(jié))除bank0(只能是16/32位寬)之外,其他bank都具有可編程的訪問大小(可以是8/16/32位寬)總共有8個存儲器banks(bank0~bank7)·其中6個banks用于ROM,SRAM等·剩下2個banks用于ROM,SRAM,SDRAM等7個固定的存儲器bank(bank0~bank6)起始地址最后一個bank(bank7)的起始地址是可調(diào)整的最后兩個bank(bank6~bank7)的大小是可編程的所有存儲器bank的訪問周期都是可編程的總線訪問周期可以通過插入外部等待來延長支持SDRAM的自刷新和掉電模式特性1第5章基于S3C2410的系統(tǒng)硬件設(shè)計存儲器映射1第5章基于S3C2410的系統(tǒng)硬件設(shè)計5.1.3
NAND
Flash控制器特性NAND
Flash模式:支持讀/擦除/編程N(yùn)AND
Flash存儲器。自動啟動模式:復(fù)位后,啟動代碼被傳送到Steppingsto中。傳送完畢后,啟動代碼在Steppingstone中執(zhí)行。具備硬件ECC(校驗(yàn)碼,Error
Correction
Code)生成模塊(硬件生成校驗(yàn)碼,通過軟件校驗(yàn))。NAND
Flash啟動以后,4KB的內(nèi)部SRAM緩沖器
Steppingstone可以作為其他用途使用。NAND
Flash控制器不能通過DMA訪問,可以使用
LDM/STM指令來代替DMA操作。1第5章基于S3C2410的系統(tǒng)硬件設(shè)計·
NAND
Flash控制器的結(jié)構(gòu)框圖1第5章基于S3C2410的系統(tǒng)硬件設(shè)計·
NAND
Flash的工作方式1第5章基于S3C2410的系統(tǒng)硬件設(shè)計·
NAND
Flash存儲器的時序1第5章基于S3C2410的系統(tǒng)硬件設(shè)計5.1.4
時鐘和電源管理1時鐘和電源管理模塊包括三部分:·時鐘控制:CPU所需的FCLK時鐘信號、AHB總線外圍設(shè)備所需的HCLK時鐘信號,以及APB總線外圍設(shè)備所需的PCLK時鐘信號。·USB控制·電源控制√正常模式√慢速模式√空閑模式√掉電模式第5章基于S3C2410的系統(tǒng)硬件設(shè)計主要內(nèi)容132S3C2410簡介I/O口中斷A/D接口DMAUART6789
觸摸屏10111LCDUSB設(shè)備的數(shù)據(jù)收發(fā)音頻錄放鍵盤和LED控制第5章基于S3C2410的系統(tǒng)硬件設(shè)計5.2.1
S3C2410A的I/O口工作原理1GPIO(General
Purpose
I/O,通用輸入/輸出接
口)也稱為并行I/O(parallel
I/O),是最基本的
I/O形式,由一組輸入引腳、輸出引腳或輸入/輸出引腳組成,CPU對它們能夠進(jìn)行存取操作。有些
GPIO引腳能夠通過軟件編程改變輸入/輸出方向。一個雙向GPIO端口(D0)的簡化功能邏輯圖如圖
5.2.1所示,圖中PORT為數(shù)據(jù)寄存器和DDR(Data
Direction
Register)為數(shù)據(jù)方向寄存器。第5章基于S3C2410的系統(tǒng)硬件設(shè)計圖5.2.1
雙向GPIO功能邏輯圖5.2.1
S3C2410A的I/O口工作原理1第5章基于S3C2410的系統(tǒng)硬件設(shè)計DDR設(shè)置端口的方向。如果DDR的輸出為1,則GPIO端口為輸出形式;如果DDR的輸出為零,則GPIO端口為輸入形式。寫入WR—DDR信號能夠改變DDR的輸出狀態(tài)。DDR在微控制器地址空間中是一個映射單元。這種情況下,如果需要改變DDR,則需要將恰當(dāng)?shù)闹抵糜跀?shù)據(jù)總線的第0位(即D0),同時激活WR—DDR信號。讀DDR,就能得到DDR的狀態(tài),同時激活RD—DDR信號。如果設(shè)置PORT引腳端為輸出,則PORT寄存器控制著該引腳端狀態(tài)。如果將PORT引腳端設(shè)置為輸入,則此輸入引腳端的狀態(tài)由引腳端上的邏輯電路層來實(shí)現(xiàn)對它的控制。對PORT寄存器的寫操作,需要激活WR—PORT信號。PORT寄存器也映射到微控制器的地址空間。需指出,即使當(dāng)端口設(shè)置為輸入時,如果對PORT寄存器進(jìn)行寫操作,并不會對該引腳產(chǎn)生影響。但從PORT寄存器的讀出,不管端口是什么方向,總會影響該引腳端的狀態(tài)5.2.1
S3C2410A的I/O口工作原理1第5章基于S3C2410的系統(tǒng)硬件設(shè)計S3C2410A共有117個多功能復(fù)用輸入/輸出端口(I/O口),分為端口A~端口H共8組。為了滿足不同系統(tǒng)設(shè)計的需要,每個I/O口可以很容易地通過軟件對進(jìn)行配置。每個引腳的功能必須在啟動主程序之前進(jìn)行定義。如果一個引腳沒有使用復(fù)用功能,那么它可以配置為I/O口。注意:端口A除了作為功能口外,只能夠作為輸出口使用。5.2.1
S3C2410A的I/O口工作原理1端口A可選擇的引腳端功能GPA22輸出nFCE–GPA21輸出nRSTOUT–GPA20輸出nFRE–GPA19輸出nFWE–GPA18輸出ALE–GPA17輸出CLE–GPA16~GPA12輸出nGCS5~nGCS1–1第5章基于S3C2410的系統(tǒng)硬件設(shè)計表5.2.1
S3C2410A的端口A
I/O口配置情況5.2.1
S3C2410A的I/O口工作原理第5章基于S3C2410的系統(tǒng)硬件設(shè)計的I/O口工作原理1端口B可選擇的引腳端功能5.2GPB10.輸1入/輸出S3nXDCRE2Q
4010A–GPB9輸表入/5輸出.2.nX2DASC3CK024–10AGPB8輸入/輸出nXDREQ1–GPB7輸入/輸出nXDACK1–GPB6輸入/輸出nXBREQ–GPB5輸入/輸出nXBACK–GPB4輸入/輸出TCLK0–GPB3~GPB0輸入/輸出TOUT3
~TOUT0–的端口B
I/O口配置情況第5章基于S3C2410的系統(tǒng)硬件設(shè)計端口C 可選擇的引腳端功能GPC8 輸出
VD0–GPC7~GPC5輸出
LCDVF0–GPC4輸入/輸出VM–GPC3輸入/輸出VFRAME–GPC2輸入/輸出VLINE–GPC1輸入/輸出VCLK–GPC0輸入/輸出LEND–GP5C15.~2.輸入1/S3VDC7
~2410A的I/O口工作原理1輸入表/5.L2C.D3VF2S~3C2410A的端口C
I/O口配置情況端口D可選擇的引腳端功能GPD15輸入/輸出VD23nSS0GPD14輸入/輸出VD22nSS1GPD13~GPD0輸入/輸出VD21~VD8–1第5章基于S3C2410的系統(tǒng)硬件設(shè)計5.2.1
S3C2410A的I/O口工作原理表5.2.4
S3C2410A的端口D
I/O口配置情況第5章基于S3C2410的系統(tǒng)硬件設(shè)計端口E可選擇的引腳端功能GPE15輸入/輸出IICSDA–GPE14輸入/輸出IICSCL–GPE13輸入/輸出SPICLK0–GPE12輸入/輸出SPIMOSI0–GPE11輸入/輸出SPIMISO0–GPE10~GPE7輸入/輸出SDDAT3~SDDAT0–GPE6輸入/輸出SDCMD–GPE5輸入/輸出SDCLK–5.2.1
S3C2410A的I/O口工作原理1表5.2.5
S3C2410A的端口E、F
I/O口配置情況第5章基于S3C2410的系統(tǒng)硬件設(shè)計GPE4輸入/輸出I2SSDOI2SSDIGPE3輸入/輸出I2SSDInSS0GPE2輸入/輸出CDCLK–GPE1輸入/輸出I2SSCLK–GPE0輸入/輸出I2SLRCK–端口FGPF7~
GPF0輸入/輸出EINT7
~EINT0–5.2.1
S3C2410A的I/O口工作原理1表5.2.5
S3C2410A的端口E、F
I/O口配置情況(續(xù))第5章基于S3C2410的系統(tǒng)硬件設(shè)計端口G可選擇的引腳端功能GPG15輸入/輸出EINT23nYPONGPG14輸入/輸出EINT22YMONGPG13輸入/輸出EINT21nXPONGPG12輸入/輸出EINT20XMONGPG11輸入/輸出EINT19TCLK1GPG10~GPG8輸入/輸出EINT18~EINT16–GPG7輸入/輸出EINT15SPICLK15.2.1
S3C2410A的I/O口工作原理1表5.2.6
S3C2410A的端口G
I/O口配置情況第5章基于S3C2410的系統(tǒng)硬件設(shè)計GPG6輸入/EINT14SPIMOSIGPG5輸入/EINT13SPIMISOGPG4EINT12LCD_PWRENGPG3輸入/輸出EINT11nSS1GPG2輸入/輸出EINT10nSS0GPG1輸入/輸出EINT9–輸入/GPG0 輸出EINT8–5.2輸.出1
S3C24101
A的I/O口工作原理1輸出.2.6
S3C2410A1
端口G
I/O口配置情況(續(xù))表5
的輸入/輸出第5章基于S3C2410的系統(tǒng)硬件設(shè)計端口H可選擇的引腳端功能GPH10輸入/輸出CLKOUT1–GPH9輸入/輸出CLKOUT0–GPH8輸入/輸出UEXTCLK–GPH7輸入/輸出RXD2nCTS1GPH6輸入/輸出TXD2nRTS1GPH5輸入/輸出RXD1–GPH4輸入/輸出TXD1–GPH3輸入/輸出RXD0–GPH2輸入/輸出TXD0–GPH1輸入/輸出nRTS0–GPH0輸入/輸出nCTS0–5.2.1
S3C2410A的I/O口工作原理1表5.2.7
S3C2410A的端口H
I/O口配置情況第5章基于S3C2410的系統(tǒng)硬件設(shè)計在S3C2410A中,大多數(shù)的引腳端都是復(fù)用的,所以對于每一個引腳端都需要定義其功能。為了使用I/O口,首先需要定義引腳的功能。每個引腳端的功能通過端口控制寄存器(PnCON)來定義(配置)。與配置I/O口相關(guān)的寄存器包括:端口控制寄存器(GPACON~GPHCON)、端口數(shù)據(jù)寄存器(GPADAT~GPHDAT)、端口上拉寄存器(GPBUP~GPHUP)、雜項(xiàng)控制寄存器以及外部中斷控制寄存器(EXTINTN)等。在掉電模式,如果GPF0~GPF7和GPG0~GPG7用作為喚醒信號,那么這些端口必須配置為中斷模式。5.2.1
S3C2410A的I/O口工作原理1第5章基于S3C2410的系統(tǒng)硬件設(shè)計如果端口配置為輸出口,數(shù)據(jù)可以寫入到端口數(shù)據(jù)寄存器(PnDAT)的相應(yīng)位中;如果將端口配置為輸入口,則可以從端口數(shù)據(jù)寄存器(PnDAT)的相應(yīng)位中讀出數(shù)據(jù)。端口上拉寄存器用于控制每組端口的上拉電阻為使能/不使能。如果相應(yīng)位設(shè)置為0,則表示該引腳的上拉電阻使能;為1,則表示該引腳的上拉電阻不使能。如果使能了端口上拉寄存器,則不論引腳配置為哪種功能(輸入、輸出、DATAn、EINTn等),上拉電阻都會起作用。5.2.1
S3C2410A的I/O口工作原理1第5章基于S3C2410的系統(tǒng)硬件設(shè)計雜項(xiàng)控制寄存器用于控制數(shù)據(jù)端口的上拉電阻、高阻狀態(tài)、USB
Pad和CLKOUT的選擇。24個外部中斷通過不同的信號方式被請求。EXTINTn寄存器用于配置這些信號對于外部中斷請求采用的是低電平觸發(fā)、高電平觸發(fā)、下降沿觸發(fā)、上升沿觸發(fā)還是雙邊沿觸發(fā)。有8個外部中斷有數(shù)字濾波器。僅16
EINT引腳端(EINT[15:0])用來作為喚醒源。所有GPIO寄存器的值在掉電模式下都會被保存。外部中斷屏蔽寄存器EINTMASK不能阻止從掉電模式喚醒,但是如果EINTMASK正在屏蔽的是EINT[15:4]中的某位,則可以實(shí)現(xiàn)喚醒,不過寄存器SRCPND的位EINT4和EINT8
23在剛剛喚醒后不能設(shè)置為1。相關(guān)寄存器的設(shè)置分別描述如下:5.2.1
S3C2410A的I/O口工作原理1第5章基于S3C2410的系統(tǒng)硬件設(shè)計寄存器地址讀/寫描
述復(fù)位值GPACON0x56000000R/W配置端口A引腳端,使用位[22:0]。0:輸出引腳端1:第2功能0x7FFFFFGPADAT0x56000004R/W端口A數(shù)據(jù)寄存器,使用位[22:0]未定義保留0x56000008–保留未定義保留0x5600000C–保留未定義端口A控制寄存器5.2.1
S3C2410A的I/O口工作原理1第5章基于S3C2410的系統(tǒng)硬件設(shè)計1寄存器地址讀/寫描
述復(fù)位值GPBCON0x56000010R/W配置端口B引腳端,使用位[21:0],分別對端口B的11個引腳端進(jìn)行配置。00:輸入;01:輸出;10:第2功能;11:保留0x0GPBDAT0x56000014R/W端口B數(shù)據(jù)寄存器,使用位[10:0]未定義GPBUP0x56000018R/W端口B上拉電阻禁止寄存器,使用位[10:0]。0:使能;1:禁止0x0保留0x5600001C–保留未定義端口B控制寄存器5.2.1
S3C2410A的I/O口工作原理第5章基于S3C2410的系統(tǒng)硬件設(shè)計1寄存器地址讀/寫描述復(fù)位值GPCCON0x56000020R/W配置端口C引腳端,使用位[31:0],分別對端口C的16個引腳端進(jìn)行配置。00:輸入;01:輸出;10:第2功能;11:保留0x0GPCDAT0x56000024R/W端口C數(shù)據(jù)寄存器,使用位[15:0]未定義GPCUP0x56000028R/W端口C上拉電阻不使能寄存器,使用位[15:0]。0:使能;1:禁止0x0保留0x5600002C–保留未定義端口C控制寄存器5.2.1
S3C2410A的I/O口工作原理寄存器地址讀/寫描述復(fù)位值GPDCON0x56000030R/W配置端口D引腳端,使用位[31:0],分別對端口D的16個引腳端進(jìn)行配置。00:輸入;01:輸出;10:第2功能;11:保留/第3功能0x0GPDDAT0x56000034R/W端口D數(shù)據(jù)寄存器,使用位[15:0]未定義GPDUP0x56000038R/W端口D上拉電阻不使能寄存器,使用位[15:0]。0:使能;1:不使能0xF000保留0x5600003C–保留
1未定義第5章基于S3C2410的系統(tǒng)硬件設(shè)計5.2.1
S3C2410A的I/O口工作原理端口D控制寄存器第5章基于S3C2410的系統(tǒng)硬件設(shè)計1寄存器地址讀/寫描述復(fù)位值GPECON0x56000040R/W配置端口E引腳端,使用位[31:0],分別對端口E的16個引腳端進(jìn)行配置。00:輸入;01:輸出;10:第2功能;11:保留/第3功能0x0GPEDAT0x56000044R/W端口E數(shù)據(jù)寄存器,使用位[15:0]未定義GPEUP0x56000048R/W端口E上拉電阻不使能寄存器,使用位[15:0]。0:使能;1:不使能0x0保留0x5600004C–保留未定義5.2.1
S3C2410A的I/O口工作原理端口E控制寄存器第5章基于S3C2410的系統(tǒng)硬件設(shè)計1寄存器地址讀/寫描述復(fù)位值GPFCON0x56000050R/W配置端口F引腳端,使用位[15:0],分別對端口F的8個引腳端進(jìn)行配置。00:輸入;01:輸出;10:第2功能;11:保留0x0GPFDAT0x56000054R/W端口F數(shù)據(jù)寄存器,使用位[7:0]未定義GPFUP0x56000058R/W端口F上拉電阻不使能寄存器,使用位[7:0]。
0:使能;1:不使能0x0保留0x5600005C–保留未定義5.2.1
S3C2410A的I/O口工作原理端口F控制寄存器第5章基于S3C2410的系統(tǒng)硬件設(shè)計1寄存器地址讀/寫描
述復(fù)位值GPGCON0x56000060R/W配置端口G引腳端,使用位[31:0],分別對端口G的16個引腳端進(jìn)行配置。00:輸入;01:輸出;10:第2功能;11:保留/第3功能0x0GPGDAT0x56000064R/W端口G數(shù)據(jù)寄存器,使用位[15:0]未定義GPGUP0x56000068R/W端口G上拉電阻不使能寄存器,使用位[15:0]。0:使能;1:不使能0xF800保留0x5600006C–保留未定義5.2.1
S3C2410A的I/O口工作原理端口G控制寄存器第5章基于S3C2410的系統(tǒng)硬件設(shè)計1寄存器地址讀/寫描述復(fù)位值GPHCON0x56000070R/W配置端口H引腳端,使用位[21:0],分別對端口H的11個引腳端進(jìn)行配置。00:輸入;01:輸出;10:第2功能;11:保留/第3功能0x0GPHDAT0x56000074R/W端口H數(shù)據(jù)寄存器,使用位[10:0]未定義GPHUP0x56000078R/W端口H上拉電阻不使能寄存器,使用位[10:0]。0:使能;1:不使能0x0保留0x5600007C–保留未定義端口H控制寄存器5.2.1
S3C2410A的I/O口工作原理第5章基于S3C2410的系統(tǒng)硬件設(shè)計1寄存器地址讀/寫描述復(fù)位值MISCCR0x56000080R/W控制數(shù)據(jù)端口的上拉電阻、高阻狀態(tài)、USB
Pad和CLKOUT的選擇0x103305.2.1
S3C2410A的I/O口工作原理雜項(xiàng)控制寄存器寄存器地址讀/寫描述復(fù)位值DCLKCON0x56000084R/WDCLK0/1控制,位[27:16]控制DCLK1,位[11:0]控制DCLK00x0DCLK控制寄存器第5章基于S3C2410的系統(tǒng)硬件設(shè)計1寄存器地址讀/寫描述復(fù)位值EXTINT00x56000088R/W外部中斷控制寄存器0,使用位[30:0],分別對EINT7~EINT0觸發(fā)信號進(jìn)行配置。000:低電平觸發(fā);001:高電平觸發(fā);01x:下降沿觸發(fā);10x:上升沿觸發(fā);11x:雙邊沿觸發(fā)0x0EXTINT10x5600008CR/W外部中斷控制寄存器1,使用位[30:0],分別對EINT15~EINT8觸發(fā)信號進(jìn)行配置。000:低電平觸發(fā);001:高電平觸發(fā);01x:下降沿觸發(fā);10x:上升沿觸發(fā);11x:雙邊沿觸發(fā)0x05.2.1
S3C2410A的I/O口工作原理外部中斷控制寄存器第5章基于S3C2410的系統(tǒng)硬件設(shè)計1EXTINT20x56000090R/W外部中斷控制寄存器2,使用位[30:0],分別對EINT23~EINT16觸發(fā)信號進(jìn)行配置。000:低電平觸發(fā);001:高電平觸發(fā);01x:下降沿觸發(fā);10x:上升沿觸發(fā);11x:雙邊沿觸發(fā)。位31為EINT23濾波器使能控制,1:使能;0:不使能0x05.2.1
S3C2410A的I/O口工作原理外部中斷控制寄存器(續(xù))第5章基于S3C2410的系統(tǒng)硬件設(shè)計1寄存器地址讀/寫描
述復(fù)位值EINTFLT00x56000094R/W保留EINTFLT10x56000098R/W保留EINTFLT20x5600009CR/W外部中斷控制寄存器
2,控制EINT19~EINT16的濾波器時鐘和帶寬0x0EINTFLT30x56000A0R/W外部中斷控制寄存器
3,控制EINT23~EINT20的濾波器時鐘和帶寬0x05.2.1
S3C2410A的I/O口工作原理外部中斷濾波寄存器第5章基于S3C2410的系統(tǒng)硬件設(shè)計1寄存器地址讀/寫描述復(fù)位值EINTMASK0x560000A4R/W外部中斷屏蔽寄存器,使用位[23:4]控制EINT23~EINT4中斷屏蔽。0:使能中斷;1:屏蔽中斷0x0外部中斷屏蔽寄存器5.2.1
S3C2410A的I/O口工作原理第5章基于S3C2410的系統(tǒng)硬件設(shè)計1寄存器地址讀/寫描述復(fù)位值EINTPEND0x560000A8R/W使用位[23:4]分別EINT23~EINT4設(shè)置是否請求中斷掛起。0:不請求掛起;1:請求掛起0x0外部中斷掛起寄存器5.2.1
S3C2410A的I/O口工作原理第5章基于S3C2410的系統(tǒng)硬件設(shè)計1寄存器地址讀/寫描
述復(fù)位值GSTATUS00x560000ACR外部引腳端狀態(tài)UndefinedGSTATUS10x560000B0R芯片ID0x32410000GSTATUS20x560000B4R/W復(fù)位狀態(tài)0x1GSTATUS30x560000B8R/WInfrom寄存器,可被復(fù)位
nRESET和看門狗定時器
清零0x0GSTATUS40x560000BCR/WInfrom寄存器,可以利用nRESET和看門狗定時器清零0x0通用狀態(tài)寄存器5.2.1
S3C2410A的I/O口工作原理第5章基于S3C2410的系統(tǒng)硬件設(shè)計5.2.2
I/O口編程實(shí)例舉例:通過對G口的操作控制CPU板左下角的LED1和LED2實(shí)現(xiàn)輪流閃爍。void
Main(void){int
flag,
i;Target_Init();
//進(jìn)行硬件初始化操作,包括對I/O口的初始化操作for(;;){if(flag==0){for(i=0;i<1000000;i++);//延時rGPGCON=rGPGCON
&
0xfff0ffff
|
0x00050000;//配置第8、第9位為輸出引腳
rGPGDAT=rGPGDAT
&
0xeff
|
0x200;//第8位輸出為低電平//第9位輸出高電平for(i=0;i<10000000;i++);//延時
flag=1;}else
{for(i=0;i<1000000;i++);//延時rGPGCON=rGPGCON
&
0xfff0ffff
|
0x00050000;//配置第8、第9位為輸出引腳
rGPGDAT=rGPGDAT
&
0xdff
|
0x100;//第8位輸出為高電平//第9位輸出低電平for(i=0;i<1000000;i++);//延時
flag=0;}}}1第5章基于S3C2410的系統(tǒng)硬件設(shè)計主要內(nèi)容132S3C2410簡介I/O口中斷A/D接口DMAUART6789
觸摸屏10111LCDUSB設(shè)備的數(shù)據(jù)收發(fā)音頻錄放鍵盤和LED控制第5章基于S3C2410的系統(tǒng)硬件設(shè)計5.3.1
ARM的中斷原理1ARM系統(tǒng)包括兩類中斷:一是IRQ中斷,一是FIQ中斷。處理中斷的步驟如下:·(1)保存現(xiàn)場。保存當(dāng)前的PC值到R14,保存當(dāng)前的程序運(yùn)行狀態(tài)到SPSR?!?2)模式切換。根據(jù)發(fā)生的中斷類型,進(jìn)入IRQ模式或FIQ模式?!?3)獲取中斷源。以異常向量表保存在低地址處為例,若是IRQ中斷,則PC指針跳到0x18處;若是FIQ中斷,則跳到0x1C處。IRQ或FIQ的異常向量地址處一般保存的是中斷服務(wù)子程序的地址,所以接下來PC指針跳入中斷服務(wù)子程序處理中斷?!?4)中斷處理。為各種中斷定義不同的優(yōu)先級別,并為每一個中斷設(shè)置一個中斷標(biāo)志位。當(dāng)發(fā)生中斷時,通過判斷中斷優(yōu)先級以及訪問中斷標(biāo)志位的狀態(tài)來識別到底哪一個中斷發(fā)生了。進(jìn)而調(diào)用相應(yīng)的函數(shù)進(jìn)行中斷處理?!?5)中斷返回,恢復(fù)現(xiàn)場。當(dāng)完成中斷服務(wù)子程序后,將SPSR中保存的程序運(yùn)行狀態(tài)恢復(fù)到CPSR中,R14中保存的被中斷程序的地址恢復(fù)到PC中,進(jìn)而繼續(xù)執(zhí)行被中斷的程序。第5章基于S3C2410的系統(tǒng)硬件設(shè)計5.3.2
S3C2410A的中斷控制器中斷控制器使用的寄存器1第5章基于S3C2410的系統(tǒng)硬件設(shè)計·
優(yōu)先級生成模塊1第5章基于S3C2410的系統(tǒng)硬件設(shè)計5.3.3中斷編程實(shí)例舉例:通過定時器1中斷控制CPU板左下角的LED1和LED2實(shí)現(xiàn)輪流閃爍。11.對定時器1初始化,并設(shè)定定時器的中斷時間為1秒。
void
Timer1_init(void){rGPGCON=rGPGCON
&
0xfff0ffff
|
0x00050000;//配置GPG口為輸出rGPGDAT
=
rGPGDAT
|0x300;rTCFG0rTCFG1=
255;=
0
<<
4;//在pclk=50MHZ下,1秒鐘的記數(shù)值rTCNTB1=50000000/4/256=48828;rTCNTB1=48828;rTCMPB1
=
0x00;rTCONrTCON=(1<<11)|(1<<9)|(0<<8);//禁用定時器1,手動加=(1<<11)|(0<<9)|(1<<8);//啟動定時器1,自動裝}第5章基于S3C2410的系統(tǒng)硬件設(shè)計舉例:通過定時器1中斷控制CPU板左下角的LED1和LED2實(shí)現(xiàn)輪流閃爍。1為了使CPU響應(yīng)中斷,在中斷服務(wù)子程序執(zhí)行之前,必須打開ARM920T的CPSR中的I位,以及相應(yīng)的中斷屏蔽寄存器中的位。void
Timer1INT_Init(void){//定時器接口使能if((rINTPND
&
BIT_TIMER1)){rSRCPND
|=
BIT_TIMER1;}//寫入定時器1中斷服務(wù)子程序的入口地址pISR_TIMER1
=
(int)Timer1_ISR;rINTMSK
&=
~(BIT_TIMER1);
//開中斷;}等待定時器中斷,通過一個死循環(huán)如“while(1);”實(shí)現(xiàn)等待過程。第5章基于S3C2410的系統(tǒng)硬件設(shè)計舉例:通過定時器1中斷控制CPU板左下角的LED1和LED2實(shí)現(xiàn)輪流閃爍。14.根據(jù)設(shè)置的定時時間,將產(chǎn)生定時器中斷。定時器中斷發(fā)生后,首先進(jìn)行現(xiàn)場保護(hù),接下來轉(zhuǎn)入中斷的入口代碼處執(zhí)行,該部分代碼通常使用匯編語言書寫。在執(zhí)行中斷服務(wù)程序之前,首先要確保HandleIRQ地址處保存中斷分發(fā)程序
IsrIRQ的入口地址。ldrldrstrr0,=HandleIRQr1,=IsrIRQr1,[r0]接下來將執(zhí)行IsrIRQ中斷分發(fā)程序,具體代碼如下:IsrIRQ;為保存PC預(yù)留堆??臻g;加載INTOFFSET寄存器值到r9;加載中斷向量表的基地址到r8;獲得中斷向量sub
sp,sp,#4stmfd
sp!,{r8-r9}ldr
r9,=INTOFFSETldr
r9,[r9]ldr
r8,=HandleEINT0add
r8,r8,r9,lsl
#2ldrstrldmfdr8,[r8]r8,[sp,#8]sp!,{r8-r9,pc};加載中斷服務(wù)程序的入口地址到r8;保存sp,將其作為新的pc值;跳轉(zhuǎn)到中斷服務(wù)子程序執(zhí)行第5章基于S3C2410的系統(tǒng)硬件設(shè)計舉例:通過定時器1中斷控制CPU板左下角的LED1和LED2實(shí)現(xiàn)輪流閃爍。1執(zhí)行中斷服務(wù)子程序,該子程序?qū)崿F(xiàn)將LED1和LED2燈熄滅或點(diǎn)亮,從現(xiàn)象中看到LED1和LED2燈閃爍一次,則說明定時器發(fā)生了一次中斷。int
flag;void
irq Timer1
ISR(
void
){if
(flag
==
0)
{rGPGDAT
=
rGPGDAT
&
0xeff
|
0x200;flag
=
1;}else{rGPGDAT
=
rGPGDAT
&
0xdff
|
0x100;flag
=
0;}rSRCPND
|=
BIT_TIMER1;rINTPND
|=
BIT_TIMER1;}從中斷返回,恢復(fù)現(xiàn)場,跳轉(zhuǎn)到被中斷的主程序繼續(xù)執(zhí)行,等待下一次中斷的到來。第5章基于S3C2410的系統(tǒng)硬件設(shè)計主要內(nèi)容132S3C2410簡介I/O口中斷A/D接口DMAUART6789
觸摸屏10111LCDUSB設(shè)備的數(shù)據(jù)收發(fā)音頻錄放鍵盤和LED控制第5章基于S3C2410的系統(tǒng)硬件設(shè)計5.4.1
DMA工作原理1所謂DMA方式,即直接存儲器存取(Direct
Memory
Acess),是指存儲器與外設(shè)在DMA控制器的控制下,直接傳送數(shù)據(jù)而不通過CPU,傳輸速率主要取決于存儲器存取速度。采用DMA方式進(jìn)行數(shù)據(jù)傳輸?shù)木唧w過程如下:外設(shè)向DMA控制器發(fā)出DMA請求;DMA控制器向CPU發(fā)出總線請求信號;CPU執(zhí)行完現(xiàn)行的總線周期后,向DMA控制器發(fā)出響應(yīng)請求的回答信號;CPU將控制總線、地址總線及數(shù)據(jù)總線讓出,由DMA控制器進(jìn)行控制;DMA控制器向外部設(shè)備發(fā)出DMA請求回答信號;進(jìn)行DMA傳送;數(shù)據(jù)傳送完畢,DMA控制器通過中斷請求線發(fā)出中斷信號。CPU在接收到中斷信號后,轉(zhuǎn)入中斷處理程序進(jìn)行后續(xù)處理。中斷處理結(jié)束后,CPU返回到被中斷的程序繼續(xù)執(zhí)行。CPU重新獲得總線控制權(quán)。第5章基于S3C2410的系統(tǒng)硬件設(shè)計5.4.2
S3C2410A的DMA控制器1S3C2410A支持位于系統(tǒng)總線和外圍總線之間的具有4個通道的DMA控制器。以3種狀態(tài)的FSM來描述DMA的操作過程如下:狀態(tài)1:作為初始狀態(tài),DMA等待一個DMA請求。如果出現(xiàn)DMA請求,進(jìn)入狀態(tài)2。在這種狀態(tài)下,DMA
ACK和INT
REQ為0。狀態(tài)2:在這種狀態(tài)下,DMA
ACK變?yōu)?,并且從DCON[19:0]寄存器向計數(shù)器(CURR_TC)加載計數(shù)值。注意此時DMA
ACK一直是1直到以后被清零。狀態(tài)3:在這種狀態(tài)下,子FSM處理DMA的原子操作被初始化。子FSM從源地址讀取數(shù)據(jù),并將其寫入目標(biāo)地址。這一操作被重復(fù)執(zhí)行,直到在整體
服務(wù)模式下計數(shù)器(CURR_TC)變?yōu)?;這一操作在單個服務(wù)模式下則只執(zhí)行一次。當(dāng)子FSM每完成一次原子操作,主FSM將CURR_TC進(jìn)行一次向下計
數(shù)。另外,當(dāng)CURR_TC變?yōu)?時,主FSM將INT
REQ信號置1,并將DCON寄存器的中斷設(shè)置位[29]置1。除此以外,如果發(fā)生以下情況,則對DMA
ACK清零:√在整體服務(wù)模式下CURR_TC變?yōu)?;√在單個復(fù)位模式下完成原子操作。第5章基于S3C2410的系統(tǒng)硬件設(shè)計要進(jìn)行DMA操作,首先要對S3C2410A的相關(guān)寄存器進(jìn)行正確配置。每個DMA通道有9個控制寄存器,因此對于4通道的DMA控制器來說總共有36個寄存器。其中每個DMA通道的9個控制寄存器中有6個用于控制DMA傳輸,另外3個用于監(jiān)控DMA控制器的狀態(tài)。·DMA初始源寄存器(DISRC)·DMA初始源控制寄存器(DISRCC)·DMA初始目標(biāo)地址寄存器(DIDST)·DMA初始目標(biāo)控制寄存器(DIDSTC)·DMA控制寄存器(DCON)·DMA狀態(tài)寄存器(DSTAT)·DMA當(dāng)前源寄存器(DCSRC)·DMA當(dāng)前目標(biāo)寄存器(DCDST)·DMA屏蔽觸發(fā)寄存器(DMASKTRIG)·
DMA操作的相關(guān)寄存器1第5章基于S3C2410的系統(tǒng)硬件設(shè)計5.4.3
DMA編程實(shí)例舉例:使用DMA方式實(shí)現(xiàn)從存儲器到串口0進(jìn)行數(shù)據(jù)發(fā)送。#define#define1SEND_DATASEND_ADDR(*(volatile
unsigned
char
*)
0x30200000)((volatile
unsigned
char
*)
0x30200000)//待發(fā)送數(shù)據(jù)的起始地址void
Main(void){volatile
unsigned
char*
p
=
SEND_ADDR;int
i;Target_Init();Delay(1000);SEND_DATA=0x41;//初始化要發(fā)送的數(shù)據(jù)
for(i=0;i<128;i++){*p++
=
0x41
+
i;}rUCON0=rUCON0
&
0xff3
|
0x8;//Uart設(shè)置成DMA形式
rDISRC0=(U32)(SEND_ADDR);//DMA0初始化rDISRCC0=(0<<1)|(0<<0);//源=AHB,傳送后地址增加rDIDST0=(U32)UTXH0;
//發(fā)送FIFO緩沖區(qū)地址
rDIDSTC0=(1<<1)|(1<<0);//目標(biāo)=APB,地址固定//設(shè)置DMA0控制寄存器:握手模式,與APB同步,使能中斷,單位傳輸,單個模式,目標(biāo)=UART0,//硬件請求模式,不自動加載,半字,計數(shù)器初值=50rDCON0=(0<<31)|(0<<30)|(1<<29)|(0<<28)|(0<<27)|(1<<24)|(1<<23)|(1<<22)|(0<<20)|(50);rDMASKTRIG0=(1<<1);
//打開DMA通道0while(1);}第5章基于S3C2410的系統(tǒng)硬件設(shè)計主要內(nèi)容132S3C2410簡介I/O口中斷A/D接口DMAUART6789
觸摸屏10111LCDUSB設(shè)備的數(shù)據(jù)收發(fā)音頻錄放鍵盤和LED控制第5章基于S3C2410的系統(tǒng)硬件設(shè)計5.5.1
UART的工作原理UART(Universal
AsynchronousReceiverandTransmitter,通用異步收發(fā)器)是廣泛使用的串行數(shù)據(jù)傳輸方式。RS232C是通用的串行數(shù)據(jù)傳輸接口標(biāo)準(zhǔn),其DB9引腳定義如下:1第5章基于S3C2410的系統(tǒng)硬件設(shè)計·
RS-232C接口的基本連接方式簡單連接完全連接1第5章基于S3C2410的系統(tǒng)硬件設(shè)計·
UART的功能和組成UART的主要功能是將數(shù)據(jù)以字符為單位,按照先低位后高位的順序進(jìn)行逐位傳輸。根據(jù)發(fā)送方和接收方是否使用同一個時鐘,通訊方式分成同步和異步兩種。UART主要由數(shù)據(jù)線接口、控制邏輯、配置寄存器、波特率發(fā)生器、發(fā)送部分和接收部分組成。UART以字符為單位進(jìn)行數(shù)據(jù)傳輸,每個字符的傳輸格式如下:1第5章基于S3C2410的系統(tǒng)硬件設(shè)計5.5.2
S3C2410A的UARTS3C2410A的UART提供3個獨(dú)立的異步串行I/O口(SIO),它們都可以運(yùn)行于中斷模式或DMA模式。S3C2410A的每個UART由波特率發(fā)生器、發(fā)送器、接收器以及
控制單元組成。1第5章基于S3C2410的系統(tǒng)硬件設(shè)計·
與UART相關(guān)的操作1·1.?dāng)?shù)據(jù)發(fā)送·2.?dāng)?shù)據(jù)接收·3.自動流控制(Auto
Flow
Control,AFC)·4.RS-232接口·5.中斷/DMA請求發(fā)生·6.波特率發(fā)生波特率時鐘通過把源時鐘除以16再除以一個16位的因子到,該16位的因子可以在UART波特率因子寄存器(UBRDIVn)中指定。UBRDIVn=(int)(PCLK/(bps×16))-1UBRDIVn=(int)(UEXTCLK/(bps×16))-1·7.回送模式·8.紅外模式第5章基于S3C2410的系統(tǒng)硬件設(shè)計·
與UART相關(guān)的寄存器1·UART行控制寄存器(ULCONn)·UART控制寄存器(UCONn)·UART
FIFO控制寄存器(UFCONn)·UART
Modem控制寄存器(UMCONn)·UART
TX/RX狀態(tài)寄存器(UTRSTATn)·UART錯誤狀態(tài)寄存器(UERSTATn)·UART
FIFO狀態(tài)寄存器(UFSTATn)·UART
MODEM狀態(tài)寄存器(UMSTATn)·UART發(fā)送緩沖寄存器(UTXHn)·UART接收緩沖寄存器(URXHn)·UART波特率因子寄存器(UBRDIVn)第5章基于S3C2410的系統(tǒng)硬件設(shè)計5.5.3
UART編程實(shí)例舉例:從UART0接收數(shù)據(jù),然后分別從UART0和UART1發(fā)送出去。1.定義與UART相關(guān)的寄存器。#definerULCON0(*(volatileunsigned*)0x50000000)//UART0行控制寄存器#definerUCON0(*(volatileunsigned*)0x50000004)//UART0控制寄存器#definerUFCON0(*(volatileunsigned*)0x50000008)//UART0FIFO控制寄存器#definerUMCON0(*(volatileunsigned*)0x5000000c)//UART0Modem控制寄存器#definerUTRSTAT0(*(volatileunsigned*)0x50000010)//UART0Tx/Rx狀態(tài)寄存器#definerUERSTAT0(*(volatileunsigned*)0x50000014)//UART0Rx錯誤狀態(tài)寄存器#definerUFSTAT0(*(volatileunsigned*)0x50000018)//UART0FIFO狀態(tài)寄存器#definerUMSTAT0(*(volatileunsigned*)0x5000001c)//UART0Modem狀態(tài)寄存器#define…
…rUBRDIV0(*(volatileunsigned*)0x50000028)//UART0波特率因子寄存器1第5章基于S3C2410的系統(tǒng)硬件設(shè)計2.對串口進(jìn)行初始化操作。參數(shù)pclk為時鐘源的時鐘頻率,
band為數(shù)據(jù)傳輸?shù)牟ㄌ芈?。舉例:從UART0接收數(shù)據(jù),然后分別從UART0和UART1發(fā)送出去。void
Uart_Init(int
pclk,int
baud){int
i;if(pclk
==
0)pclk
=
PCLK;1//UART0
FIFO控制寄存器,F(xiàn)IFO禁止//UART1
FIFO控制寄存器,F(xiàn)IFO禁止//UART2
FIFO控制寄存器,F(xiàn)IFO禁止//UART0
MODEM控制寄存器,AFC禁止//UART1
MODEM控制寄存器,AFC禁止rUFCON0
=
0x0;rUFCON1
=
0x0;rUFCON2
=
0x0;rUMCON0
=
0x0;rUMCON1
=
0x0;//UART0rULCON0
=
0x3;rUCON0
=
0x245;//行控制寄存器:正常模式,無奇偶校驗(yàn),1位停止位,8位數(shù)據(jù)位。//控制寄存器rUBRDIV0=((int)(pclk/16./baud+0.5)-1);
//波特率因子寄存器…
…}第5章基于S3C2410的系統(tǒng)硬件設(shè)計舉例:從UART0接收數(shù)據(jù),然后分別從UART0和UART1發(fā)送出去。3.使用串口發(fā)送數(shù)據(jù)。其中whichUart為全局變量,指示當(dāng)前選擇的UART通道,使用串口發(fā)送一個字節(jié)的代碼如下:void
Uart_SendByte(int
data){if(whichUart==0){if(data=="\n"){while(!(rUTRSTAT0
&
0x2));1//延時,因?yàn)槌壗K端速度較慢Delay(10);WrUTXH0("\r");//等待直到發(fā)送狀態(tài)就緒}while(!(rUTRSTAT0
&
0x2));Delay(10);WrUTXH0(data);}else
if(whichUart==1){
…
…
}else
if(whichUart==2){
…
…
}}第5章基于S3C2410的系統(tǒng)硬件設(shè)計舉例:從UART0接收數(shù)據(jù),然后分別從UART0和UART1發(fā)送出去。4.使用串口接收數(shù)據(jù)。如果沒有接收到字符則返回0。//UART0接收到數(shù)據(jù)1char
Uart_GetKey(void){if(whichUart==0){if(rUTRSTAT0
&
0x1)return
RdURXH0();elsereturn
0;}else
if(whichUart==1){
…
…
}else
if(whichUart==2){
…
…
}else
return
0;}第5章基于S3C2410的系統(tǒng)硬件設(shè)計舉例:從UART0接收數(shù)據(jù),然后分別從UART0和UART1發(fā)送出去。5.書寫主函數(shù)。實(shí)現(xiàn)的功能為從UART0接收字符,然后將接收到的字符再分別從UART0和UART1發(fā)送出去,其中Uart_Select(n)用于選擇使用的傳輸通道為UARTn。void
Main(void){char
data;Target_Init();while(1){1//接收字符data
=
Uart_GetKey();if
(data
!=
0x0){Uart_Select(0);//從UART0發(fā)送出去Uart_Printf("key=%c\n",data);Uart_Select(1);
//從UART1發(fā)送出去
Uart_Printf("key=%c\n",data);Uart_Select(0);}}}第5章基于S3C2410的系統(tǒng)硬件設(shè)計主要內(nèi)容132S3C2410簡介I/O口中斷A/D接口DMAUART6789
觸摸屏10111LCDUSB設(shè)備的數(shù)據(jù)收發(fā)音頻錄放鍵盤和LED控制第5章基于S3C2410的系統(tǒng)硬件設(shè)計5.6.1
A/D接口原理1A/D轉(zhuǎn)換器是模擬信號和CPU之間聯(lián)系的接口,它將連續(xù)變化的模擬信號轉(zhuǎn)換為數(shù)字信號,以供計算機(jī)和數(shù)字系統(tǒng)進(jìn)行分析、處理、存儲、控制和顯示。按照轉(zhuǎn)換速度、精度、功能以及接口等因素,常用的A/D轉(zhuǎn)換器有以下兩種:·雙積分型的A/D轉(zhuǎn)換器·逐次逼近型的A/D轉(zhuǎn)換器第5章基于S3C2410的系統(tǒng)硬件設(shè)計5.6.2
S3C2410A的A/D轉(zhuǎn)換器1S3C2410A的A/D轉(zhuǎn)換器包含一個8通道的模擬輸入轉(zhuǎn)換器,可以將模擬輸入信號轉(zhuǎn)換成10位數(shù)字編碼。在AD轉(zhuǎn)換時鐘為2.5MHz時,其最大轉(zhuǎn)換率為500KSPS,輸入電壓范圍是0~3.3V。與A/D轉(zhuǎn)換相關(guān)的寄存器:·ADC控制寄存器(ADCCON)·ADC觸摸屏控制寄存器(ADCTSC)·ADC啟動延時寄存器(ADCDLY)·ADC轉(zhuǎn)換數(shù)據(jù)寄存器(ADCDATn)第5章基于S3C2410的系統(tǒng)硬件設(shè)計5.6.3
A/D接口編程實(shí)例舉例:從A/D轉(zhuǎn)換器的通道0獲取模擬數(shù)據(jù),并將轉(zhuǎn)換后的數(shù)字量以波形的形式在LCD上顯示。1.定義與A/D轉(zhuǎn)換相關(guān)的寄存器。#define
rADCCON#define
rADCTSC#define
rADCDLY(*(volatile
unsigned
*)0x58000000)//ADC控制寄存器
(*(volatile
unsigned
*)0x58000004)//ADC觸摸屏控制寄存器
(*(volatile
unsigned
*)0x58000008)//ADC啟動或間隔延時寄存器#define
rADCDAT0#define
rADCDAT1(*(volatile
unsigned
*)0x5800000c)//ADC轉(zhuǎn)換數(shù)據(jù)寄存器0(*(volatile
unsigned
*)0x58000010)//ADC轉(zhuǎn)換數(shù)據(jù)寄存器12.對A/D轉(zhuǎn)換器進(jìn)行初始化。這里的參數(shù)ch表示選擇的通道號。void
AD_Init(unsigned
char
ch){1=
100;=
0;//ADC啟動或間隔延時//選擇ADC模式rADCDLYrADCTSCrADCCON=
(1<<14)|(49<<6)|(ch<<3)|(0<<2)|(0<<1)|(0);//設(shè)置ADC控制寄存器}第5章基于S3C2410的系統(tǒng)硬件設(shè)計舉例:從A/D轉(zhuǎn)換器的通道0獲取模擬數(shù)據(jù),并將轉(zhuǎn)換后的數(shù)字量以波形的形式在LCD上顯示。3.獲取A/D的轉(zhuǎn)換值。參數(shù)ch為選用的通道號。int
Get_AD(unsigned
char
ch){int
i;int
val=0;1if(ch>7)
return
0;for(i=0;i<16;i++){rADCCON
|=
0x1;//通道不能大于7//為轉(zhuǎn)換準(zhǔn)確,轉(zhuǎn)換16次//啟動A/D轉(zhuǎn)換rADCCON
=
rADCCON
&
0xffc7
|
(ch<<3);//避免第一個標(biāo)志出錯//避免第二個標(biāo)志出錯while
(rADCCON
&
0x1);while
(!(rADCCON
&
0x8000));val
+=
(rADCDAT0
&
0x03ff);Delay(10);}return(val>>4);
//為轉(zhuǎn)換準(zhǔn)確,除以16取均值}4.書寫主函數(shù)。實(shí)現(xiàn)將轉(zhuǎn)換后的數(shù)據(jù)在LCD上以波形的方式顯示。第5章基于S3C2410的系統(tǒng)硬件設(shè)計主要內(nèi)容132S3C2410簡介I/O口中斷A/D接口DMAUART6789
觸摸屏10111LCDUSB設(shè)備的數(shù)據(jù)收發(fā)音頻錄放鍵盤和LED控制第5章基于S3C2410的系統(tǒng)硬件設(shè)計5.7.1鍵盤和LED的接口原理HA7279A是一片具有串行接口并可同時驅(qū)動8位共陰式數(shù)碼管或64只獨(dú)立LED的智能顯示驅(qū)動芯片。該芯片同時可連接多達(dá)64鍵的鍵盤矩陣,一片即可完成LED顯示及鍵盤接口的全部功能。HA7279A一共有28個引腳:RESET:復(fù)位端。通常,該端接+5V電源;DIG0~DIG7:8個LED管的位驅(qū)動輸出端;SA~SG:LED數(shù)碼管的A段~G段的輸出端;DP:小數(shù)點(diǎn)的驅(qū)動輸出端;RC:外接振蕩元件連接端。HD7279A與微處理器僅需4條接口線:√CS:片選信號(低電平有效);√DATA:串行數(shù)據(jù)端?!藽LK:數(shù)據(jù)串行傳送的同步時鐘輸入端,時鐘的上升沿表示數(shù)據(jù)有效。√KEY:按鍵信號輸出端。該端在無鍵按下時為高電平;而在有鍵按下時變?yōu)榈碗娖?,并一直保持到按鍵釋放為止。1第5章基于S3C2410的系統(tǒng)硬件設(shè)計·
HD7279A與S3C2410A的連接原理圖1第5章基于S3C2410的系統(tǒng)硬件設(shè)計5.7.2鍵盤和LED控制的編程實(shí)例舉例:通過按鍵來控制LED的顯示。1.鍵盤中斷的初始化void
KeyINT_Init(void){rGPFCON=(rGPFCON&0xF3FF)|(2<<10);rGPECON=(rGPECON&0xF3FFFFFF)|(0x01<<26);//設(shè)置GPE13為輸出位,模擬時鐘輸出rEXTINT0
&=0xff8fffff;//外部中斷5低電平有效if(rEINTPEND
&
0x20)
//清除外部中斷5的中斷掛起位
rEINTPEND
|=0x20;if
((rINTPND
&
BIT_EINT4_7)){rSRCPND
|=
BIT_EINT4_7;rINTPND
|=
BIT_EINT4_7;}1rINTMSK
&=
~(BIT_EINT4_7);//使用外部中斷4~7//外部中斷5使能rEINTMASK
&=
0xffffdf;pISR_EINT4_7
=
(int)Key_ISR;}第5章基于S3C2410的系統(tǒng)硬件設(shè)計舉例:通過按鍵來控制LED的顯示。2.書寫中斷服務(wù)子程序void
irq
Key
ISR(
void
){int
j;rINTMSK |=BIT_ALLMSK;
//關(guān)中斷if
(rEINTPEND
&
0x20){key_number
=
read7279(cmd_read);//讀鍵盤指令程序rINTMSK
&=
~(BIT_EINT4_7);switch(key_number){1case0x04
:key_number=0x08;break;case0x05
:key_number=0x09;break;case0x06
:key_number=0x0A;break;case0x07
:key_number=0x0B;break;case0x08
:key_number=0x04;break;case0x09
:key_number=0x05;break;case0x0A
:key_number=0x06;break;case0x0b
:key_number=0x07;break;default:
break;}Uart_Printf("key
is
%x
\n",
key_number);}rEINTPEND
|=
0x20;rSRCPND
|=
BIT_EINT4_7;rINTPND
|=
BIT_EINT4_7;}第5章基于S3C2410的系統(tǒng)硬件設(shè)計舉例:通過按鍵來控制LED的顯示。3.主程序的主要功能是根據(jù)按鍵鍵值,向
HD7279A發(fā)送不同的處理命令,程序結(jié)構(gòu)如下。void
Main(){char
p;Target_Init();//目標(biāo)初始化
while(1){switch(key_number){1case
0:send_byte(cmd_test);//測試鍵
break;//右移8位case
1:
for(p=0;p<8;p++){send_byte(0xA0);send_byte(0xC8+7);send_byte(p);long_delay();Delay(7000);}
break;//case
2到case14case
15://最右兩個數(shù)碼管上顯示15write7279(decode1+5,key_number/16*8);write7279(decode1+4,key_number
&0x0f);break;default:
break;}key_number
=
0xff;Delay(50);}}第5章基于S3C2410的系統(tǒng)硬件設(shè)計主要內(nèi)容132S3C2410簡介I/O口中斷A/D接口DMAUART6789
觸摸屏10111LCDUSB設(shè)備的數(shù)據(jù)收發(fā)音頻錄放鍵盤和LED控制第5章基于S3C2410的系統(tǒng)硬件設(shè)計5.8.1
LCD顯示原理1所謂LCD,是Liquid
Crystal
Display的縮寫,即液晶顯示器。LCD液晶顯示器主要有兩類:STN(Super
Twisted
Nematic,超扭曲向列型)和TFT(Thin
Film
Transistor,薄膜晶體管型)。對于S3C2410A的LCD控制器,同時支持STN和TFT顯示器。STN與TFT的主要區(qū)別在于:·從工作原理上看,STN主要是增大液晶分子的扭曲角,而TFT為每個像素點(diǎn)設(shè)置一個開關(guān)電路,做到完全單獨(dú)的控制每個像素點(diǎn);·從品質(zhì)上看,STN的亮度較暗,畫面的質(zhì)量較差,顏色不夠豐富,播放動畫時有拖尾現(xiàn)象,耗電量小,價格便宜;而TFT亮度高,畫面質(zhì)量高,顏色豐富,播放動畫時清晰,耗電量大,價格高。常用的LCD顯示模塊有兩種:一是帶有驅(qū)動電路的LCD顯示模塊,一是不帶驅(qū)動電路的LCD顯示屏。大部分ARM處理器中都集成了LCD控制器,所以對于采用ARM處理器的系統(tǒng),一般使用不帶驅(qū)動電路的LCD顯示屏。第5章基于S3C2410的系統(tǒng)硬件設(shè)計5.8.2
S3C2410A的LCD控制器S3C2410A中的LCD控制器可支持STN和TFT兩種液晶顯示屏。LCD控制器支持單色、4級、16級灰度LCD顯示,以及8位彩色、12位彩色LCD顯示。LCD控制器由REGBANK、LCDCDMA、VIDPRCS、TIMEGEN和LPC3600組成。1第5章基于S3C2410的系統(tǒng)硬件設(shè)計·
8位彩色LCD顯示原理1第5章基于S3C2410的系統(tǒng)硬件設(shè)計·
與LCD相關(guān)的寄存器1·LCD控制寄存器
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度二手車置換業(yè)務(wù)合同樣本4篇
- 二零二五年度代發(fā)工資與員工滿意度提升合同3篇
- 2025年滬科版八年級地理上冊月考試卷
- 統(tǒng)編版七年級語文上冊《5 秋天的懷念》-教學(xué)設(shè)計-2
- 2025年上教版九年級生物上冊階段測試試卷
- 2025年冀教新版八年級科學(xué)上冊階段測試試卷
- 二零二五版臨時勞動協(xié)議書:新能源項(xiàng)目臨時施工人員合作協(xié)議3篇
- 2025年滬科版九年級科學(xué)下冊月考試卷
- 頁巖氣資源利用-洞察分析
- 2025年滬科版七年級物理下冊月考試卷
- 諒解書(標(biāo)準(zhǔn)樣本)
- 2022年浙江省事業(yè)編制招聘考試《計算機(jī)專業(yè)基礎(chǔ)知識》真題試卷【1000題】
- 認(rèn)養(yǎng)一頭牛IPO上市招股書
- GB/T 3767-2016聲學(xué)聲壓法測定噪聲源聲功率級和聲能量級反射面上方近似自由場的工程法
- GB/T 23574-2009金屬切削機(jī)床油霧濃度的測量方法
- 西班牙語構(gòu)詞.前后綴
- 動物生理學(xué)-全套課件(上)
- 河北省衡水市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會明細(xì)
- DB32-T 2665-2014機(jī)動車維修費(fèi)用結(jié)算規(guī)范-(高清現(xiàn)行)
- 智能消防設(shè)備公司市場營銷方案
- 最新6000畝海帶筏式養(yǎng)殖投資建設(shè)項(xiàng)目可行性研究報告
評論
0/150
提交評論