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口配置使用的更多相关文章

  1. STM32f10xxx 之 GPIO口配置

    背景 配置stm32f103使其完成PWM输出的过程中,在配置GPIO口的时候,按照习惯配置GPIO口的speed为50MHZ,突然就意识到,为什么大部分例程习惯配置为50MHZ,而不是其它值,即有了 ...

  2. Silicon C8051F340之GPIO口配置与使用

    一.背景: 很久前用过C8051,现在有相关需求需要重新使用C8051,然后发现一年前开发的相关经验都忘得 基本上差不多了.连最基本的GPIO口配置还得重新来看手册,所以有此文,做个记录,以备下次快速 ...

  3. stm32寄存器版学习笔记01 GPIO口的配置(LED、按键)

    STM32的I/O口可以由软件配置成如下8种模式:输入浮空.输入上拉.输入下拉.模拟输入.开漏输出.推挽输出.推挽式复用功能及开漏复用功能.每个I/O口由7个寄存器来控制:配置模式的端口配置寄存器CR ...

  4. 树莓派GPIO口驱动编写

    一.wiringpi写法 #include <wiringPi.h> #include <stdlib.h> int main(int argc,char *argv[]) { ...

  5. linux驱动初探之杂项设备(控制两个GPIO口)

    关键字:linux驱动.杂项设备.GPIO 此驱动程序控制了外接的两个二极管,二极管是低电平有效. 上一篇博客中已经介绍了linux驱动程序的编写流程,这篇博客算是前一篇的提高篇,也是下一篇博客(JN ...

  6. 基于boa服务器的web控制mini2440的GPIO口

    win7 系统  虚拟机:ubuntu12.04 开发板:mini2440 上一篇已经详细的讲解了如何配置boa服务器,在这里我们就要利用boa服务器带来的便利,利用web控制开发板上的GIPO口,这 ...

  7. ARM Cortex M3系列GPIO口介绍(工作方式探讨)

    一.Cortex M3的GPIO口特性    在介绍GPIO口功能前,有必要先说明一下M3的结构框图,这样能够更好理解总线结构和GPIO所处的位置. Cortex M3结构框图     从图中可以看出 ...

  8. STM32学习笔记(二):GPIO口工作原理

    STM32每个IO口具有7个寄存器来控制,每个IO口都可以自由进行编程控制,我们编程实际上控制的是通过控制那7个寄存器来控制我们的IO口,我们可以通过编程控制IO口,把IO口配置成如下八种模式: 1. ...

  9. 树莓派GPIO口的使用

    树莓派的优势在于Liunx操作系统加GPIO口,其中IO口时物联网组成中不可缺少的,高低电平的控制是很有必要的存在,再加有python的支持,玩转GPIO相对就容易多了 管脚编号 BCM: 编号侧重 ...

随机推荐

  1. ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务解决办法

    ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务解决办法: 1.首先打开cmd命令 查看本地TNSPING配置 是否ok?然后找到 Oracle 安装文件 中 listener. ...

  2. idea 插件描述(转)

    提供些idea插件的干货.干货.干货! 如何安装idea plug,方法如下图:如果安装不了考虑下是否代理问题: 1,maven helper 以前查看maven依赖都比较麻烦,需要用命令maven ...

  3. Javascript与jQuery

    什么是Javascript? Javascript简称js是用于网页前端的脚本语言,几乎所有的网页动画.特效都是由Javascirpt实现的. 什么是jQuery? jQuery是一个非常棒的js框架 ...

  4. RNQOJ [stupid]愚蠢的矿工(树形依赖背包)

    题意 题目链接 Sol 树形依赖背包板子题 树形依赖背包大概就是说:对于一个点,只有选了它的父亲才能选自身 把dfs序建出来,倒过来考虑 设\(f[i][j]\)表示从第\(i\)个节点往后背包体积为 ...

  5. C++ Knowledge series Conversion & Constructor & Destructor

    Everything has its lifecycle, from being created to disappearing. Pass by reference instead of pass ...

  6. 如何解决ArcGIS Runtime SDK for Android中文标注无法显示的问题

    自10.2版本开始,我就一直被ArcGIS Runtime SDK for Android的中文标注无限困扰.无论是驻留于内存中的Graphic 的文本符号TextSymbol,还是新增的离线geod ...

  7. 百万级数据库SQL优化大总结

    网上关于SQL优化的教程很多,但是比较杂乱.近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充. 这篇文章我花费了大量的时间查找资料.修改.排版,希望大家阅读之后,感觉 ...

  8. 数组:获取GET的键名

    1.今天仓鼠遇到这个情况:通过$_GET获取参数,但是参数变成了键名形式 2.那仓鼠想要拿到这个键名,那就要:使用array_keys()获取数组中的所有键名,然后进行转换 代码如下: 结果: 以上 ...

  9. golang 2行代码在基于arm linux的树莓派、orangepi上运行http web服务

    go语言(golang)简化了跨平台交叉编译步骤,支持在windows系统下交叉编译基于arm+linux平台的应用,运行时无需其它依赖库.以下以一个简单的http server为例,先上源码: ** ...

  10. 如何处理用代码创建SD Sales order时遇到的错误消息KI 180

    错误消息KI 180:You must enter a company code for transaction Create sales document 代码: REPORT zcreate_so ...