6678-GPIO基础(1)
目录
1. 6678GPIO概述
GPIO(General-purpose input/output),高低电平数字信号量的输入输出通过GPIO引脚完成。TMS320C6678共有16个GPIO引脚,GPIO[0-15]。当配置为输出,可以写入到内部的一个寄存器来控制输出引脚的驱动状态;当配置为输入,可以通过读取内部的一个状态寄存器来获取当前的输入状态。此外,15个 GPIO都可以在不同的中断/事件产生模式下,产生CPU中断和EDMA 同步事件。部分 GPIO 引脚与芯片的其它引脚是复用的,如Boot相关的引脚。
2. GPIO功能
2.1 GPIO的结构
- A 部分 GPn 引脚复用为芯片其它信号。详细信息请参阅器件专用数据手册。
- B 所有GPINTn 都可以触发CPU中断以及 EDMA同步事件。
- C RIS_TRIG和FAL_TRIG寄存器位于GPIO模块内部,对CPU不可见。
如上图的GPIO结构所示,上半部分为GPIO的方向设置,状态设置、输出、清除和输入单元,图中下半部分为中断的上升下降沿触发设置、清除单元,可以配置为中断或者EDMA事件。
2.2 中断和事件产生
每个 GPIO 引脚(GPn)可以配置为生成一个 CPU 中断(GPINTn)和一个EDMA(GPINTn)同步事件。中断、EDMA 事件可以产生在上升沿、下降沿,或GPIO信号的双沿触发。边沿检测逻辑同步到 GPIO 外设时钟(CPU/6)。当使用引脚产生中断、EDMA 事件时 GPIO 引脚的方向不需要为输入模式。在 GPIO 引脚配置为输入时,改变引脚状态将触发中断和 EDMA 事件。当 GPIO引脚配置为输出时,软件可以配置 GPIO 输出寄存器来改变引脚状态进而触发中断、EDMA 事件。RIS_TRIG和FAL_TRIG对于CPU不可见,不可直接访问。其分别和SET_RIS_TRIG/CLR_RIS_TRIG和SET_FAL_TRIG/CLR_FAL_TRIG一致。
3. 仿真停操作
仿真停(halt)操作对GPIO外设无影响。
4. 寄存器
如表1-1所示,为GPIO设置所需的寄存器。GPIO寄存器组的基地址0x02320000- 023200FF,没有用到的地址为保留。
表1-1 寄存器
Offsets偏移 | Acronym 缩略词 | Register Name 寄存器名 | 描述 |
0008 | BINTEN | Interrupt Per-Bank Enable Register | 中断使能寄存器 |
0010 | DIR | Direction Register | 方向设置寄存器 |
0014 | OUT_DATA | Output Data Register | 输出状态寄存器 |
0018 | SET_DATA | Set Data Register | 设置状态寄存器 |
001C | CLR_DATA | Clear Data Register | 清除状态寄存器 |
0020 | IN_DATA Input | Data Register | 输入状态寄存器 |
0024 | SET_RIS_TRIG | Set Rising Edge Interrupt Register | 上升沿触发设置寄存器 |
0028 | CLR_RIS_TRIG | Clear Rising Edge Interrupt Register | 上升沿清除设置寄存器 |
002C | SET_FAL_TRIG | Set Falling Edge Interrupt Register | 下降沿设置寄存器 |
0030 | CLR_FAL_TRIG | Clear Falling Edge Interrupt Register | 下降沿清除寄存器 |
(1)模块中断使能寄存器(BINTEN)
该寄存器控制GPIO的CPU中断或EDMA事件的使能。复位默认值为0x00000000。
Bit 位 | Field 域 | Description 说明 |
31-1 | Reserved | 保留,默认为0,写无效 |
0 | EN | 0禁能中断 1 使能中断 |
(2)方向寄存器(DIR)
该寄存器控制GPIOn的输入输出方向,Bit0-Bit15分别对应GPIO0-GPIO15。复位默认值为0x0000FFFF,即复位默认为输入模式。
Bit 位 | Field 域 | Description 说明 |
31-16 | Reserved | 保留,默认为0,写无效 |
15-0 | DIRn | 0 GPIOn为输出 1 GPIOn为输入() |
(3)输出寄存器(SET_DATA)
该寄存器控制GPIOn引脚输出的高低电平。复位默认值为0x00000000。
Bit 位 | Field 域 | Description 说明 |
31-16 | Reserved | 保留,默认为0,写无效 |
15-0 | OUTn | 设置为0/1,读取返回设置的值。 |
(4)数据设置寄存器
该寄存器提供了一种将GPIO驱动为高电平的方式。上电默认值为0x00000000。
Bit 位 | Field 域 | Description 说明 |
31-16 | Reserved | 保留,默认为0,写无效 |
15-0 | SETn | 0 无效 1 输出对应的位为高 读取返回输出寄存器的状态。
|
(5)数据清除寄存器(CLR_DATA)
该寄存器提供了一种将GPIO驱动为低电平的方式。上电默认值为0x00000000。
Bit 位 | Field 域 | Description 说明 |
31-16 | Reserved | 保留,默认为0,写无效 |
15-0 | CLRn | 0 无效 1 清除对应的位为低 读取返回输出寄存器的状态。 |
(6)输入数据寄存器(IN_DATA)
该寄存器反映了GPIOn的输入状态。上电复位默认值为0x00000000。
Bit 位 | Field 域 | Description 说明 |
31-16 | Reserved | 保留,默认为0,写无效 |
15-0 | Inn | 读取返回GPIOn的输入状态。
|
(7)上升沿设置寄存器(SET_RIS_TRIG)
该寄存器设置对应的上升沿触发,使能上升沿触发中断。上电默认值为0x00000000。
Bit 位 | Field 域 | Description 说明 |
31-16 | Reserved | 保留,默认为0,写无效 |
15-0 | SETRISn | 写0无效,写1使能对应的引脚的上升沿检测。
|
(8)清除上升沿寄存器(CLR_RIS_TRIG)
该寄存器禁止对应的上升沿触发,使能上升沿触发中断。上电默认值为0x00000000。
Bit 位 | Field 域 | Description 说明 |
31-16 | Reserved | 保留,默认为0,写无效 |
15-0 | CLRRISn | 写0无效,写1禁止对应引脚的上升沿检测。
|
(9)下降沿设置寄存器(SET_FAL_TRIG)
该寄存器设置对应的下降沿触发,使能上升沿触发中断。上电默认值为0x00000000。
Bit 位 | Field 域 | Description 说明 |
31-16 | Reserved | 保留,默认为0,写无效 |
15-0 | SETFALn | 写0无效,写1使能对应的引脚的下降沿检测。 |
(10)清除下降沿寄存器(CLR_FAL_TRIG)
该寄存器清除对应的下降沿触发,使能上升沿触发中断。上电默认值为0x00000000。
Bit 位 | Field 域 | Description 说明 |
31-16 | Reserved | 保留,默认为0,写无效 |
15-0 | CLRFALn | 写0无效,写1禁能对应的引脚的下降沿检测。 |