




已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第四章 S3C2410A的I/O口從這一章開始,就進入了S3C2410A底層驅動程序開發(fā)的學習過程中了。在第一章已經(jīng)介紹了ARM系統(tǒng)開發(fā)的層級結構,本課程的內(nèi)容符合層次結構中的第二層底層驅動開發(fā),但是這里不包含啟動代碼的編寫和操作系統(tǒng)移植。一般來講ARM開發(fā)系統(tǒng)如廣州友善之臂的micro2440開發(fā)板,英貝特公司的開發(fā)板,在加上達盛公司的實驗系統(tǒng)等等,出廠時各類底層的相關驅動程序和應用的操作系統(tǒng)移植都已經(jīng)編寫測試完畢,其中ARM的啟動代碼是現(xiàn)成可以使用的,不需要重新編寫。另外,出廠時的底層驅動代碼都是可以直接使用的,這些代碼可以提供給使用者自學時參考,當然如果覺得這些代碼在結構上表達上都不盡如人意,讀者隨時都可以自行修改。達盛公司的實驗系統(tǒng)的底層驅動程序也是現(xiàn)成可以使用的,但是鑒于教學需要,本課程會引導讀者在理解底層硬件的基礎上對這些程序進行修改或者重寫編寫部分驅動程序,以便使讀者能夠熟練掌握S3C2410A底層的驅動開發(fā)。4.1 S3C2410A的GPIO1. S3C2410A CPU有117個多功能復用的I/O口,共分為8組。(1)16bit I/O端口為:Port C、Port D、Port E和Port G(2)11bit I/O端口為:Port B和Port H(3)23bit I/O端口為:Port A(4)8bit I/O端口為:Port F(5)在這里需要說明幾個問題: 端口的bit數(shù)是什么意思?例如,Port C為16bit I/O端口,即Port C共有16位,從Port C0到Port C15都可以應用。 多功能復用是什么意思?ARM7和ARM9這些CPU的I/O口都可以配置成不同的功能,也就是說這些端口可以作為普通的輸入輸出端口使用,也可以配置成UART使用,還可以配置成I2C、SPI和SSI等總線信號使用。(6)如何操作這些I/O端口?用配置和訪問S3C2410A的功能寄存器的方法可以操作S3C2410A的硬件資源。2. I/O端口的控制寄存器下面這些宏定義摘自頭文件2410ADDR.H,這些通過這些寄存器就可以控制S3C2410A的I/O端口了。還有一些功能寄存器在這里沒有列出,讀者可自行在2410ADDR.H這個文件中查找學習。/ I/O PORT #define rGPACON (*(volatile unsigned *)0x56000000) /Port A control#define rGPADAT (*(volatile unsigned *)0x56000004) /Port A data#define rGPBCON (*(volatile unsigned *)0x56000010) /Port B control#define rGPBDAT (*(volatile unsigned *)0x56000014) /Port B data#define rGPBUP (*(volatile unsigned *)0x56000018) /Pull-up control B#define rGPCCON (*(volatile unsigned *)0x56000020) /Port C control#define rGPCDAT (*(volatile unsigned *)0x56000024) /Port C data#define rGPCUP (*(volatile unsigned *)0x56000028) /Pull-up control C#define rGPDCON (*(volatile unsigned *)0x56000030) /Port D control#define rGPDDAT (*(volatile unsigned *)0x56000034) /Port D data#define rGPDUP (*(volatile unsigned *)0x56000038) /Pull-up control D#define rGPECON (*(volatile unsigned *)0x56000040) /Port E control#define rGPEDAT (*(volatile unsigned *)0x56000044) /Port E data#define rGPEUP (*(volatile unsigned *)0x56000048) /Pull-up control E#define rGPFCON (*(volatile unsigned *)0x56000050) /Port F control#define rGPFDAT (*(volatile unsigned *)0x56000054) /Port F data#define rGPFUP (*(volatile unsigned *)0x56000058) /Pull-up control F#define rGPGCON (*(volatile unsigned *)0x56000060) /Port G control#define rGPGDAT (*(volatile unsigned *)0x56000064) /Port G data#define rGPGUP (*(volatile unsigned *)0x56000068) /Pull-up control G#define rGPHCON (*(volatile unsigned *)0x56000070) /Port H control#define rGPHDAT (*(volatile unsigned *)0x56000074) /Port H data#define rGPHUP (*(volatile unsigned *)0x56000078) /Pull-up control H在這里,我們以Port G為例來說明如何對I/O端口進行控制。和Port G有關的寄存器有:#define rGPGCON (*(volatile unsigned *)0x56000060) /Port G control#define rGPGDAT (*(volatile unsigned *)0x56000064) /Port G data#define rGPGUP (*(volatile unsigned *)0x56000068) /Pull-up control GrGPGCON、rGPGDAT和rGPGUP為寄存器的名稱,0x56000060、0x56000064和0x56000068為寄存器在S3C2410A中的硬件地址。即用名稱來代替地址來操作。與寄存器描述相關的表格如下:表4.1說明: 地址0x5600006C為保留地址,其功能沒有定義。 寄存器GPGCON為可讀可寫的寄存器(R/W),其描述為配置port G的引腳,其復位值為0x0(Reset Value)。 寄存器GPGDAT為可讀可寫的寄存器(R/W),其描述為port G的數(shù)據(jù)寄存器,復位值沒有定義。 寄存器GPGUP為可讀可寫的寄存器(R/W),其描述為port G的上拉功能禁止寄存器。 表4.2 表在下頁說明: 從表4. 2可以看出寄存器GPGCON是32位的。 GPGCON的每2bit對應16bit端口G中的一個。比如GPGCON31:30對應于GPG15。 端口GPG10GPG8是可以允許5V電平輸入的。 以GPG15為例說明利用GPGCON是如何進行端口配置的。GPGCON31:30這2bit用來對port G中的GPG15進行配置:表4. 3GPGCON31:30配置值GPG15的功能00Input(輸入)01Output(輸出)10外部中斷2311觸摸屏Y軸加操作開關控制信號表4. 4說明: GPGDAT寄存器是16bit寄存器。 具體功能為:當端口被配置為輸入端口時,來自外部數(shù)據(jù)源的數(shù)據(jù)將會被讀入到相對應的管腳中去,即GPGDAT是作為緩沖區(qū)用的。當端口被配置為輸出端口時,寫入這個寄存器中的數(shù)據(jù)將會被發(fā)送到相應的端口上去。當端口被配置為功能管腳時,在端口上會讀到未定義的值。表4. 5說明:GPGUP15:0對應著GPG15:0,如果GPGUP15:0的某一位為“0”,則相對應的GPG管腳的上拉功能就被使能了;如果GPGUP15:0的某一位為“1”,則相對應的GPG管腳的上拉功能就被禁止了。在S3C2410A上電的時候,GPGUP15:11默認數(shù)值為“1”,也即GPG15:11的上拉功能是禁止的。這里說明一下什么是上拉功能,附帶再說明一下相對應的下拉功能。一般,上拉和下拉功能只在數(shù)字電路中有效。上拉如圖4.1所示:圖4.1上拉就是在數(shù)字芯片的管腳上通過一個電阻連接到電源上,一般可用的電阻值為3.3K、4.7K、5.1K或者10K,電阻值不易過大。具體作用是在引腳沒有輸出的情況下給該引腳一個確定的電平(高電平),另外還可以增加該管腳對外的驅動電流。如果引腳是輸入作用的,那么在該引腳開路時,上拉操作也會給該引腳一個確定的高電平。下拉如圖4. 2所示:圖4. 2下拉就是在數(shù)字芯片的管腳上通過一個電阻連接到地上,一般可用的電阻值為3.3K、4.7K、5.1K或者10K,電阻值不易過大。具體作用是在引腳沒有輸出的情況下給該引腳一個確定的電平(低電平)。如果引腳是輸入作用的,那么在該引腳開路時,下拉操作也會給該引腳一個確定的低電平。4.2 S3C2410A GPIO寄存器這里只列舉各個端口的控制寄存器和其他相關寄存器,各個端口的數(shù)據(jù)寄存器和上拉寄存器基本功能都是相同的,這里就不再重復列出了。1. PortA端口A只有控制寄存器和數(shù)據(jù)寄存器而沒有上拉寄存器。數(shù)據(jù)寄存器位寬為23bit。控制寄存器的具體內(nèi)容定義詳見S3C2410A的數(shù)據(jù)手冊,這里不再詳細說明。2. PortB端口B的控制寄存器只有22bit有效。其數(shù)據(jù)寄存器和上拉寄存器只有11bit有效。3. PortC端口C的數(shù)據(jù)寄存器和上拉寄存器只有16bit有效。4. PortD端口D的數(shù)據(jù)寄存器和上拉寄存器只有16bit有效。5. PortE端口D的數(shù)據(jù)寄存器和上拉寄存器只有16bit有效。6. PortF端口F的數(shù)據(jù)寄存器和上拉寄存器只有8bit有效。7. PortG端口G的數(shù)據(jù)寄存器和上拉寄存器只有16bit有效。8. PortH端口H的數(shù)據(jù)寄存器和上拉寄存器只有11bit有效。9. MISCCR寄存器這個寄存器主要和USB Host和USB Device有關。10. DCLKCON寄存器這個寄存器定了DCLKn信號,這個信號可以作為外部設備的時鐘源使用。這個寄存器只在CLKOUT1:0被置位而發(fā)送DCLKn信號時才能正常工作。11. 通用狀態(tài)寄存器(GSTATUSn)鑒于篇幅,與外部中斷相關的寄存器就不在本文中列出了,有興趣的讀者可以詳細參閱S3C2410A的數(shù)據(jù)手冊。4.3 I/O編程實驗1. 實驗要求使目標板上的兩個LED(LED1和LED2)交替閃亮。LED1和LED2是共陽極連接。LED1接到了S3C2410A的G端口的第8位上,LED2接到了S3C2410A的G端口的第9位上。2. 實驗設備(1) EL-ARM-830教學實驗箱,PentiumII以上的PC機,仿真調(diào)試電纜。(2) PC操作系統(tǒng)WIN98或WIN2000或WINXP,ADS1.2集成開發(fā)環(huán)境,仿真調(diào)試驅動程序。3. 實驗分析已知兩個LED分別接到了G端口的第8和第9位上,那么這兩位需要設置成輸出端口。LED是共陽極連接,那么高電平熄滅,低電平點亮。開機后,兩個LED就交替閃亮,那么改程序必須是死循環(huán)程序。要實現(xiàn)交替閃亮就需要有亮滅的延時功能。4. 實驗原理S3C2410A CPU 共有117個多功能復用輸入輸出口,分為8組端口: 4個16位的I/O端口 (PORT C、PORT D、PORT E、PORT G) 2個11位的I/O端口 (PORT B 和PORT H) 1個8位的I/O端口(PORT F) 1個23位的I/O端口(PORT A)這些通用的GPI/O接口,是可配置的, PORTA除功能口外,它們僅用作輸出使用,剩下的PORTB、PORTC、PORTD、PORTE、PORTF、PORTG均可作為輸入輸出口使用。配置這些端口,是通過一些寄存器來實現(xiàn)的,這些寄存器均有各自的地址,位長32位。往該地址中寫入相應的數(shù)據(jù),即可實現(xiàn)功能及數(shù)據(jù)配置。GPACON (0x56000000) /Port A controlGPADAT (0x56000004) /Port A dataGPBCON (0x56000010) /Port B controlGPBDAT (0x56000014) /Port B dataGPBUP (0x56000018) /Pull-up control BGPCCON (0x56000020) /Port C controlGPCDAT (0x56000024) /Port C dataGPCUP (0x56000028) /Pull-up control CGPDCON (0x56000030) /Port D controlGPDDAT (0x56000034) /Port D dataGPDUP (0x56000038) /Pull-up control DGPECON (0x56000040) /Port E controlGPEDAT (0x56000044) /Port E dataGPEUP (0x56000048) /Pull-up control EGPFCON (0x56000050) /Port F controlGPFDAT (0x56000054) /Port F dataGPFUP (0x56000058) /Pull-up control FGPGCON (0x56000060) /Port G controlGPGDAT (0x56000064) /Port G dataGPGUP (0x56000068) /Pull-up control GGPHCON (0x56000070) /Port H controlGPHDAT (0x56000074) /Port H dataGPHUP (0x56000078) /Pull-up control H現(xiàn)用G口、H口舉例說明。對于G口如表4.6、表4.7、表4.8,表4.6表4.7 (見下頁)表4.8也就是說,在地址0x0x56000060中,給32位的每一位賦值,那么,在CPU的管腳上就定義了管腳的功能值。當G口某管腳配置成輸出端口,則在PDATG對應的地址中的對應位上,寫入1,則該管腳輸出為高電平,寫入0,則該管腳輸出為低電平。若配置為功能管腳,則該管腳變成具體的功能腳。5. 實驗步驟(1)本實驗使用實驗教學系統(tǒng)的CPU板,在進行本實驗時,LCD電源開關、音頻的左右聲道開關、AD通道選擇開關、觸摸屏中斷選擇開關等均應處在關閉狀態(tài)。(2)在PC機并口和實驗箱的CPU板上的JTAG接口之間,連接WIGGER調(diào)試電纜。(3)檢查連接是否可靠,可靠后,接入電源線,系統(tǒng)上電,打開H_JTAG軟件檢測CPU。(4)打開ADS1.2開發(fā)環(huán)境,從里面打開實驗程序HARDWAREADS實驗五IO.mcp項目文件,進行編譯。(5)編譯通過后,進入ADS1.2調(diào)試界面,加載實驗程序HARDWAREADS實驗二IO_DataDebug中的映象文件程序映像IO.axf。(6)在ADS調(diào)試環(huán)境下全速運行映象文件。觀察CPU板左下角的LED1、LED2燈輪流的的閃爍!這是對GPIO口操作的結果。6. 具體實現(xiàn)過程(1)將G端口的第8和第9位設置成輸出端口。程序段如下:rGPGCON = rGPGCON & 0xfff0ffff | 0x00050000;上面的操作就將GPGCON17:16和GPGCON19:18設置為了“01”,也即GPG8和GPG9為輸出管腳。上述程序段也可寫為:rGPGCON = rGPGCON & 0xfff5ffff(2)開機后,需要給兩個LED一個初始狀態(tài)(全亮或全滅)。程序段如下:rGPGDAT = rGPGDAT & 0xeff | 0x300;執(zhí)行這一句后,兩個LED全部
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國粘合紙行業(yè)投資前景及策略咨詢研究報告
- 2025年中國硬質合金焊接燕尾槽銑刀行業(yè)市場調(diào)查、投資前景及策略咨詢報告
- 2025年中國電腦電源外殼行業(yè)投資前景及策略咨詢研究報告
- 2025年中國瓷芯快開明閥行業(yè)投資前景及策略咨詢研究報告
- 2025年中國煙斟行業(yè)市場調(diào)查、投資前景及策略咨詢報告
- 2025年中國水性熒光增白劑行業(yè)投資前景及策略咨詢研究報告
- 2025年中國樹脂松鼠行業(yè)市場調(diào)查、投資前景及策略咨詢報告
- 2025年中國顯示控制儀行業(yè)投資前景及策略咨詢研究報告
- 2025年中國插銷規(guī)行業(yè)市場調(diào)查、投資前景及策略咨詢報告
- 培訓興趣班安全管理制度
- 二、施組報審表
- 配載平衡基礎培訓
- 醫(yī)療廢物管理相關法律、法規(guī)介紹
- 漯河醫(yī)學高等??茖W校輔導員招聘考試行政管理教師崗筆試面試歷年真題庫試卷
- 政審在校證明
- 200立方米谷氨酸發(fā)酵罐設計
- 變電站一次通流-通壓試驗方法的探討與實踐
- 線槽燈安裝施工工法
- 自由公差對照表(共3頁)
- 約克YS螺桿式冷水機組_《操作手冊》6-3
- WPS表格基礎教程ppt課件
評論
0/150
提交評論