当前位置:首页 >> 信息与通信 >>

28335之GPIO


28335 之 GPIO
本系列文章由斌斌-龙臻独立完成,首发于 QQ 空间,会在百度空间、 网易博客、人人网同步更新,转载必须注明作者和出处,必须注明原 文链接。

注: 本系列文章主要针对 TI 公司的 C28xx 系列 DSP 芯片的一些功能模块进行介 绍, 并描述基本的配置。 文章中提到的 DSP 芯片未说明即默认为 TMS320F28335

, 简称为 28335。 GPIO(General-Purpose Input/Output)——通用输入/输出口,对大多数从事 电子行业的人来说并不是什么陌生的东西。但它却是基础性的,很多 MCU 的后 续开发都得用到 GPIO。 28335 有 88 个 IO 口,为 GPIO0 至 GPIO87,其中 GPIO0 至 GPIO63 可以配 置为 8 个核心中断。28335 的 GPIO 口可以分为三组,分别为 A 口(GPIO0 至 GPIO31) 口(GPIO32 至 GPIO63)和 C 口(GPIO64 至 GPIO87) ,B 。 GPIO 的寄存器可以分为三种,分别是 GPIO 控制寄存器,GPIO 数据寄存器 和 GPIO 中断与低功耗模式选择寄存器。详见表 1、2、3。

表 1:GPIO 控制寄存器

表 2:GPIO 数据寄存器

表 3:GPIO 中断与低功耗模式选择寄存器

我们按照表中的寄存器的顺序来讲解。 GPIO 限制控制寄存器 GPxCTRL(x=A,B,C)为配置为输入限制的引脚指定了 采样周期。采样周期介于限制采样周期之内,是相对于系统时钟周期的倍数。具 体的配置见表 4,以 A 口为例。

表 4:GPIO Port A Qualification Control (GPACTRL) Register Field Descriptions

而 GPIO 限制选择寄存器 GPxQSELy(x=A,B,C;y=1,2)指定了采样窗是 3 个采 样点还是 6 个采样点。具体的配置见表 5,还是以 A 口为例。

表 5:GPIO Port A Qualification Select 1 (GPAQSEL1) Register Field Descriptions

以上寄存器主要是为 GPIO 的输入功能进行的配置。 通过, 1 Qualification 图( Using Sampling Window)和图 2(Input Qualifier Clock Cycles) ,我们可以很清楚 的知道 GPIO 的输入限制是怎样完美的去除我们不需要的噪声的。

图 1:Qualification Using Sampling Window

图 2:Input Qualifier Clock Cycles

在图 2 中,输入限制将忽略这个尖刺小脉冲。QUALPRD 位域值限制采样周 期,8 位值范围为 0~255.当 QUALPRD 为 0 时,无限制输入,此时采样周期与 SYSCLKOUT 同步。对于任意一个“n”值,限制周期 = 2*n 个系统时钟周期 (SYSCLKOUT) ,即每 2*n 个系统时钟周期,GPIO 引脚进行一次采样。当 6 个 采样都为同一个值时,才可以确定一个输入。 具体的采样周期的配置和采样窗的配置在上文已有阐述。 有 输 入 限 制 时 检 测 输 入 变 化 , 输 入 必 须 稳 定 ( 5*QUALPRD*2 ) 个 SYSCLKOUT 周期,以保证检测时 6 个采样点的采样相同。例如 QUALPRD=1 时,输入必须有 10 个或者 10 个以上的稳定的 SYSCLKOUT 周期,因为外部信 号是异步驱动的,11 个 SYSCLKOUT 周期宽度的脉冲可以确保可靠的识别。 每个通用 I/O 端口都受多路复用(MUX) ,方向(DIR) ,数据(DAT) ,置 位(SET) ,清楚(CLEAR) ,以及切换(TOGGLE)寄存器的控制。 多路复用寄存器 GPxMUX(x=A,B,C)用来配置引脚的功能,是外设操作还 是 I/O 操作。复位时,所有的 GPIO 引脚都配置成数字 I/O 功能。当寄存器中某 位置 1 时,相应的引脚配置成相应的外设。具体的管脚与外设功能见技术手册 sprufb0d——System Control and Interrupts 的 Table 50(GPAMUX1) 。 方向控制寄存器 GPxDIR 用来将相应的 I/O 管脚配置成输出或输入, 复位时, 所有的 GPIO 引脚配置成输入,当 GPxDIR.bi t= 1 时,引脚配置成输出。在采用 GPxDIR 寄存器位将输入端口改变成输出端口之前,引脚的当前电平反应到 GPXDAT 寄存器上。在改变输入成输出状态之前,初始化 GPxDAT 用寄存器 GPxSET、GPxCLEAR、GPxTOGGLE。 上拉电阻使能寄存器 GPxPUD 用来配置是否使能上拉电阻。复位时,所有 的 GPIO 引脚使能上拉电阻,当 GPxPUD 寄存器的某位置 1 时,相应的引脚的 上拉电阻不使能。 数据寄存器 GPxDAT,是一个读/写寄存器,读入的该寄存器的值反应了输 入限制后输入引脚当前的电平,写寄存器可设置输出引脚为相应的电平。 置位寄存器 GPxSET 是一个只写寄存器,读为 0。如果对应的引脚配置为输 出,则向置位寄存器的该位写 1,将对应引脚的电平拉高,写 0 则无效。 清除寄存器 GPxCLEAR 是一个只写寄存器,读为 0。如果对应的引脚配置 为输出,则向清除寄存器的该位写 1,将把对应引脚的电平拉低,写 0 无效。 切换寄存器 GPxTOGGLE,是一个只写寄存器,读为 0。如果对应的引脚配 置为输出, 则向切换寄存器的该位写 1, 将把对应引脚拉成反向电平, 0 无效。 写 中断选择寄存器 GPIOXIMTnSEL 的功能是选择某位 I/O 引脚来配置中断。 具体的配置见表 6。 该表配置的是 GPIO0 至 GPIO31, 对应的是 XINT1 和 XINT2, 具体的中断配置见寄存器 XINT1CR 和 XINT2CR,本文不再详述,将在中断那

