TMS320F28335-GPIO

上级目录TMS320F28335使用教程

介绍

F28335 DSP有88个GPIO口,对应着芯片引出的88个引脚,88个引脚多数都是功能复用的,可以灵活配置为输入引脚,也可以灵活配置为输出引脚,即可以作为通用I/O引脚,也可以作为特殊功能口(如SCI、SPI、ECAN等),根据需要,可以通过GPIO MUX(输入输出多路选择器,复用开关)寄存器来进行相关配置,下边介绍GPIO的工作原理及其配置过程。
F28335 DSP将这88个GPIO口分成了A、B、C三大组,A组包括GPIO0至GPIO31,B组包括GPIO32至GPIO63,C组包括GPIO64至GPIO87,每个引脚都复用了多个功能,同一时刻,每个引脚只能用该引脚的一个功能。究竟工作在哪个模式下,可以通过GPIO Mux(复用开关)寄存器配置每个引脚的具体功能(通用数字量I/O或者外设专用功能)。如果将这些引脚选择数字量I/O模式,可以通过方向寄存器GPxDIR配置数字量I/O的方向,即是作为输入引脚还是作为输出引脚;还可以通过量化寄存器GPxQUAL对输入信号进行量化限制,从而可以消除数字量I/O引脚的噪声干扰。此外,有下面4种方式对GPIO引脚进行读写操作:

1、可以通过GPxDAT寄存器独立读/写I/O信号;

2、利用GPxSET寄存器写1(写0无效)对I/O口进行置位

3、利用GPxCLEAR寄存器写1(写0无效)对I/O口进行清零;

4、利用GPxTOOGLE寄存器置1后(写0无效)来将I/O输出电平翻转,原来高电平变成低电平,原来低电平则变成高电平。
在这里插入图片描述

点亮led(输出模式)

最重要的一步来了
从上面示意图可以看出,GPAMUX寄存器决定了IO是哪种模式(普通IO、外设1、外设2、外设3),GPADIR决定了是否输出,GPADAT决定了输出电平高低。开发板电路
现在根据官方手册来写程序在这里插入图片描述
根据开发板电路图和上面的官方手册给出的GPIO配置步骤,程序如下:

   EALLOW;//受保护的寄存器,要先关保护才能写进寄存器值
   GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 0; // GPIO0复用为GPIO功能
   GpioCtrlRegs.GPADIR.bit.GPIO0 = 1;  // GPIO0设置为输出
   GpioCtrlRegs.GPAPUD.bit.GPIO0 = 1;  //GPIO0关闭内部上拉
   EDIS;//开保护

寄存器是否受保护可以参考技术手册,受保护的寄存器下会有说明,如下图在这里插入图片描述

led闪烁代码实现


   while(1)
    {
   
       GpioDataRegs
### TMS320F28335 DSP GPIO 电平转换电路设计方案实例 对于TMS320F28335 DSP而言,在实际应用中,尤其是当外部设备的工作电压与DSP不一致时,需要设计合理的电平转换电路来确保信号的正确传输。下面介绍一种常见的GPIO电平转换方案。 #### 使用双向逻辑电平转换器 为了实现不同工作电压之间的兼容性,可以采用专用的双向逻辑电平转换器件,如TXB0108或ADG3306等。这些芯片能够支持多种供电组合,并提供良好的电气隔离性能。具体接线方式如下: - 将VCCA端口连接至较低电源域(例如3.3 V),即TMS320F28335侧; - 把VCCB端口接到较高电源域(比如5 V),也就是外设一侧; - A/B方向上的数据线一一对应相连; 通过这种方式可以在不影响原有功能的前提下完成高低电平间的切换操作[^1]。 #### 软件配置注意事项 除了硬件部分的设计之外,还需要注意软件层面的相关设置。在初始化阶段要先设定好各个引脚的方向以及初始状态。例如针对RGB LED控制案例中的三个GPIO管脚(GPIO58, GPIO59 和 GPIO61),可以通过修改寄存器GPxDIR和GPxSET/GPxCLR来进行相应的配置[^2]: ```c // 设置为输出模式 EALLOW; GpioCtrlRegs.GPAMUX2.bit.GPIO58 = 0; // 配置成通用IO而非其他特殊用途 GpioCtrlRegs.GPADIR.bit.GPIO58 = 1; // 设定为输出方向 EDIS; // 输出低电平点亮红色LED EALLOW; GpioDataRegs.GPCLEAR.bit.GPIO58 = 1; EDIS; ``` 上述代码片段展示了如何利用C语言编写程序以达到预期效果。值得注意的是,在执行任何写入命令前都应调用`EALLOW`宏解除保护机制,而在完成后则需再次启用它(`EDIS`)防止误改重要参数。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值