1 / 34

第六章 通用 I/O 埠的工作原理與實驗

第六章 通用 I/O 埠的工作原理與實驗. Ping-Liang Lai ( 賴秉樑 ). 實驗目的. 1 、掌握通用輸入輸出( GPIO )電路原理及與其相關的特殊功能暫存器的配置方法。 2 、熟悉 SDT 或 ADS 整合型開發環境 3 、學習使用 SDT 或 ADS 環境編譯、下載、除錯並 Trace 程式的方法。 4 、熟悉實驗系統的相關硬體結構。. 實驗原理. 硬體原理 S3C4510B 的通用 IO 埠的硬體功能方塊圖:. 實驗原理. GPIO 工作原理 S3C4510B 提供了 18 個可程式化的 GPIO 埠

maj
Télécharger la présentation

第六章 通用 I/O 埠的工作原理與實驗

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第六章通用I/O埠的工作原理與實驗 Ping-Liang Lai (賴秉樑)

  2. 實驗目的 1、掌握通用輸入輸出(GPIO)電路原理及與其相關的特殊功能暫存器的配置方法。 2、熟悉SDT或ADS整合型開發環境 3、學習使用SDT或ADS環境編譯、下載、除錯並Trace程式的方法。 4、熟悉實驗系統的相關硬體結構。

  3. 實驗原理 • 硬體原理 • S3C4510B的通用IO埠的硬體功能方塊圖:

  4. 實驗原理 GPIO工作原理 • S3C4510B提供了18個可程式化的GPIO埠 • 每個埠配置為輸入模式、輸出模式或特殊功能模式 • 控制I/O口的特殊功能暫存器一共有3個:IOPMOD、IOPCON和IOPDATA • 由特殊功能暫存器IOPMOD和IOPCON控制 • 埠0~埠7的工作模式僅由IOPMOD暫存器控制 • 通過設置IOPCON暫存器,埠8~埠11可用作外部中斷請求INTREQ0~INTREQ3的輸入 • 埠12、埠13可用作外部DMA請求XDREQ0、XDREQ1的輸入 • 埠14、埠15可作為外部DMA請求的應答信號XDACK0、XDACK1 • 埠16可作為計時器0的溢出TOUT0,埠17可作為計時器1的溢出TOUT1

  5. 實驗原理 • I/O埠模式暫存器 (IOPMOD) : 各位元定義為: [0..17] P0~P17的I/O模式控制位元元。 0=輸入 1=輸出

  6. 實驗原理 • I/O埠控制暫存器 (IOPCON) : • [4:0]控制埠8的外部中斷請求信號0(xIRQ0)輸入 [4] 0 = 禁能 1 = 致能 [3] 0 = 低電位有效 1 = 高電位有效 [2] 0 = 濾波器關 1 = 濾波器開 [1:0] 00 = 電位檢測 01 = 上升沿檢測 10 = 下降沿檢測 11 = 上升、下降沿均檢測

  7. 實驗原理 • [9:5]控制埠9的外部中斷請求信號1(xIRQ1)輸入 使用方法同埠8 • [14:10]控制埠10的外部中斷請求信號2(xIRQ2)輸入 使用方法同埠8 • [19:15]控制埠11的外部中斷請求信號3(xIRQ3)輸入 使用方法同埠8 • [22:20]控制埠12的外部DMA請求信號0(DRQ0)輸入 [22] 0 = 禁能 1 = 致能 [21] 0 = 濾波器關 1 = 濾波器開 [20] 0 = 低電位有效 1 = 高電位有效 • [25:23]控制埠13的外部DMA請求信號1(DRQ1)輸入 [25] 0 = 禁能 1 = 致能 [24] 0 = 濾波器關 1 = 濾波器開 [23] 0 = 低電位有效 1 = 高電位有效 • [27:26]控制埠14的外部DMA應答信號0(DAK0)輸出 [27] 0 = 禁能 1 = 致能 [26] 0 = 低電位有效 1 = 高電位有效 • [29:28]控制埠15的外部DMA應答信號1(DAK1)輸出 [29] 0 = 禁能 1 = 致能 [28] 0 = 低電位有效 1 = 高電位有效 • [30]控制埠16作為計時器0溢出信號(TOEN0) 0 = 禁能 1 = 致能 • [31]控制埠17作為計時器1溢出信號(TOEN1) 0 = 禁能 1 = 致能

  8. 實驗原理 • I/O埠資料暫存器 ( IOPDATA ) • 當I/O埠配置為輸入模式時,對應的位元表示I/O埠的輸入狀態。 • 當I/O埠配置為輸出模式時,對應的位元表示I/O埠的輸出狀態 。 對應的位元表示I/O埠:

  9. 通用 I/O埠的LED輸出實驗 • 接腳電路圖

  10. 通用 I/O埠的LED輸出實驗 • 開啟 ARM Project Manger • 從File功能表新建一個專案項目。File → New如下圖所示。 • 選擇Project

  11. 通用 I/O埠的LED輸出實驗 • 輸入專案名稱GPIO及路徑

  12. 通用 I/O埠的LED輸出實驗 • 新建一個.S文件。File → New。彈出如下對話方塊 • 編寫程式碼 • 儲存檔案為Init.s

  13. 通用 I/O埠的LED輸出實驗 • 添加至專案檔案中 3 2 1

  14. 通用 I/O埠的LED輸出實驗 • 再建立一個檔案,且命名為main.c

  15. 通用 I/O埠的LED輸出實驗 • 將main.c檔案儲存起來,並添加至專案檔案中

  16. 通用 I/O埠的LED輸出實驗 • 設置編譯連接環境。Tools→Configure → armlink • 在General頁面設置連接程式庫路徑。 1 2 3

  17. 通用 I/O埠的LED輸出實驗 • 在Output頁面設置ARM ELF image format輸出為ELF格式 • 在Entry and Base頁面設置除錯時檔下載的目的位元址。要保證該位址為SDRAM位址。 5 4

  18. 通用 I/O埠的LED輸出實驗 • 編譯工程項目。 • 在Project → Force build

  19. 通用 I/O埠的LED輸出實驗 • 進入除錯程式 • 執行” JTAG-NT&2000.exe” • 開啟”ARM Debugger For Windows”

  20. 通用 I/O埠的LED輸出實驗 • 載入映像檔案進行除錯

  21. 通用 I/O埠的LED輸出實驗 • 執行程式進行除錯,利用工作列上的圖示來進行單步執行除錯 • 利用工作列上的圖示來監看記憶體狀態 Go Stop Step Reload Step In Step Out Run to Cursor Locals Memory Register Back Trace ARM Disassembly

  22. 通用 I/O埠的LED輸出實驗 • 按F10單步執行程式或點工作列上的圖示

  23. 通用 I/O埠的LED輸出實驗 • 按F8單步執行程式或點工作列上的圖示 • 進入Main主程式(C語言)

  24. 通用 I/O埠的LED輸出實驗 • 觀看IOPMOD記憶體的變化 • 輸入IOPMOD記憶體位址 0x03FF5000

  25. 通用 I/O埠的LED輸出實驗 • 設定IOPMOD • 0x03FF5000記憶體的變化

  26. 通用 I/O埠的LED輸出實驗 • 設定IOPDATA(0x03FF5008) • IOPDATA(0x03FF5008)的變化

  27. 通用 I/O埠的LED輸出實驗 • 觀察LED變數 • LED變數的變化

  28. 通用 I/O埠的LED輸出實驗 • 利用”移位”的方式,改變LED燈的變化 • 將移位後的值寫入IOPDATA,輸出至IO port

  29. 通用 I/O埠的LED輸出實驗 • 利用Step執行Delay(),用Step In會進入Delay()副程式 • Step單步執行 • Step In單步執行

  30. 通用 I/O埠的LED輸出實驗 • IOPDATA執行變化 DemoBoard P4_LED亮起 DemoBoard P5_LED亮起 DemoBoard P6_LED亮起 DemoBoard P7_LED亮起

  31. 通用 I/O埠的LED輸出實驗 • 當IOPDATA為0x80,重置LED值

  32. 通用 I/O埠的LED輸出實驗

  33. 通用 I/O埠的LED輸出實驗

  34. 通用 I/O埠的LED輸出實驗

More Related