C6748的GPIO口配置使用
2018年1月17日更新:
这几天用了创龙的C6748的库,对于GPIO配置十分不爽,我移植了RK6748的库,用起来十分酸爽,把下面的文件加入到工程中,然后include头文件后就可以使用。非常好使。
链接:https://pan.baidu.com/s/1c2RVBOW 密码:umra
以下文章都是基于这个库的。
请配置后使用!
以下是原文:
这几天做项目,用到了TMS320C6748这个DSP,用的是ROCK的板子,要驱动RF24L01,用的是模拟SPI时序,对于GPIO口的配置弄了好久,终于弄清楚了。C6748好像不像是C5509A一样有统一的CSL库文件,只在他的Demo板中提供了编程的简单的库,我后来也没移植官方Demo的库,直接使用的ROCK板子提供的第三方库(可能是板子的厂家自己改装的Demo里面的库)。废话不多说了。进入正题。
1->GPIO口接线方式
2-> GPIO口配置
2.1->MUX寄存器配置
GPIO口C6748一个引脚可能复用四五个功能,所以这个地方配置有点说道,跟一般的嵌入式设备不同。看初始化GPIO的例程:
void GPIO_INIT( void )
{
RK6748_pinmuxConfig(,0x80088808,0x80088808);
RK6748_pinmuxConfig(,0x00800000,0x00800000);
RK6748_pinmuxConfig(,0x00800000,0x00800000);
GPIO_setDir( GPIO_BANK6, GPIO_PIN13, GPIO_INPUT ); // IRQ
GPIO_setDir( GPIO_BANK6, GPIO_PIN15, GPIO_OUTPUT ); // MOSI
GPIO_setDir( GPIO_BANK6, GPIO_PIN1, GPIO_OUTPUT ); // CSN
GPIO_setDir( GPIO_BANK6, GPIO_PIN11, GPIO_INPUT ); // MISO
GPIO_setDir( GPIO_BANK6, GPIO_PIN12, GPIO_OUTPUT ); // SCK
GPIO_setDir( GPIO_BANK0, GPIO_PIN8, GPIO_OUTPUT ); // CE
printf("GPIO initi finish! \n");
}
主要就是前三句RK6748_pinmuxConfig()这个函数是对功能寄存器的配置,研究了好久,资料也没说这块,看了好几个文档。最后自己研究出来了。
配置GPIO口先调用RK6748_pinmuxConfig(Uint32 reg, Uint32 in_mask, Uint32 val);三个参数。这三个参数的值需要运行Pin Mux Ultility工具软件获得。如图4.5所示为Pin Mux Ultility软件界面。
图4.5 Pin Mux Utility软件界面
如图4.5中两个红框,在红框内选择我们要使用GPIO口,在本设计中如图3.1b所示连线图,驱动RF24L01用到了IO6_13,IO6_15,IO0_2,IO6_11,IO6_12,IO6_11, IO6_12,IO0_8,这些引脚和RF24L01的IRQ,MOSI,CSN,MISO,SCK,CE信号线和数据线相连。则需要在Pin Mux Utility软件中使能这些IO口。图中4.5中在1处选择DSP信号,然后在2处选择上述提到的GPIO口,双击后使能,背景会如图中变绿,在3处查看寄存器值,这些寄存器值就是编程时需要用到的,分别是PINMUX0:0x800000000,PINMUX1:0x008000000,PINMUX13:0x0088808,在配置DSP的IO引脚的MUX寄存器时,输入以下参数:
RK6748_pinmuxConfig(0, 0x8000000000, 0x8000000000);
RK6748_pinmuxConfig(1, 0x00800000, 0x00800000);
RK6748_pinmuxConfig(13, 0x0088808, 0x0088808);
完成GPIO口的使能配置。
之后通过GPIO_setDir( GPIO_BANK6, GPIO_PIN13, GPIO_INPUT ); 语句配置GPIO口的方向,上述语句是配置IO6_13为输入方向,同理对其他引脚进行操作也是按照这个语句稍作修改。
附带这个软件的下载地址:http://download.csdn.net/detail/u014281970/9824202
C6748的GPIO口配置使用的更多相关文章
- STM32f10xxx 之 GPIO口配置
背景 配置stm32f103使其完成PWM输出的过程中,在配置GPIO口的时候,按照习惯配置GPIO口的speed为50MHZ,突然就意识到,为什么大部分例程习惯配置为50MHZ,而不是其它值,即有了 ...
- Silicon C8051F340之GPIO口配置与使用
一.背景: 很久前用过C8051,现在有相关需求需要重新使用C8051,然后发现一年前开发的相关经验都忘得 基本上差不多了.连最基本的GPIO口配置还得重新来看手册,所以有此文,做个记录,以备下次快速 ...
- stm32寄存器版学习笔记01 GPIO口的配置(LED、按键)
STM32的I/O口可以由软件配置成如下8种模式:输入浮空.输入上拉.输入下拉.模拟输入.开漏输出.推挽输出.推挽式复用功能及开漏复用功能.每个I/O口由7个寄存器来控制:配置模式的端口配置寄存器CR ...
- 树莓派GPIO口驱动编写
一.wiringpi写法 #include <wiringPi.h> #include <stdlib.h> int main(int argc,char *argv[]) { ...
- linux驱动初探之杂项设备(控制两个GPIO口)
关键字:linux驱动.杂项设备.GPIO 此驱动程序控制了外接的两个二极管,二极管是低电平有效. 上一篇博客中已经介绍了linux驱动程序的编写流程,这篇博客算是前一篇的提高篇,也是下一篇博客(JN ...
- 基于boa服务器的web控制mini2440的GPIO口
win7 系统 虚拟机:ubuntu12.04 开发板:mini2440 上一篇已经详细的讲解了如何配置boa服务器,在这里我们就要利用boa服务器带来的便利,利用web控制开发板上的GIPO口,这 ...
- ARM Cortex M3系列GPIO口介绍(工作方式探讨)
一.Cortex M3的GPIO口特性 在介绍GPIO口功能前,有必要先说明一下M3的结构框图,这样能够更好理解总线结构和GPIO所处的位置. Cortex M3结构框图 从图中可以看出 ...
- STM32学习笔记(二):GPIO口工作原理
STM32每个IO口具有7个寄存器来控制,每个IO口都可以自由进行编程控制,我们编程实际上控制的是通过控制那7个寄存器来控制我们的IO口,我们可以通过编程控制IO口,把IO口配置成如下八种模式: 1. ...
- 树莓派GPIO口的使用
树莓派的优势在于Liunx操作系统加GPIO口,其中IO口时物联网组成中不可缺少的,高低电平的控制是很有必要的存在,再加有python的支持,玩转GPIO相对就容易多了 管脚编号 BCM: 编号侧重 ...
随机推荐
- .NET 后台动态添加GridView列
BoundField bfColumn1 = new BoundField(); bfColumn1.DataField = "zbcompanyname"; bfColumn1. ...
- JAVA ------ 大牛
李学凯 :http://blog.csdn.net/qq_27093465/article/details/51750535 码农场:http://www.hankcs.com/program/ 徐刘 ...
- APK加固之类抽取分析与修复
0x00 简单介绍 目前我己知的APK加固主要有以下两种方式(或有其它的方式有待发现) 隐藏dex文件:通过对目标DEX文件进行整体加密或压缩方式把整个dex转换为另外一个文件存放在assets文 ...
- GNU Nano编辑器
^表示 control建 ^X 退出 nano ^O 保存文件 ^R 插入其他文件内容至光标位置 ^W 查找字符串 ^Y 跳至前一屏 ^V 跳至后一屏 ^K 剪切光标所在行并保存到剪贴板,或剪切选中内 ...
- MySQL入门很简单: 2 MySQL数据类型
2. MySQL数据类型 2.1 整数类型 后面的是默认显示宽度: tinyint(4) smallint(6) mediumint(9) int(11) bigint(20) 2.2 浮点型和定点数 ...
- Association, Composition and Aggregation in UI5, CRM, S/4HANA and C4C
UI5 UI5使用Association和Aggregation描述控件之间的关系. Aggregation:parent和子控件在lifecycle上存在依赖关系: When a ManagedOb ...
- IOS 线程的总结(及cell的图片下载)
零.线程的注意点(掌握) 1.不要同时开太多的线程(1~3条线程即可,不要超过5条)2.线程概念1> 主线程 : UI线程,显示.刷新UI界面,处理UI控件的事件2> 子线程 : 后台线程 ...
- 如果有反向代理的情况下,获取最原始的IP的办法
HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_HOST"];
- vuejs给组件绑定原生事件
给组件绑定事件,该事件是自定义的事件 <div id='root'> <child @click='handleClick'></child> </div&g ...
- c++ 读入和写入文件
读入 #include<ifstream> ifstream infile; infile.open(img_dir); while(getline(infile,tmp)){ } 写入 ...