当前位置:首页>经验>

gpio如何分配管脚(gpio内部结构图解)

来源:原点资讯(m.360kss.com)时间:2022-11-06 12:15:17作者:YD166手机阅读>>

在进行嵌入式开发的时候,为了合理化外设接口和硬件布局,常需要对核心板的外设引脚进行复用分配定义。对于刚接触的同学而言难度较大,因此本文将以A7核心板为例给大家详解如何快速实现核心板的引脚复用分配。

M6G2C核心板产品简介

M6G2C是ZLG致远电子精心设计,采用板对板连接器接口的低功耗、高性能的嵌入式核心板。基于NXP性能更优的Cortex®-A7内核i.MX6UL处理器,主频高达528MHz,集成了DDR3、NandFlash、Wi-Fi、蓝牙、ZigBee、硬件看门狗等外设。同时,产品自带8路UART、2路USB OTG、最高2路CAN-bus、2路以太网等十分强大的工业控制通讯接口。

gpio如何分配管脚,gpio内部结构图解(1)

M6G2C核心板引脚复用原理

嵌入式Linux核心板的引脚一般都是多功能复用可选的。M6G2C核心板,除了部分功能固定的引脚(VCC、GND等),大部分引脚的功能都是可以复用为Alt0-Alt8(功能编号,详见引脚分配表)共9种功能。因此,我们首先要根据自身需求,依照引脚复用分配表对所有外设进行分配(当然,M6G2C出厂默认有相对应引脚分配,如果默认分配对自己不合适,我们只需要修改部分引脚即可),修改好设备树文件,然后进行内核(部分要进行配置)和设备树编译,把新的内核和设备树文件更新到板子即可。

准备条件:磨刀不误砍柴工

【 软件方面 】

1. 安装好虚拟机的电脑(VMware Workstation 12及以上最佳,电脑配置越高越好);
2. M6G2C的内核源码linux-src-b85fbbf.tar.gz(详见光盘资料,找FAE索取);
3. 虚拟机镜像(找FAE索取)。

【 硬件方面 】

1. EPC-6G2C-L评估套件1套(可官网旗舰店购买);
2. TF卡1张 / 网线1根 / microUSB线1根;
3. USB转232调试串口1个;
4. 工业接头12V/2A输出的适配器1个;
5. 读卡器1个(使用TF卡则需要准备)。

举个栗子:快速实现CAN改为GPIO

默认大家已经安装好虚拟机并打开我司制作好的镜像文件,打开终端窗口,cd进入源码路径,解压内核源码:

1 vmuser@Linux-host:~/A7-kernel$ tar zxvf linux-src-b85fbbf.tar.gz

进入解压之后的目录,打开M6G2C配套的设备树文件imx6g2c-256m.dts:

1 vmuser@Linux-host:~/A7-kernel$ cd linux-src/

2 vmuser@Linux-host:~/A7-kernel/linux-src$ vi arch/arm/boot/dts/imx6g2c-256m.dts

要将CAN2改成GPIO,我们要在dts里面把CAN2的定义注释掉,然后参考GPIO的定义,将它配置为GPIO。我们查阅光盘资料“光盘资料\硬件设计\06. 管脚分配表”:

gpio如何分配管脚,gpio内部结构图解(2)

上图可见CAN2为B9和B10,Alt5可为GPIO功能,分别是GPIO1_22和GPIO1_23。

我们来屏蔽掉设备树文件中CAN2的设备节点以及相关配置:

1 /*
2 &flexcan2 {
3 pinctrl-names = "default";
4 pinctrl-0 = <&pinctrl_flexcan2>;
5 status = "okay";
6 };
7 */
8 … 略 …
9 /*
10 pinctrl_flexcan2: flexcan2grp{
11 fsl,pins = <
12 MX6UL_PAD_UART2_RTS_B__FLEXCAN2_RX 0x1b020
13 MX6UL_PAD_UART2_CTS_B__FLEXCAN2_TX 0x1b020
14 >;
15 };
16 */

接下来在iomuxc(GPIO定义一般都在这里)中添加GPIO参数配置,把CAN2复用为GPIO:

1 &iomuxc {
2 pinctrl-names = "default";
3 pinctrl-0 = <&pinctrl_hog_1>;
4 imx6ul-evk {
5 pinctrl_hog_1: hoggrp-1 {
6 fsl,pins = <
7 MX6UL_PAD_NAND_DQS__GPIO4_IO16 0x17059 /* err led */
8 MX6UL_PAD_NAND_CE1_B
9 MX6UL_PAD_LCD_RESET__GP
10 MX6UL_PAD_SNVS_TAMPER9__GPIO5_IO09 0x17059 /* gpio5_9 */
11 MX6UL_PAD_SNVS_TAMPER1__GPIO5_IO01 0x17059 /* sys mode */
12 MX6UL_PAD_SNVS_TAMPER2__GPIO5_IO02 0x17059 /* clr reg */
13 MX6UL_PAD_SNVS_TAMPER3__GPIO5_IO03 0x17059 /* eth1_reset */
14 MX6UL_PAD_SNVS_TAMPER4__GPIO5_IO04 0x17059 /* eth2_reset */
15 MX6UL_PAD_UART2_RTS_B__GPIO1_IO23 0x17059 /* CAN_GPIO1_23 */
16 MX6UL_PAD_UART2_CTS_B__GPIO1_IO22 0x17059 /* CAN_GPIO1_22 */
17 >;
18 };
19 … 略 …
20 };
21 };

