嵌入式爱好者

查看: 67560|回复: 13

[Linux] i.MX6ULL-S使用GPIO的问题

[复制链接]

2

主题

20

帖子

38

积分

i.MX6UL通行证

扫一扫,手机访问本帖
发表于 2021-2-17 23:35:13 | 显示全部楼层 |阅读模式
本帖最后由 hermes 于 2021-2-17 23:43 编辑

我现在正在做的一个板子用的是6ULL-S作为核心板,用到了4个GPIO,分别是
GPIO5.IO[0] 对应的编号是128
GPIO5.IO[6] 对应的编号是134
GPIO3.IO[27] 对应的编号是91GPIO3.IO[28] 对应的编号是92

首先,/sys/class/gpio目录下的情况如下
微信截图_20210217233633.png


其实我这个板子用不到lcd,目前烧录的系统用的dts是imx6ull-S-emmc-1024x600c7.dts这个
然后我按照教程去修改了一些dts,但是按照那个gpio测试shell去测试,一直提示失败
sh脚本如下
#!/bin/bash
echo Exporting pin $1.
echo $1> /sys/class/gpio/export
echo Setting pin out
cat /sys/class/gpio/gpio$1/value
echo out > /sys/class/gpio/gpio$1/value
echo Setting pin high.
echo 1 > /sys/class/gpio/gpio$1/value
echo $1> /sys/class/gpio/unexport


然后我执行./open.sh 91
微信截图_20210217233652.png

执行./open.sh 128
微信截图_20210217233702.png
原因不明,到底是我配置没生效还是什么别的原因

dts修改的部分如下
imx6ull-S-emmc-1024x600c7.dts
微信截图_20210217233718.png

imx6ull-14x14-evk.dts
微信截图_20210217233731.png
微信截图_20210217233740.png

目前看修改逻辑应该没问题啊
启用了对应的gpio的define
然后禁用了会复用到的组件

我有make dtbs然后copy到板子上然后执行sync
想知道应该如何修改才能成功






回复

使用道具 举报

0

主题

1173

帖子

2202

积分

发表于 2021-2-21 10:45:14 | 显示全部楼层
您的引脚复用有问题,您需要修改imx6ull-14x14-evk.dts,将引脚的其他复用去掉,并将这些引脚在iomux处复用成gpio,有几个需要在IOMUXC_SNVS里复用成gpio,可以查看CPU手册确认是哪些引脚,另外您控制GPIO时需要设置方向

6ull-s gpio应用笔记.zip

311.82 KB, 下载次数: 105, 下载积分: 贡献 1

点评

你好,看了下你的回复,逻辑是ok的,但是我的贴子里有详细截图 我是把那些影响的都disabled了,我这个操作本身也是根据你这边给的应用笔记的逻辑来的  详情 回复 发表于 2021-2-22 20:56
点评回复 支持 反对

使用道具 举报

2

主题

20

帖子

38

积分

i.MX6UL通行证

 楼主| 发表于 2021-2-22 20:56:02 | 显示全部楼层
zhichao 发表于 2021-2-21 10:45
您的引脚复用有问题,您需要修改imx6ull-14x14-evk.dts,将引脚的其他复用去掉,并将这些引脚在iomux处复用 ...

你好,看了下你的回复,逻辑是ok的,但是我的贴子里有详细截图
我是把那些影响的都disabled了,我这个操作本身也是根据你这边给的应用笔记的逻辑来的
点评回复 支持 反对

使用道具 举报

0

主题

1173

帖子

2202

积分

发表于 2021-2-23 08:50:55 | 显示全部楼层
您改的有问题,我提供的方法是举的例子,您改的时候要根据实际的引脚改,保证一个引脚只在一个地方复用,GPIO5.IO[0]和GPIO5.IO[6] 是IOMUXC_SNVS寄存器里的,需要在设备树里添加&iomuxc_snvs,在这里边复用gpio,我提供的应用笔记里有测试方法,您写的shell有问题,用我提供的文档里的方法吧

点评

我试了下,添加到了IOMUXC_SNVS 但是开机后看还是老样子,看开机信息有个bad crc use default envirment 不知道有么有关系 [attachimg]11443[/attachimg] [attachimg]11442[/attachimg]  详情 回复 发表于 2021-2-27 22:21
好的,谢谢,我试下  详情 回复 发表于 2021-2-23 16:05
点评回复 支持 反对

使用道具 举报

2

主题

20

帖子

38

积分

i.MX6UL通行证

 楼主| 发表于 2021-2-23 16:05:29 | 显示全部楼层
zhichao 发表于 2021-2-23 08:50
您改的有问题,我提供的方法是举的例子,您改的时候要根据实际的引脚改,保证一个引脚只在一个地方复用,GP ...

好的,谢谢,我试下
点评回复 支持 反对

使用道具 举报

2

主题

20

帖子

38

积分

i.MX6UL通行证

 楼主| 发表于 2021-2-27 22:21:46 | 显示全部楼层
zhichao 发表于 2021-2-23 08:50
您改的有问题,我提供的方法是举的例子,您改的时候要根据实际的引脚改,保证一个引脚只在一个地方复用,GP ...