文中再具体讲解。

表 6:GPIO XINTn Interrupt Select (GPIOXINTnSEL) Register Field Descriptions

低功耗模式唤醒选择寄存器 GPIOLPMSEL 针对的是 GPIO0 至 GPIO31,向 寄存器的某位写 1,则相应的信号引脚将唤醒设备,无论设备处于 HALT 或者 STANDBY 低功耗模式。写 0 则无效。 GPIO 的寄存器就介绍到这,接下去看个例子,点亮 LED。先看电路图,见 图 3。

图 3:LED

在图中,LED 所采用的 GPIO 引脚是 GPIO60 和 GPIO61,当 GPIO60 和 GPIO61 为地电平,LED 发光。置于为什么不直接用 GPIO 驱动 LED,是因为 DSP 芯片的拉电流较小。一般说来,MCU 的灌电流都比拉电流大的多。 #define #define LED1 LED2 GpioDataRegs.GPBDAT.bit.GPIO60 GpioDataRegs.GPBDAT.bit.GPIO61 LED 的配置函数

void configtestled(void) { EALLOW; GpioCtrlRegs.GPBMUX2.bit.GPIO60 = 0;

//配置 GPIO60 为普通数字 I/O

GpioCtrlRegs.GPBDIR.bit.GPIO60 = 1; GpioCtrlRegs.GPBMUX2.bit.GPIO61 = 0; GpioCtrlRegs.GPBDIR.bit.GPIO61 = 1; EDIS; } void main(void) { . . . configtestled( ) ; LED1=0; LED2=0; . . . }

//配置 GPIO60 为输出 //配置 GPIO61 为普通数字 I/O //配置 GPIO61 为输出

//D1 发光 //D2 发光

以上的例子只是 GPIO 的普通 I/O 口的应用,进一步的外设的配置以及中断 的配置会在后续的模块介绍中讲述。


相关文章:
28335之GPIO
28335之GPIO_信息与通信_工程科技_专业资料。详细介绍了TMS320F28335的GPIO的寄存器,并讲解了基本的配置。并举了一个例子来讲解GPIO的应用。...
TMS320F28335的GPIO
TMS320F28335GPIO 作者:Free 文章来源:Free 点击数:93 更新时间:2010-8-26 PORTB(GPIO32-GPIO63), F28335 有三种 32 位的 I/O 口,依次 PORTA(GPIO...
关于28335各个模块的理解
TMS320F28335 GPIO 引脚的输入限制 用户可以通过 GPIO 限制选择寄存器来选择 GPIO 引脚的输入限制类型。 主要由输入异步, 仅与 SYSCLKOUT 同步,采用采样窗限制这几...
DSP28335中文资料
GpioCtrlRegs.GPAPUD.bit.GPIO0 = 0; GpioCtrlRegs.GPAMUX1.bit.GPIO0 = ...继续 RETRY 之后,会出下面错误——1037 17 DSP28335 测试总结 再 RETRY 一次,...
基于TMS320F28335外部中断配置过程
基于TMS320F28335外部中断配置过程_信息与通信_工程科技_专业资料。TMS320F28335...// XINT2 is GPIO1 //配置GPIO寄存器GPIOXINT2SEL把GPIO1作为Xint2中断 EDIS...
DSP28335的调试总结,这是一份总结很全面的资料,我在学
DSP28335 的调试总结,这是一份总结很全面的资料,我在学习 开发板的一些总结,...GpioCtrlRegs.GPAPUD.bit.GPIO0 = 0; GpioCtrlRegs.GPAMUX1.bit.GPIO0 = ...
TMS320F28335外部中断总结
TMS320F28335外部中断总结_工学_高等教育_教育专区。TMS320F28335 外部中断总结...在这里要介绍一下,DSP 的 GPIO 口都可以配置为外部中断口,其 配置方法如下:...
[原]TMS320F28335项目开发记录6_28335之cmd文件详解
[原]TMS320F28335 项目开发记录 6_28335 之 cmd 文件详解 2014-11-3 阅读 970 评论 0 1.CMD 文件的作用 CMD 文件的作用就像仓库的货物摆放记录一样,为程序...
DSP28335烧写方法
DSP 开发板上的拨码开关都拨到 ON 的位置的本质含义是: 将 F28335GPIO84、 GPIO85、 GPIO86、GPIO87 这四个引脚用 1k 到 10k 之间电阻上拉到 3.3V,...
F28335头文件说明
F28335头文件说明_电子/电路_工程科技_专业资料。F28335头文件说明TMS...tECanGpio(void);//初始化 GPIO 管脚为 eCAN 功能管脚 void InitECanaGpio(...
更多相关标签:
28335 gpio设置 | 28335 gpio | dsp28335 gpio | tms320f28335 | 28335 | dsp28335 | 手把手教你学dsp28335 | tms320f28335官方例程 |