硕品电子

网站选择

Always connecting

因为专注,始终连接

2022-03-09 13:18

「技术分享」如何快速实现A7核心板引脚复用分配!

    


M6G2C核心板引脚复用原理

嵌入式Linux核心板的管脚一般是多功能可选的。在M6G2C核心板中,除了一些具有固定功能的引脚(VCC、GND等。),大部分引脚可以复用为Alt0-Alt8(功能号,详见引脚分配表),共9个功能。所以一定要先根据自己的需求和管脚复用分配表分配好所有外设(当然M6G2C默认有对应的管脚分配,如果默认分配不适合我们,只需要修改部分管脚),修改设备树文件,然后编译内核(部分需要配置)和设备树,将新的内核和设备树文件更新到板卡上。

条件:磨刀不误砍柴工。

[软件方面]

1.安装了虚拟机的电脑(最好是VMware Workstation 12以上,电脑配置越高越好);2.M6·G2C的内核源代码linux-src-b85fbbf.tar.gz(详见光盘,找FAE要);3.虚拟机映像(向FAE索要)。

[硬件方面]

1.EPC-6G2C-L评估套件1套(官网旗舰店有售);2.1张TF卡/1根网线/1根microUSB线;3.一个USB转232调试串口;4.工业连接器12V/2A输出适配器1个;5.读卡器一个(需要准备TF卡)。举个栗子:赶紧把CAN换成GPIO

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

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

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

1 VM user @ Linux-host:~/A7-kernel $ CD Linux-src/

2 VM user @ Linux-host:~/A7-kernel/Linux-src $ VI arch/arm/boot/dts/imx 6 g2c-256m . dts

要把CAN2改成GPIO,我们需要在dts中注释掉CAN2的定义,然后参考GPIO的定义将其配置为GPIO。我们参考光盘数据“光盘数据\硬件设计\06。引脚分配表”:



上图显示CAN2是B9和B10,Alt5可以是GPIO函数,分别是GPIO1_22和GPIO1_23。

让我们屏蔽设备树文件中CAN2的设备节点和相关配置:

1/* 2 & flex can 2 { 3 pinctrl-names = & # 34;默认& # 34;;4 pinctrl-0 = & lt;& pinctrl _ flexcan2 & gt;5状态= & # 34;好的& # 34;;6 };7 */8 …稍… 9/* 10引脚ctrl _ flex can 2:flex can 2 grp { 11 fsl,引脚=

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

1 & io muxc { 2 pinctrl-names = & # 34;默认& # 34;;3 pinctrl-0 = & lt;& pinctrl _ hog _ 1 & gt;4 imx 6 ul-evk { 5 pinctrl _ hog _ 1:hog grp-1 { 6 fsl,pins = & lt7 MX6UL _ PAD _ NAND _ DQS _ _ gpio 4 _ IO16 0x 17059/* err led */8 MX6UL _ PAD _ NAND _ CE1 _ B9 MX6UL _ PAD _ LCD _ RESET _ _ GP10 MX6UL _ PAD _ SNVS _ tamper 9 _ _ gpio 5 _ IO09 0x 17059/* gpio 5 _ 9 */11 MX6UL _ PAD _ SNVS _ tamper 1 _ _ gpio 5 _ IO01 0x 17059/* sys mode */12 MX6UL _ PAD;18 };19 ...轻微地...20};21 };

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

然后清除配置(清除旧的配置信息):

1 VM user @ Linux-host:~/A7-kernel/Linux-src $ make ARCH = arm CROSS _ COMPILE = arm-Linux-gnueabihf-dist clean & &

使用EPC工业控制板配置文件(配置为EPC工厂默认配置):

1 VM user @ Linux-host:~/A7-kernel/Linux-src $ make ARCH = arm CROSS _ COMPILE = arm-Linux-gnueabihf-EPC _ m6g2c _ def config & &

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

1 VM user @ Linux-host:~/A7-kernel/Linux-src $ make ARCH = arm CROSS _ COMPILE = arm-Linux-gnueabihf-menu config

移除CAN总线支持和CAN总线子系统支持选项:

1[*]网络支持-& gt;

2 & lt& gtCAN总线子系统支持-& gt;

温馨提示:“空”表示未选中,“*”表示编译成内核,“M”表示编译成模块。

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

1 VM user @ Linux-host:~/A7-kernel/Linux-src $ make ARCH = arm CROSS _ COMPILE = arm-Linux-gnueabihf-all-j8

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

编译设备树文件:

1 VM user @ 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's总结:以此类推。

重新分配引脚功能的大致思路如下:修改器件树-清除配置文件-更改配置文件-编译内核和器件树-更新目标板内核和器件树。

知道了有条理的思路,跟着教程走,是不是感觉一下子轻松了很多?以此类推,如果想把默认的以太网接口改成GPIO,组织的思路和把CAN改成GPIO差不多。


2.jpg在嵌入式开发中,为了使外设接口和硬件布局合理化,往往需要定义核心板外设引脚的复用分配。对于刚接触的同学来说比较难,所以本文将以A7核心板为例,讲解如何快速实现核心板的管脚复用分配。

M6G2C核心板产品简介

M6G2C是ZLG致远电子精心设计的板对板连接器接口低功耗高性能嵌入式核心板。基于恩智浦性能更好的Cortex?-A7 core i.MX6UL处理器,主频528MHz,集成了DDR3、NandFlash、Wi-Fi、蓝牙、ZigBee、硬件看门狗等外设。同时,产品自带8通道UART、2通道USB OTG、多达2通道CAN总线、2通道以太网等非常强大的工控通信接口。


1.jpg

返回首页
TOP

Copyright © 2019.东莞市硕品电子有限公司 www.solepin.com 备案号:xxxxxx.硕品电子