专栏中心

EEPW首页 > 专栏 > 迅为iTOP-4418/6818开发板-驱动-实现GPIO扩展

迅为iTOP-4418/6818开发板-驱动-实现GPIO扩展

发布人:daybydayi 时间:2018-09-21 来源:工程师 发布文章

实现 GPIO 扩展,先弄清楚“复用”的概念,将调用这些 GPIO 的驱动去掉配置,重新编
译,加到自己的驱动中,就可以实现扩展的 GPIO 的输入和输出。
另外必须要先看文档“迅为iTOP-4418开发板和6818开发板-驱动-GPIO 输入输出和例程_V1.X”。
1 GPIO 扩展的内核配置
在底板上,引出的扩展口有 J6(camera 口),J38(GPIO/CAN/485),另外如果自己做
底板,假如不使用 WIFI 等模块,还可以将 WIFI 等模块的 IO 口扩展成 GPIO。
这里只介绍 J6 和 J38 上的方便扩展的 IO 口。
如下图所示,是摄像头接口。这里带有“SDA”,“SCL”字样的两个引脚为总线引脚,
不建议更改为 GPIO 接口。其中的红色字样比如“MCU_TSI1_D5”为关键词。

若想确定该引脚是否可复用为 GPIO 接口,则在核心板原理图
“topeet_s5p4418_coreborad_v1_2.pdf”搜索该关键词,可以得到两个结果。一个是在板
对板连接器,另一个便是在 MCU 上的引脚。如下图所示

在 MCU 上用户可以看到该引脚对应的其他功能,对应红框中的位置可以发现,该引脚可
复用为 GPIO,编号为 GPIOE1,那么宏定义为(PAD_GPIO_C+13)。其他的引脚所对应编
号用户可根据此方法来依次查询。
如果这个 GPIO,被其它驱动调用,需要将驱动去掉配置,如下图所示,要将摄像头的驱
动去掉,这样就可以在这些接口当做 GPIO。
Device Drivers --->
Multimedia support --->
Video capture adapters (去掉)
需要将 OV5640 和 TVP5150 同时去掉,这两个摄像头的驱动都在 Video capture
adapters 下。

如下图所示,将 RS485、Relay 驱动去掉,也可以扩展一些 GPIO 口。
Device Drivers --->
Character devices --->

2 GPIO 复用统计
作者为了方便大家扩展,将网络标号,管脚号等统计出来,方便大家扩展。

有了接口对应的 GPIO 编号,便可以写程序调用这些 GPIO 了。
3 驱动
用户可以根据自己实际需求,在“iTOP-4418 和 6818-驱动-GPIO 输出输出驱动和
GPIO 扩展_V1.X”其中驱动例程基础上修改。
其中的代码
#define GPIOIN (PAD_GPIO_B + 18)
如果要替换为操作多个 GPIO,可以定义为数组,例如:
static int gpiostest[]={
PAD_GPIO_C+13,PAD_GPIO_C+5,PAD_GPIO_C+4,PAD_GPIO_E+1,PAD_GPIO_E+3,
PAD_GPIO_E+2,PAD_GPIO_E+0,PAD_GPIO_D+31,PAD_GPIO_D+30,PAD_GPIO_D+29,PAD_GPIO_E+4,PA
D_GPIO_D+28,PAD_GPIO_E+6,PAD_GPIO_E+5,PAD_GPIO_B+16,
PAD_GPIO_C+10,PAD_GPIO_C+11,PAD_GPIO_C+12,PAD_GPIO_C+9,
};
在使用 gpio_request/free 函数申请和释放 GPIO;使用
gpio_direction_input/gpio_direction_output 函数设置为输入和输出模式;
gpio_get_value/gpio_set_value 函数获取 GPIO 值和设置 GPIO 输出等等,只需要做一个循
环即可,例如 gpio_request 函数申请 GPIO 代码如下:
for(i=0 ; i<NUMBER ; i++){
ret = gpio_request(gpiostest[i], "gpiotest");
if (ret) {
printk("request GPIO %d for gpio failed\n", gpiostest[i]);
return ret;
}
}
其它操作也是类似。
至此,4418 和 6818开发板的 GPIO 扩展以及 GPIO 输入输出全部介绍完毕。


专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

基于ST T5 GNSS芯片高精度定位系统在非车规应用解决方案

汽车微控制器技术为下一代车辆带来全新突破

ASM-51宏汇编使用手册

atmega8熔丝位说明

[Android开发视频教学]WIFI网络操作(23)

视频 2010-10-29

UNO SPE扩充板,即插即用UNO R4实现超高数据传输、实时链接

ATM接入交换机--工程师培训手册

[Android开发视频教学]广播机制(二)(22)

视频 2010-10-29

[Android开发视频教学]XML文件解析(20)

视频 2010-10-29

速度提高百倍!新型磁光存储器助力超快计算

MIT研发机器蜂 有望实现人工授粉

消费电子 2025-01-20

大电流、高性能降压-升压稳压器

以马达控制器ROS1驱动程序实现机器人操作系统

[Android开发视频教学]Socket编程(24)

视频 2010-10-29

强化定位服务 提高距离测量精度 蓝牙6.0技术探勘

AVR 关于BoolLoader自编程

资源下载 2007-02-16

AT91SAM7S64调试笔记

以无线物联网系统监测确保室内空气质量

利用CPU和SVE2加速视讯译码和图像处理

[Android开发视频教学]广播机制(一)(21)

视频 2010-10-29
更多 培训课堂
更多 焦点
更多 视频

技术专区