TMS320DM644x DMSoC GPIO 同样适用DM365平台

最近做sony ss-3的驱动,期间用到用gpio口来复位前端sensor。于是相当于把TI DaVinci644X 系列的GPIO文档翻译一下,希望以后还会用到。

一般某个端口做什么用途是不确定的,当然有的端口有专门用途。像有些就是spi 和 gpio复用的,在使用前要先设置下端口复用,是用作普通的gpio口还是其他用途。

好啦,废话不多说,先上GPIO block 图

 

TMS320DM644x DMSoC GPIO 同样适用DM365平台_第1张图片

 

看到了吧,就这些主要的寄存器,一会讲各寄存器用途。

dm644X 支持最多71个GPIO口,GPIO[53:0] are 1.8V I/O signals. GPIOV33_[16:0]are 3.3V I/O signals。

 

GPIO被组织成5个bank,每个bank控制着16个gpio。

 

用途:

GPIO用之前要先配置用途,是用作输入,输出,还是中断?

当配置为输出,可以向管脚上进行写,当配置为读,可以从相应管脚读取电平。当然,这里的写入和读取都是针对相应寄存器的操作。并不针对某一个管脚。

 

有三个寄存器控制GPIO输出信号

SET_DATA:写高电平

CLR_DATA:写低电平

OUT_DATA:包含当前输出到管脚的信号电平

当读取这三个寄存器不一定能获取真实的管脚信号(因为一些管脚被配置为输入),真正读取管脚电平的寄存器是IN_DATA,INDATA寄存器包含实际的管脚上的逻辑电平。

 

向SET_DATA中相应的GPIO位写 1 将该GPIO置高,如果向相应位写 0 则没有影响。

向CLR_DATA中相应的GPIO位写 1 将该GPIO置低,如果向相应位写 0 则没有影响。

当GPIO管脚被配置为输入,向SET_DATA,CLR_DATA,OUT_DATA中写入值对该GPIO不产生影响。

 

配置相应GPIO为输入或输出的寄存器是DIR。

 

GPIO reset

1,软件reset:例如通过仿真器,并不修改GPIO状态。

2, 硬件reset:恢复至默认。

 

中断支持:

GPIO外设可以想ARM或/和 DSP发送中断。

允许gpio中断:

举个例子:如果要允许bank0中断(gpio[15:0]),则设置BINTEN寄存器的bit 0 为1,如果要设置bank3中断(gpio[63:48]),则设置BINTEN寄存器的bit 3为1.

 

可以配置为上升沿触发,下降沿触发,两个边沿都触发和无条件触发。分别设置SET_RIS_TRIG, CLR_RIS_TRIG, SET_FAL_TRIG, CLR_FAL_TRIG。

 

GPIO内存映射的寄存器

 

 

 

TMS320DM644x DMSoC GPIO 同样适用DM365平台_第2张图片

 

GPIO方向寄存器(DIRn)

默认情况下,GPIO引脚被配置为输入(bit value = 1),DIR01控制着0~31引脚。DIR23控制着32~63引脚,DIR4控制着64~60引脚。

 

GPIO输出数据寄存器(OUT_DATAn)

OUT_DATAn决定了写到GPIO引脚上的信号值(对输入引脚无效)。直接写入该寄存器即可设置相应位。读入OUT_DATAn寄存器的值并不是引脚电平!!同理,OUT_DATA01为BANK01,OUT_DATA23为BANK23,OUT_DATA4为BANK4。

 

SET_DATAn和CLR_DATAn不再赘述。与OUT_DATA类似。

 

GPIO输入数据寄存器(IN_DATAn)

直接读取该寄存器的值即可获取相应引脚信号值。IN_DATA01,IN_DATA23,IN_DATA4。

 

GPIO设置上升沿中断寄存器(SET_RIS_TRIGn)

SET_RIS_TRIGn寄存器允许GPIO引脚上的上升沿产生一个GPIO中断。

其他几种中断与之类似。

 

 

你可能感兴趣的:(文档,平台)