1. 程式人生 > >TMS320C6474學習總結(九)----GPIO中斷除錯

TMS320C6474學習總結(九)----GPIO中斷除錯

GPIO模組

1. GPIO概述

       通用輸入/輸出(GPIO)外設提供專用的通用引腳,可以配置為輸入或輸出。當將其配置為輸出時,您可以向內部暫存器寫入,以控制輸出引腳上的狀態驅動。當配置為輸入時,您可以通過讀取內部暫存器的狀態來檢測輸入的狀態。

       另外,GPIO外設可以在不同的中斷/事件生成模式下產生CPU中斷和EDMA同步事件。

2. GPIO功能

       可以使用GPIO方向暫存器(DIR)獨立地將每個GPIO pin (GPn)配置為輸入或輸出。GPIO方向暫存器(DIR)指定每個GPIO訊號的方向。邏輯0表示將GPIO引腳配置為輸出,邏輯1表示輸入。

       當配置為輸出模式時,對資料設定暫存器(SET_DATA)寫1可以驅動對應的GPIO引腳為邏輯高狀態,對資料清除暫存器(CLR_DATA)寫1可以驅動對應的GPIO引腳為邏輯低的狀態。每個引腳的輸出狀態也可以通過寫資料輸出暫存器(OUT_DATA)來直接控制。

       對資料設定暫存器和資料清除暫存器寫0不會對GPIO引腳產生影響。另外,如果GPIO引腳設定為輸入引腳,對資料設定暫存器、資料清除暫存器以及資料輸出暫存器進行寫操作將不會產生效果。

       對於將GPIO引腳配置成輸入引腳時,讀取資料輸入暫存器(IN_DATA)的資料將會獲取引腳的當前狀態。

3. GPIO暫存器

Offset

縮寫

暫存器功能

0008

BINTEN

中斷使能暫存器

0010

DIR

方向暫存器

0014

OUT_DATA

資料輸出暫存器

0018

SET_DATA

資料設定暫存器

001C

CLR_DATA

資料清除暫存器

0020

IN_DATA

資料輸入暫存器

0024

SET_RIS_TRIG

上升沿中斷設定暫存器

0028

CLR_RIS_TRIG

上升沿中斷清除暫存器

002C

SET_FAL_TRIG

下降沿中斷設定暫存器

0030

CLR_FAL_TRIG

下降沿中斷清除暫存器

4. GPIO中斷

       每個GPIO pin (GPn)都可以配置為生成CPU中斷(GPINTn)和EDMA同步事件(GPINTn)。中斷和EDMA同步事件可以在上升沿、下降沿產生。邊緣檢測邏輯是與GPIO外圍時鐘同步的。

       當使用GPIO引腳來產生中斷和EDMA同步事件時,不需要將GPIO引腳設為輸入引腳。當將GPIO 引腳配置為輸入時,引腳上的狀態轉換會觸發中斷和EDMA同步事件。當將GPIO引腳配置為輸出時,軟體可以切換GPIO輸出暫存器來改變引腳的狀態,甚至觸發中斷和EDMA同步事件。

5. 配置GPIO中斷

       1. 配置GPIO中斷

              a.使能GPIO中斷: BINTEN = 1;

              b.配置引腳為輸入引腳:DIR = 0x1<<num;(bit0-bit15對應16個引腳)

              c.配置GPIO為上升沿觸發/下降沿觸發:  SET_RIS_TRIG =  0x1<<num;              (bit0-bit15對應16個引腳)

       2. 查閱中斷對映表,獲取對應GPIO通道的中斷號,將中斷號和中斷服務函式名配置在.tcf檔案中(注意函式名前加上下劃線,在Dispatcher中勾選use dispatcher ,在interrupt  mask中選擇all)

       3. 開啟全域性中斷使能

6. GPIO中斷對映表

TMS320C6474共有16個GPIO引腳,對應16箇中斷事件,需要使用哪個引腳,就需要將引腳對應的時間對映至硬體中斷上。

中斷號

中斷事件

中斷描述

45

GPINT0

GPIO Interrupt 0

46

GPINT1

GPIO Interrupt 1

47

GPINT2

GPIO Interrupt 2

48

GPINT3

GPIO Interrupt 3

49

GPINT4

GPIO Interrupt 4

50

GPINT5

GPIO Interrupt 5

51

GPINT6

GPIO Interrupt 6

52

GPINT7

GPIO Interrupt 7

53

GPINT8

GPIO Interrupt 8

53

GPINT9

GPIO Interrupt 9

55

GPINT10

GPIO Interrupt 10

56

GPINT11

GPIO Interrupt 11

57

GPINT12

GPIO Interrupt 12

58

GPINT13

GPIO Interrupt 13

59

GPINT14

GPIO Interrupt 14

60

GPINT15

GPIO Interrupt 15