我试了下,添加到了IOMUXC_SNVS
但是开机后看还是老样子,看开机信息有个bad crc use default envirment
不知道有么有关系 bootMessage2.zip (6.73 KB, 下载次数: 2)

点评

你的设备树修改的有点儿问题,附件里是一个添加了&iomuxc_snvs节点的设备树,你在这个设备树里边修改试试  详情 回复 发表于 2021-3-1 09:18
点评回复 支持 反对

使用道具 举报

0

主题

55

帖子

344

积分

LS1012A通行证LS1043A\46A通行证A40i/T3/T507/T527通行证i.MX8MM通行证RK3399通行证LS1028A通行证AM5718通行证Hi3519A通信证AM335x通行证i.MX6UL通行证i.MX RT通行证i.MX6Q通行证XX18通行证TCU通行证FDU产品通行证FCU1401通行证FCU1301通行证FCU11xx通行证FCU1201通行证FCU2301/FCU2302通行证FCU2401通行证5G转接卡通行证

发表于 2021-3-1 09:18:55 | 显示全部楼层
hermes 发表于 2021-2-27 22:21
我试了下,添加到了IOMUXC_SNVS
但是开机后看还是老样子,看开机信息有个bad crc use default envirment ...

你的设备树修改的有点儿问题,附件里是一个添加了&iomuxc_snvs节点的设备树,你在这个设备树里边修改试试

imx6ull-14x14-evk.zip

5.05 KB, 下载次数: 13, 下载积分: 贡献 1

点评

你好,朋友,如果方便,可以加下我的vx吗,id是shawburn 这样可能解答快一点,不会经常烦扰的,就问几个问题  详情 回复 发表于 2021-3-2 10:31
你好,朋友,我拿你这边提供的进去编译了下dtb,开机后还是一样的,没有什么区别  详情 回复 发表于 2021-3-1 22:34
点评回复 支持 反对

使用道具 举报

2

主题

20

帖子

38

积分

i.MX6UL通行证

 楼主| 发表于 2021-3-1 22:34:31 | 显示全部楼层
肉肉珩 发表于 2021-3-1 09:18
你的设备树修改的有点儿问题,附件里是一个添加了&iomuxc_snvs节点的设备树,你在这个设备树里边修改试试 ...

你好,朋友,我拿你这边提供的进去编译了下dtb,开机后还是一样的,没有什么区别 bootMessage3.zip (6.79 KB, 下载次数: 3)
点评回复 支持 反对

使用道具 举报

2

主题

20

帖子

38

积分

i.MX6UL通行证

 楼主| 发表于 2021-3-2 10:31:01 | 显示全部楼层
本帖最后由 hermes 于 2021-3-2 10:34 编辑
肉肉珩 发表于 2021-3-1 09:18
你的设备树修改的有点儿问题,附件里是一个添加了&iomuxc_snvs节点的设备树,你在这个设备树里边修改试试 ...

你好,朋友,如果方便,可以加下我的vx吗,id是shawburn
这样可能解答快一点,不会经常烦扰的,就问几个问题,而且我也是通情达理的人,知道技术专家都很忙的,你们的工作是有价值的

点评

1、我给你发的设备树里在iomuxc_snvs节点下的pinctrl里已经定义成gpio了,SNVS_TAMPER0复用的gpio5.0 2、出厂的设备树里SNVS_TAMPER0复用gpio5.0,用做了触摸,可以看一下硬件原理图,修改设备树的时候需要把原来的  详情 回复 发表于 2021-3-3 16:30
点评回复 支持 反对

使用道具 举报

0

主题

55

帖子

344

积分

LS1012A通行证LS1043A\46A通行证A40i/T3/T507/T527通行证i.MX8MM通行证RK3399通行证LS1028A通行证AM5718通行证Hi3519A通信证AM335x通行证i.MX6UL通行证i.MX RT通行证i.MX6Q通行证XX18通行证TCU通行证FDU产品通行证FCU1401通行证FCU1301通行证FCU11xx通行证FCU1201通行证FCU2301/FCU2302通行证FCU2401通行证5G转接卡通行证

发表于 2021-3-3 16:30:54 | 显示全部楼层
本帖最后由 肉肉珩 于 2021-3-3 16:37 编辑
hermes 发表于 2021-3-2 10:31
你好,朋友,如果方便,可以加下我的vx吗,id是shawburn
这样可能解答快一点,不会经常烦扰的,就问几个 ...

1、我给你发的设备树里在iomuxc_snvs节点下的pinctrl里已经定义成gpio了,SNVS_TAMPER0复用的gpio5.0
2、出厂的设备树里SNVS_TAMPER0复用gpio5.0,用做了触摸,可以看一下硬件原理图,修改设备树的时候需要把原来的功能屏蔽掉,echo $1 >/sys/class/gpio/export 后如果没有生成相应目录,一般都是复用配置不正确,或者功能冲突
3、建议先用命令行测试几个引脚,保证方法没问题后再写脚本

以SNVS_TAMPER0复用的gpio5.0为例,可参考一下图片(给你发的最新的设备树里截得图)
1.png
0.png

