3684|0

2

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

28377 GPIO模块 [复制链接]

Gpio模块:

GPADIR决定是输入还是输出 开漏(open-drain,漏极开路)和推挽(push-pull)
GPAMUX 选择功能引脚
GPADIR 方向寄存器
GPACTRL
GPAQSEL

1、GPxMUX寄存器
通用输入输出多路选择寄存器I/O是工作在通用数字IO还是外围IO信号引脚就有GPxMUX决定。
GPxMUX.bit.xx=0,xx通用数字IO;
GPxMUX.bit.xx=1,xx外围IO引脚。

2、GPxDIR寄存器 方向选择寄存器
如果配置为通用数字IO脚,那么GPxDIR决定了该引脚是输入还是输出。
GPxDIR.bit.xx=0,xx配置为输入;
GPxDIR.bitxx=1,xx配置为输出。

3、GPxQUAL寄存器 设置采样脉冲寄存器
在配置为通用数字IO后,DSP的数字IO引脚有对输入过滤噪声的功能,即对IO输入电平采样,在采样设置的次数后都是一个电平,才会确定有效。
假如设置为输入高电平,采样10次,那么这10都为高电平才认为输入高有效,GPxDAT寄存器相应位才会改变。
它是一个16位的寄存器,低八位有效。
GPxQUAL=0; 与SYSCLKOUT同步,没有限制作用
GPxQUAL=1;
2个SYSCLKOUT周期采样,
GPxQUAL=2;
4个SYSCLKOUT周期采样,
GPxQUAL=0xff;510个SYSCLKOUT周期采样,

4、GPxSET置1寄存器
每个IO口有一个置1寄存器,只能写不能读,也就是只能用在输出上,写1可以使输出为1,写0没有变化。
GPxSET .bit.xx=0,被忽略;
GPxSET .bit.xx=1,且引脚配置为输出,则输出变高

5、GPxCLEAR清0寄存器
每个IO口有一个清0寄存器,只能写不能读,也就是只能用在输出上,写1可以使输出清0,写0没有变化。
GPxCLEAR .bit.xx=0,被忽略;
GPxCLEAR .bit.xx=1,且引脚配置为输出,则输出清0

6、GPxTOGGLE 翻转寄存器
每个IO口有一个翻转寄存器,只能写不能读,也就是只能用在输出上,写1可以使输出翻转,写0没有变化。
GPxTOGGLE .bit.xx=0,被忽略;
GPxTOGGLE.bit.xx=1,且引脚配置为输出,则输出翻转

7、GPxDAT寄存器
IO数据寄存器
每个IO都有一个数据寄存器,当IO配置为输出时,相GPxDAT中写数据就可以决定输出状态;
GPxDAT.bit.xx=0,输出变低;
GPxDAT.xx=1,输出变高
当IO配置为输入时,读取GPxDAT中的数据就可以决定输入状态;
注意:当引脚配置为通用数字IO时,相应的外围功能必须屏蔽,否则可能会引发不必要的中断。

================================================================
Input X-BAR
On this device, the Input X-BAR is used to route signals from a GPIO to many different IP blocks such as
the ADC(s), eCAP(s), ePWM(s), and external interrupts.

gpio 分组后面的编号gpio(x)分三大类control,data,interupt
All GPIO pins are I/O/Z and have an internal pullup, which can be selectively enabled or disabled on a per-
pin basis. This feature only applies to the GPIO pins. The pullups are not enabled at reset.
The default for each pin is the GPIO function, secondary functions
can be selected by setting both the GPyGMUXn.GPIOz and GPyMUXn.GPIOz register bits

GpioCtrlRegs.GPAPUD.bit.GPIO11 = 0;  // Enable pullup on GPIO11GpioCtrlRegs.GPAMUX1.bit.GPIO11= 0;//GPIO51 =GPIO51GpioCtrlRegs.GPADIR.bit.GPIO11 = 1;GpioDataRegs.GPADAT.bit.GPIO11 = 1;GpioDataRegs.GPADSET.bit.GPIO11 = 1GpioDataRegs.GPACLEAR.bit.GPIO11 = 1

A better solution is to use the GPySET/GPyCLEAR/GPyTOGGLE registers instead of the GPyDAT registers

INPUT
You can select the type of input
qualification for each GPIO pin by configuring the GPyQSEL1 and GPyQSEL2 registers

==============================================================

InitGpio();
GPIO_SetupPinMux(31, GPIO_MUX_CPU1, 0);
GPIO_SetupPinOptions(31, GPIO_OUTPUT, GPIO_PUSHPULL);

gpioBaseAddr = (Uint32 *)&GpioCtrlRegs;强制转换成一个指针
 
点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表