迅为iTOP-4418/6818开发板-驱动-实现GPIO扩展
实现 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 输入输出全部介绍完毕。
迅为iTOP-4418/6818开发板-驱动-实现GPIO扩展的更多相关文章
- 迅为嵌入式4418/6818开发板QT-HDMI显示
本文转自迅为论坛:http://www.topeetboard.com 平台:迅为4418/6818开发平台 1.首先请确认下光盘资料的日期(只有20171120及以后更新的光盘支持QT HDMI显示 ...
- iTOP-4412/4418/6818开发板-fastboot烧写脚本
在 iTOP-4412,4418,6818 开发板烧写的时候,使用的是 fastboot 工具. fastboot 工具需要在 cmd.exe 中调用,每次都需要输入烧写命令,这样步骤有点多.在程序员 ...
- 迅为iTOP-4418/6818开发板-驱动-IO初始化配置介绍和例程
对于所有的处理器,pad 一般可以分为两大类:IO(输入输出).Power(VDD 和GDD).类似摄像头 IO.以太网 IO.PWM 的 IO 等等,都可以统称为 IO.一个 IO,有可能能够被配置 ...
- 迅为iTOP-4418/6818开发板MiniLinux下的GPS使用手册
平台:iTOP-4418/6818开发板 系统:MiniLinux 在 Mini Linux 系统环境下 iTOP-4418 和 6818 的 GPS 实验调试步骤.给用户提供了“iTOP-4418- ...
- iTOP-4418开发板和6818开发板-第五路串口介绍
iTOP-4418开发板和6818开发板 的除去默认 4 个串口的配置和用法. 4418 的开发板最多支持 5 路串口,如下图所示,4418 的 datasheet. 6818 的开发板最多支持 ...
- iTOP-4418/6818开发板支持锂电池供电方案
iTOP-4418/6818开发板支持的是官方推荐的AXP228电池管理,动态调频,更稳定可靠,支持充放电电路与电量计(库化计), 广泛应用于各种电子产品中. 4418开发板中锂电池充放电接口,适用于 ...
- iTOP-4418/6818开发板支持双屏异显,双屏同显
iTOP-4418/6818开发板平台安卓系统下支持双屏异显,双屏同显,客户可按照不同用途,分别播放适合屏幕显示方式的内容 ,如HDMI屏幕和LCD屏幕显示不同内容, 一个屏幕播放广告,另一个屏幕运行 ...
- 支持动态调频_配置AXP228电源管理_4核8核兼容设计_iTOP-4418/6818开发板
iTOP-4418/6818开发板 支持动态调频,AXP228电源管理, 系统支持:Android4.4/5.1.1.Linux3.4.39.QT2.2/4.7/5.7.Ubuntu12.04 内存: ...
- RK30SDK开发板驱动分析(二):DDR频率配置
在内核配置界界面,我们可以很容易的配置DDR的频率,300M OR 600M, so easy! 那么它是如何起作用的呢? 回想 RK30SDK开发板驱动分析(一) 末尾提到MACHINE_START ...
随机推荐
- mysql 提高一 动态sql 传变量
1.需求 DELIMITER $$ SECOND STARTS '2018-09-07 08:00:00' ON COMPLETION PRESERVE ENABLE DO BEGIN ) DEFAU ...
- 《React Native 精解与实战》书籍连载「React Native 源码学习方法及其他资源」
此系列文章将整合我的 React 视频教程与 React Native 书籍中的精华部分,给大家介绍 React Native 源码学习方法及其他资源. 最后的章节给大家介绍 React Native ...
- 系统IO
系统IO:Linux系统提供给应用程序操作文件的接口 Everything is a file ,in Unix 在Unix/Linux下,万物皆文件 打开文件函数原型: #include< ...
- EQueue
EQueue 2.3.2版本发布(支持高可用) - dotNET跨平台 - CSDN博客https://blog.csdn.net/sD7O95O/article/details/78097193 E ...
- CentOS 7 rpm -i 时 警告warning: /var/tmp/rpm-tmp.z7O820: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY 解决方法
这是由于yum安装了旧版本的GPG keys造成的,解决办法就是 运行下面命令即可 # rpm --import /etc/pki/rpm-gpg/RPM* 查询已安装的rpm源 # rpm -qa ...
- Error updating database. Cause: java.sql.SQLException: Access denied for user '${username}'@'localhost' (using password: YES)
导入别人的项目,出现一个错误,经过排查,是db.properties配置文件中的用户名与Mybatis-conf.xml配置文件中调用的用户名不一致所导致的 (db.properties中用的是nam ...
- LODOP中ADD_PRINT_TABLE、HTM、HTML表格自动分页测试
LODOP中超文本超过打印项高度会自动分页,那么对于超大行,该行处在分页高度位置会怎样呢?本文用来测试一下三个语句对html中table中超大行在分页高度位置的处理. 测试结果:ADD_PRINT_T ...
- 使用按钮触发element 时间事件 --时间戳
本日 本周 本月 本年 时间按钮 date 组件内添加 pickerOptions2: { shortcuts: [ { text: '今日', onClick(picker) { picker ...
- 【题解】放球游戏B
题目描述 校园里在上活动课,Red和Blue两位小朋友在玩一种游戏,他俩在一排N个格子里,自左到右地轮流放小球,每个格子只能放一个小球.第一个人只能放1个球,之后的人最多可以放前一个人的两倍数目的球, ...
- MT【317】两次判别式
已知$a^2+b^2+c^2-ab-bc=1$求$c$的最大值______ 注意到$2c^2-3(a^2+b^2+c^2-ab-bc)=-(c-\dfrac{3}{2}b)^2-3(a-\dfrac{ ...