点评

嗯,之前确实没注意到GPIO5_0的这个复用,我按照您这边的禁用了这个相关的,继续测试 不显示说目录不存在,但是还是会报operation not permitted,而且我只echo $1> /sys/class/gpio/export这一步也还是没有目录生  详情 回复 发表于 2021-3-3 22:06
点评回复 支持 反对

使用道具 举报

2

主题

20

帖子

38

积分

i.MX6UL通行证

 楼主| 发表于 2021-3-3 22:06:28 | 显示全部楼层
肉肉珩 发表于 2021-3-3 16:30
1、我给你发的设备树里在iomuxc_snvs节点下的pinctrl里已经定义成gpio了,SNVS_TAMPER0复用的gpio5.0
2 ...

嗯,之前确实没注意到GPIO5_0的这个复用,我按照您这边的禁用了这个相关的,继续测试
不显示说目录不存在,但是还是会报operation not permitted,而且我只echo $1> /sys/class/gpio/export这一步也还是没有目录生成的。

整个问题最初开始我GPIO3.IO[27] 对应的编号是91
GPIO3.IO[28] 对应的编号是92
这两个不是snvs的复用我也注意了禁用相关的组件,比如I2C2,ov相机和csi和lcd都禁用了

但是最开始也一样这样报错,所以比较懵,和想象中完全不一样,感觉不只是snvs的问题。
都是引脚复用了,即使正确也都没法生成目录然后操作

点评

operation not permitted是另一个问题,我看前边给你发了回复和应用笔记,以为你看到并改了呢;这个是你的脚本里测试指令写的不对 你的脚本里 把 out重定向到value里了,所以才会报错,你改一下指令再试试  详情 回复 发表于 2021-3-4 12:50
点评回复 支持 反对

使用道具 举报

0

主题

55

帖子

344

积分

LS1012A通行证LS1043A\46A通行证A40i/T3/T507/T527通行证i.MX8MM通行证RK3399通行证LS1028A通行证AM5718通行证Hi3519A通信证AM335x通行证i.MX6UL通行证i.MX RT通行证i.MX6Q通行证XX18通行证TCU通行证FDU产品通行证FCU1401通行证FCU1301通行证FCU11xx通行证FCU1201通行证FCU2301/FCU2302通行证FCU2401通行证5G转接卡通行证

发表于 2021-3-4 12:50:36 | 显示全部楼层
本帖最后由 肉肉珩 于 2021-3-4 12:57 编辑
hermes 发表于 2021-3-3 22:06
嗯,之前确实没注意到GPIO5_0的这个复用,我按照您这边的禁用了这个相关的,继续测试
不显示说目录不存 ...

operation not permitted这个应该是你的脚本里测试指令写的不对,你的脚本里 把 out重定向到value里了,所以才会报错,我看前边给你发了回复和应用笔记,以为你看到并改了呢,你按照应用笔记里的方法改一下指令再试试。

0.png
1.png

点评

按照您这边所说的修改了 #!/bin/bash echo Exporting pin $1. echo $1> /sys/class/gpio/export echo Setting pin out echo "out" > /sys/class/gpio/gpio$1/direction cat /sys/class/gpio/gpio$1/value e  详情 回复 发表于 2021-3-14 22:47
点评回复 支持 反对

使用道具 举报

2

主题

20

帖子

38

积分

i.MX6UL通行证

 楼主| 发表于 2021-3-14 22:47:04 | 显示全部楼层
肉肉珩 发表于 2021-3-4 12:50
operation not permitted这个应该是你的脚本里测试指令写的不对,你的脚本里 把 out重定向到value里了, ...

按照您这边所说的修改了
#!/bin/bash
echo Exporting pin $1.
echo $1> /sys/class/gpio/export
echo Setting pin out
echo "out" > /sys/class/gpio/gpio$1/direction

cat /sys/class/gpio/gpio$1/value
echo Setting pin high.
echo "1" > /sys/class/gpio/gpio$1/value
cat /sys/class/gpio/gpio$1/value

修改后再读取值,发现值永远都是0
试了128 134 91 92

点评

用万用表量电压,要是看value值,有些引脚需要做SION位回环  详情 回复 发表于 2021-3-15 10:02
点评回复 支持 反对

使用道具 举报

0

主题

55

帖子

344

积分

LS1012A通行证LS1043A\46A通行证A40i/T3/T507/T527通行证i.MX8MM通行证RK3399通行证LS1028A通行证AM5718通行证Hi3519A通信证AM335x通行证i.MX6UL通行证i.MX RT通行证i.MX6Q通行证XX18通行证TCU通行证FDU产品通行证FCU1401通行证FCU1301通行证FCU11xx通行证FCU1201通行证FCU2301/FCU2302通行证FCU2401通行证5G转接卡通行证

发表于 2021-3-15 10:02:00 | 显示全部楼层
hermes 发表于 2021-3-14 22:47
按照您这边所说的修改了
#!/bin/bash
echo Exporting pin $1.

用万用表量电压,要是看value值,有些引脚需要做SION位回环
点评回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-11-22 03:46

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表