查看: 101143|回复: 13

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

2

主题

31

回帖

38

积分

i.MX6UL通行证

hermes 发表于 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

主题

1185

回帖

2207

积分

FCU1501通行证

zhichao 发表于 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

主题

31

回帖

38

积分

i.MX6UL通行证

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

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

使用道具 举报

0

主题

1185

回帖

2207

积分

FCU1501通行证

zhichao 发表于 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

主题

31

回帖

38

积分

i.MX6UL通行证

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

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

使用道具 举报

2

主题

31

回帖

38

积分

i.MX6UL通行证

楼主| hermes 发表于 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)
微信截图_20210227221751.png



微信截图_20210227221733.png


点评

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

使用道具 举报

0

主题

79

回帖

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

主题

31

回帖

38

积分

i.MX6UL通行证

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

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

使用道具 举报

2

主题

31

回帖

38

积分

i.MX6UL通行证

楼主| hermes 发表于 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

主题

79

回帖

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为例,可参考一下图片(给你发的最新的设备树里截得图)
0.png
1.png

点评

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

使用道具 举报

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

本版积分规则