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<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