新闻  |   论坛  |   博客  |   在线研讨会
iTOP-iMX6开发板-GPIO读写配置文档_V1.0《2》
魔法城堡 | 2019-10-22 10:30:18    阅读:677   发布文章

本文档主要介绍 iMX6 板子 gpio 引脚读写配置。有关平台文件的设备注册的资料可以参


考“iTOP-iMX6-平台文件注册设备”文档。注册的设备名称是“gpio_ctl”。


硬件环境:iMX6 开发板:核心板 v_1.2、底板 v_2.2(以及 v_2.1 底板)。


软件环境:Ubuntu12.04。


1.4 平台文件修改


进入 iTOPiMX6_android4.4.2/kernel_imx/arch/arm/mach-mx6/目录,使用 vi


board-mx6q_topeet.c 命令,打开 board-mx6q_topeet.c 文件。


搜索关键词“CONFIG_LEDS_CTL”,按照 leds 模块,添加 gpio 的配置。如下如所示。

修改完成后,保存退出。再次打开 board-mx6q_topeet.c 文件。

搜索关键词“LEDS_CTL”,按照 leds 模块,添加 gpio 配置。如下图所示。

添加完成后,保存退出。

接着进入“iTOP-iMX6_android4.4.2/kernel_imx/drivers/char”目录,使用“vi

Kconfig”命令打开 Kconfig 文件。

搜索关键词”LEDS_CTL”,按照 leds 模块,添加 gpio 配置。如下图所示。

修改完成后,保存退出。

可按下面步骤验证一下。

进入内核目录,依次使用命令”cp config_for_iTOPiMX6_linux .config”、” export

ARCH=arm”、”make menuconfig”。进入 Device Drivers →Character devices 目

录,可以看见新添加的配置。如下图所示。

选中,退出,按照”iTOP-i.MX6 开发板之全能版使用手册”中的内核编译步骤,进行编

译内核。重新烧写到开发板。

开发板启动后,使用命令“ls /sys/devices/platform/”可以查看到新注册的 gpio_ctl 设

备。如下图所示。


至此,设备注册完成。

1.5 驱动加载及应用测试

1.5.1 读操作

具体编译过程不再赘述。依然可以参考“iTOP-iMX6-GPIO 读取 GPIO 以及拨码开关状

态”文档。下面讲解加载过程和测试过程。

可以通过挂载 nfs 共享目录、tftp 传输文件和 U 盘挂载等方法,把 iTOP-

iMX6_gpio_read.ko 文件上传到开发板。

使用 insmod 命令加载驱动模块。如下图。

6.jpg

在 probe 函数中,有获取 gpio 状态的函数,然后打印出来。如下图。

下面使用”./iMX6_gpio_read”命令运行应用测试程序,检测 gpio 状态。如下图。

此时检测到的状态和刚加载驱动时状态一致。

通过驱动程序,我们可以得知,第一个 gpio 为 1 号拨码开关。后面依次为 U38 接口,1

号、2 号、3 号、10 号、12 号引脚。如下图。

由上图可知,和我们预期相同。

使用引线连接 11 号引脚和 12 号引脚、使用引线连接 4 号引脚和 2 号引脚。然后使用

“./iMX6_gpio_read”命令,运行测试程序。结果如下图。

测试完成。

1.5.2 写操作

与读操作类似。具体编译过程不再赘述。依然可以参考“iTOP-iMX6-GPIO 读取 GPIO

以及拨码开关状态”文档。下面讲解加载过程和测试过程。

可以通过挂载 nfs 共享目录、tftp 传输文件和 U 盘挂载等方法,把 iTOP-

iMX6_gpio_write.ko 文件上传到开发板。

使用 insmod 命令加载驱动模块。如下图。

12.jpg

在 probe 函数中,我们已经将各个 gpio 状态设置为 1,也就是高电平,如下图。



现在 U38 上的五个引脚均为高电平。通过万用表测量电压均为 3.3v(4 号、9 号引脚为

地)。下面调用应用程序,改变引脚的电压值。使用”./iMX6_gpio_write 0 1”命令改变 1

号引脚的电压值。如下图。

15.jpg

此时使用万用表测量引脚 1 的电压值。为 0V。

下面说明一下运行应用程序时,传递的两个参数。第一参数 cmd 表示状态。1 表示高电

平、0 表示低电平。第二个参数 arg 表示对应操作的 gpio。arg 为 0 表示 1 号拨码开关、为

1~5 表示 U38 接口的 1 号、2 号、3 号、10 号、12 号引脚。

下面把 1 号引脚拉高,10 号引脚拉低。使用命令”./iMX6_gpio_write 1 1”

和”./iMX6_gpio_write 0 4”。如下图。

使用万用表测量这两个引脚的电压。1 号引脚为 3.3v,10 号引脚为 0v。

测试完成。


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客