EPC-6G2C-L工控板,默认支持2路CAN设备端口 ,所以我们还需要参考上面的说明,按照类似的步骤,将CAN1也屏蔽掉(此处不再赘述)。

接着清除配置(清除旧的配置信息):

1 vmuser@Linux-host:~/A7-kernel/linux-src$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean &&

使用EPC工控板配置文件(配置成EPC出厂默认配置):

1 vmuser@Linux-host:~/A7-kernel/linux-src$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- epc_m6g2c_defconfig &&

然后,进入内核配置菜单中:

1 vmuser@Linux-host:~/A7-kernel/linux-src$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig

去掉CAN总线支持,将CAN bus subsystem support选项去掉:

1 [*]Networking support --->

2 < > CAN bus subsystem support ---->

温馨提示:“空”代表不选择,“*”代表编译到内核,“M”代表编译成模块。

以上修改完成之后,保存配置并编译内核:

1 vmuser@Linux-host:~/A7-kernel/linux-src$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- all -j8

温馨提示:编译生成的内核,在arch/arm/boot中。

编译设备树文件:

1 vmuser@Linux-host:~/A7-kernel/linux-src$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dtbs

温馨提示:编译生成的设备树,在arch/arm/boot/dts中。

将上述内核和设备树更新到目标板即可,更新方法可以使用TF烧录或者以太网烧写,具体参见在线文档:

https://manual.zlg.cn/web/#/16/220

归纳总结:触类旁通

重新分配引脚功能大致思路为:修改设备树——清除配置文件——更改配置文件——编译内核和设备树——更新目标板内核和设备树。

了解了条理思路并按照教程走一遍,是不是一下子就感觉简单多啦。以此类推,如果要把默认以太网接口改成GPIO使用,条理思路跟CAN改GPIO也是类似的。

栏目热文

gprinter使用教程(gprinter老旧版本大全)

gprinter使用教程(gprinter老旧版本大全)

2014-07-29 10:13:00 [ 中关村在线]佳博科技股份有限公司,是专业从事商用票据打印机领域内技术与产品的...

2022-11-06 12:25:12查看全文 >>

gprinter标签打印教程(gprinter标签打印机不出字)

gprinter标签打印教程(gprinter标签打印机不出字)

最近和朋友去逛街,步入一家服装店,场地不大,但设施齐全买单都使用上了收银系统,和老板闲聊中了解到他为了方便管理库存找朋友...

2022-11-06 12:15:16查看全文 >>

河南正宗五香牛肉配方比例(河南五香牛肉的正宗做法)

河南正宗五香牛肉配方比例(河南五香牛肉的正宗做法)

做卤菜18年的大叔,教您正宗的五香卤牛肉配方,做法娴熟相当专业做卤菜18年的大叔,教您正宗的五香卤牛肉配方,做法娴熟相当...

2022-11-06 12:16:08查看全文 >>

正宗马家五香牛肉配方(60岁回民酱牛肉秘方)

正宗马家五香牛肉配方(60岁回民酱牛肉秘方)

马永信牛肉已经历了四代传人,在这一百多年的风风雨雨中一直坚持采用1-3岁黄牛为肉源,以自养为生,购进为辅,几代人的共同经...

2022-11-06 12:14:19查看全文 >>

河南祖传腌制五香牛肉怎样做(河南祖传腌制五香牛肉)

河南祖传腌制五香牛肉怎样做(河南祖传腌制五香牛肉)

1.绝密配方(按100kg牛肉计)八角0.2kg,小茴香0. 2kg,丁香0.2kg,草果0.2kg, 砂仁0. 2kg...

2022-11-06 12:25:39查看全文 >>

gpio引脚操作方法(gpio原理图解)

gpio引脚操作方法(gpio原理图解)

ESP8266 引脚分配参考:您应该使用哪些 GPIO 引脚?本文是 ESP8266 GPIO 的指南:引脚图、它们的功...

2022-11-06 12:03:44查看全文 >>

gpr软件使用说明(gprs使用教程)

gpr软件使用说明(gprs使用教程)

探地雷达,又称地质雷达,管线探测雷达,环保行业称为暗管探测仪。产品简介:SL-GPR系列无线探地雷达具有无线传输功能的系...

2022-11-06 11:47:13查看全文 >>

gprinter使用方法(gprinter app使用教程)

gprinter使用方法(gprinter app使用教程)

随着互联网的迅速发展和普及,人们通过网络进行着大量的商业交易行为,从而使国内电子商务市场的发展迅速崛起。B2C市场逐渐饱...

2022-11-06 11:58:07查看全文 >>

gplp的使用方法(gplp实际操作)

gplp的使用方法(gplp实际操作)

文/琼凉 GPLP曾经如日中天的直播行业迎来了下半场——王思聪30亿贱卖熊猫直播,虎牙和映客相继上市,以及斗鱼主播的相继...

2022-11-06 11:53:56查看全文 >>

gpio使用技巧(gpio口使用方法汇总)

gpio使用技巧(gpio口使用方法汇总)

相信大多是硬件工程师的第一个程序都是使用IO口点灯,就像程序员的第一个程序都是Hello world一样。本篇文章将详细...

2022-11-06 11:49:31查看全文 >>

文档排行