立即注册
登录
电子工程网
新闻
新品
文章
下载
视频
工具
论坛
研讨会
空间
落风的个人空间
https://www.eechina.com/space-uid-138363.html
[收藏]
[复制]
[RSS]
空间首页
博客
主题
留言板
个人资料
论坛
BBS
我的空间
好友
帖子
收藏
道具
勋章
任务
博客
迅为-iMX6开发板-设备树内核-sys方式控制GPIO
已有 542 次阅读
2020-11-11 12:01
本文档主要讲解,iMX6 开发板,通过 sys 文件的方式来控制 GPIO。
要通过 sys 控制 GPIO,需要做以下几步操作:
1 开启内核中的“GPIO_SYSFS”驱动配置;
2 确保 IO 被配置为 GPIO,并且没有驱动调用;
3 计算 GPIO 编号,通过命令或者脚本操作 GPIO。
1 GPIO_SYSFS 配置
如下图所示,可以看到内核中 GPIO_SYSFS 是默认配置的,这个驱动所有原厂 BSP 基本都会包含,一般情况下是默认配置的。
2 确保 IO 被配置为 GPIO,并且没有驱动调用
这里以
LED
的 GPIO 为例, 将 LED 的驱动去掉,确保没有驱动调用。
Device Drivers --->
Character devices --->
Enable LEDS config ---去掉,并重新编译内核烧写到开发板中。
如下图所示配置 menuconfig。
烧写到开发板中,确保没有 led 的设备节点,默认的内核中是有 led 设备节点的,如下图所示。
GPIO 的配置这里就不再重复介绍,在“iTOP-iMX6-设备树内核-IO 配置分析文档_V1.0”中有介绍。
3 计算 GPIO 编号并测试
LED 的网络标号为:KEY_ROW6
LED 对应 GPIO 的 PIN 脚名称为:GPIO_2
GPIO_2 对应的宏定义为:#define MX6QDL_PAD_GPIO_2__GPIO1_IO02
那么 GPIO_2 对应的 GPIO 的 bank[n]为 GPIO1_IO02,也就是 bank 1 的 02 号 GPIO。
GPIO 的编号计算方法为:nr=(P -1)* 32 + N;
nr 为编号,P 为 bank 号,N 为具体 bank 中的编号。
那么 P=1,N=2,通过计算得出 nr=2。
测试命令为:
echo nr > /sys/class/gpio/export
echo out > /sys/class/gpio/gpionr/direction
echo 1 > /sys/class/gpio/gpionr/value ---> 写高电平,小灯亮
echo 0 > /sys/class/gpio/gpionr/value ---> 写低电平,小灯灭
以上 nr 替换成 GPIO 的编号,则命令为:
echo 2 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio2/direction
echo 1 > /sys/class/gpio/gpio2/value --->写高电平,小灯亮
echo 0 > /sys/class/gpio/gpio2/value ---> 写低电平,小灯灭
如下图所示,执行三条命令之后小灯亮。
接着执行 echo 0 > /sys/class/gpio/gpio2/value 小灯灭。
至此,sys 测试 gpio 完成。
另外需要注意的是,本文档没有介绍 LED 对应的管脚是如何配置的,因为 LED 驱动能够运行,那么肯定在设备树文件中配置了。
如果想要掌握如何配置管脚,可以参考“iTOP-iMX6-设备树内核-IO 配置分析文档_V1.X”和“iTOP-iMX6-设备树内核-IO 扩展例程_V1.X”文档。
路过
鸡蛋
鲜花
握手
雷人
收藏
邀请
举报
全部
作者的其他最新博客
•
迅为RK3399开发板瑞芯微64位六核Linux安卓8.1国产AI人工智能
•
迅为RK3399开发板瑞芯微64位六核Linux安卓8.1国产AI人工智能主板
•
勇敢牛牛不怕困难,嵌入式之学习路线了解,冲
•
迅为IMX6ULL开发板Linux 4G通信实验
•
迅为IMX6ULL开发板Linux RS232/485驱动实验(下)
•
迅为4412开发板实验_Makefile编译(下)
评论 (
0
个评论)
您需要登录后才可以评论
登录
|
立即注册
评论
落风
加为好友
给我留言
打个招呼
发送消息
关于我们
-
服务条款
-
使用指南
-
站点地图
-
友情链接
-
联系我们
电子工程网
© 版权所有
京ICP备16069177号
| 京公网安备11010502021702
返回顶部