zhangzh 发表于 2016-11-3 09:30:48

控制GPIO无效

IMX6-EK200 开发板上的GPIO口 SD2_CMD, 现在发现用作输出时控制无效,请问是什么原因

(1)若gpio11设置为输入,将io口和地短接,可以监测到电平变化
root@myzr /sys/class/gpio/gpio11$ ls
active_lowdirection   edge      power       subsystem   uevent      value
root@myzr /sys/class/gpio/gpio11$ cat value
1
root@myzr /sys/class/gpio/gpio11$ cat value
1
root@myzr /sys/class/gpio/gpio11$ cat value
0
root@myzr /sys/class/gpio/gpio11$ cat value
1
root@myzr /sys/class/gpio/gpio11$ cat value
1
root@myzr /sys/class/gpio/gpio11$ cat value
1
root@myzr /sys/class/gpio/gpio11$ cat value
1
root@myzr /sys/class/gpio/gpio11$ cat value
0
root@myzr /sys/class/gpio/gpio11$ cat value
0
root@myzr /sys/class/gpio/gpio11$ cat value
0
root@myzr /sys/class/gpio/gpio11$ cat value
1
(2)若gpio11设置为输出,将io口输出低,万用表测试却始终为高
root@myzr /sys/class/gpio/gpio11$ echo out > ./direction
root@myzr /sys/class/gpio/gpio11$ ls
active_lowdirection   edge      power       subsystem   uevent      value
root@myzr /sys/class/gpio/gpio11$ cat direction
out
root@myzr /sys/class/gpio/gpio11$ echo 0 > ./value







另外,再请教一个问题,有没有专门的管脚配置工具,可以配置管脚用于什么功能。


唐斌 发表于 2016-11-3 10:17:54

检查代码里有没有配置过 SD2_CMD。如果代码里配置过了,文件系统下 IO 的功能会受内核代码配置的影响。
另外,参照测试手册里用到的 GPIO 进行测试。
管脚的可选配置在代码里找就行,类似 Linux-3.0.35 的 iomux-mx6q.h, Linux-3.14.52 的 imx6q-pinfunc.h

zhangzh 发表于 2016-11-3 10:34:50

board-myimx6ek200-6q.h 做修改如下,还是不行
216         /*
217         MX6Q_PAD_SD2_CLK__USDHC2_CLK,
218         MX6Q_PAD_SD2_CMD__USDHC2_CMD,
219         MX6Q_PAD_SD2_DAT0__USDHC2_DAT0,
220         MX6Q_PAD_SD2_DAT1__USDHC2_DAT1,
221         MX6Q_PAD_SD2_DAT2__USDHC2_DAT2,
222         MX6Q_PAD_SD2_DAT3__USDHC2_DAT3,
223         */
224         MX6Q_PAD_SD2_CLK__GPIO_1_10,
225         MX6Q_PAD_SD2_CMD__GPIO_1_11,
226         MX6Q_PAD_SD2_DAT0__GPIO_1_15,
227         MX6Q_PAD_SD2_DAT1__GPIO_1_14,
228         MX6Q_PAD_SD2_DAT2__GPIO_1_13,
229         MX6Q_PAD_SD2_DAT3__GPIO_1_12,
230

Altman 发表于 2017-6-4 11:13:08

请问你解决了吗 我也遇到相同的问题了 52号管脚也是控制不了
页: [1]
查看完整版本: 控制GPIO无效