OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9672|回复: 14

【分享】阿尔法开发板出厂系统配置UART2\4\5(多路串口配置)

[复制链接]

8

主题

214

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1162
金钱
1162
注册时间
2020-12-1
在线时间
148 小时
发表于 2021-6-7 12:45:37 | 显示全部楼层 |阅读模式
本帖最后由 起个什么名字好 于 2021-8-26 19:51 编辑

【目的】:修改正点原子IMX6U出厂内核,实现UART2\4\5的功能。修改好的设备树文件在帖子的附录可以直接使用。
【前言】:开发板板载了串口1和串口3的接口,以及一排的排针。出厂系统默认配置了串口1(ttymxc0)和串口3(ttymxc2),其中串口1做debug信息调试使用。排针上有引出串口2(ttymxc1)、串口4(ttymxc3)和串口5(ttymxc4)
截图_20213008073051.png

【准备资料及源码】:开发板光盘A-基础资料\1、例程源码\3、正点原子Uboot和Linux出厂源码\linux-imx-4.1.15-2.1.0-xxxxxxxxxx

===========================================================================
UART2配置
===========================================================================
【步骤】
在《IMX6ULL参考手册》中搜索 UART2 ,找到可以复用为 UART2_TX 功能的管脚
截图_20215508055515.png
同样的方法,找到可以复用为 UART2_RX 功能的管脚
截图_20215708055713.png

得到两个可以复用为UART2收发功能的引脚,即:
IOMUXC_SW_MUX_CTL_PAD_UART2_TX_DATA
IOMUXC_SW_MUX_CTL_PAD_UART2_RX_DATA


在imx6ul-pinfunc.h文件中搜索UART2_TX_DATA和UART2_RX_DATA 得到UART2收发引脚的定义,即:

MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX
MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX

引脚定义格式为:MX6UL_引脚名_复用功能
为什么不在imx6ull-pinfunc.h这个文件里找?
    因为打开imx6ull-pinfunc.h,可以看到里面的定义很少,而且引用了 imx6ul-pinfunc.h这个头文件,说明imx6ull和imx6ul的大部分引脚复用功能时一样的,不一样的只是imx6ull-pinfunc.h这个文件里写的,因此要在imx6ul-pinfunc.h中才能搜索到UART2的功能引脚。
截图_20215808055847.png


宏定义参数释义,以MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX复用功能引脚为例:
截图_20211208061250.png
0x0094:mux_reg 值,mux_reg 寄存器偏移地址,0x020e0000+mux_reg 就是PIN 的复用寄存器地址
截图_20211508061511.png
0x0320:conf_reg 值,conf_reg 寄存器偏移地址,和mux_reg 一样,0x020e0000+0x0320=0x020e0320,这个就是寄存器IOMUXC_SW_PAD_CTL_PAD_UART2_TX_DATA 的地址

0x0000:input_reg 寄存器偏移地址,有些外设有input_reg 寄存器,有input_reg 寄存器的外设需要配置input_reg 寄存器。没有的话就不需要设置。
0x0:mux_reg 寄存器值,这里就是设置IOMUXC_SW_MUX_CTL_PAD_UART2_TX_DATA寄存器为0X5,即设置PAD_UART2_TX_DATA引脚复用为UART2_DCE_TX功能
0x0:input_reg 寄存器值,在这里无效


修改设备树 imx6ull-14x14-evk.dts,修改pinctrl信息,将UART2的流控注释
截图_20211608061637.png
检查功能引脚是否存在其他复用,在设备树文件中搜索  PAD_UART2_TX_DATA 和 PAD_UART2_RX_DATA

找到 pinctrl_uart2dte 节点和 pinctrl_ecspi3节点里有用到
截图_20212508072554.png
添加/修改节点标签&uart2,只使用pinctrl_uart2,注释掉 fsl,uart-has-rtscts;


status修改为 "okay",修改完如下
截图_20212608072620.png
至此,要修改的内容已经完善,执行出厂脚本编译设备树

使用TFTP挂载编译好的内核和设备树来启动,文件系统还是使用EMMC里出厂的文件系统


测试
接线,将开发板引出的U2_RX接到串口的TX,U2_TX接到串口的RX,查看设备管理器中串口端口号,这里为COM3。开发板UART1用于查看信息,为COM5。
截图_20212708072745.png
开发板输入 minicom -s,打开minicom配置界面,选择Serial port setup
截图_20212808072804.png

按回车键进入,设置菜单如下
截图_20212808072830.png

设置完保存后退出菜单,回到如下界面
截图_20212908072903.png

按下CTRL键和A键,再按Z键,得到如图所示的选项栏,按下E键打开回显功能。
截图_20212908072933.png

打开COM3,在串口1(COM5,开发板文件系统)输入,在COM3会有显示,表示UART2已正常使用。
截图_20212908072959.png

===========================================================================
UART4配置
===========================================================================
imx6ul-pinfunc.h文件中搜索UART4_TX_DATA和UART4_RX_DATA 得到UART4收发引脚的定义,即
MX6UL_PAD_UART4_TX_DATA__UART4_DCE_TX
MX6UL_PAD_UART4_RX_DATA__UART4_DCE_RX

修改设备树 imx6ull-14x14-evk.dts,搜索uart4,注释掉相关复用管脚功能
截图_20210317030324.png
disabled掉相关的复用节点
截图_20210317030351.png

添加uart4节点(ps:可以拷贝uart3的来修改)
截图_20210417030417.png

添加/修改节点标签&uart4(ps:可以拷贝uart3的来修改)
截图_20210417030441.png

修改imx6ull.dtsi,修改uart4的status为 "okay"
截图_20210517030506.png
至此uart4的修改已经完成了,记得保存修改好的文件

执行build.sh脚本开始编译

截图_20210517030527.png

把编译生成的zImage文件和设备树文件加载到板子上运行,这里笔者没有接屏幕,所以选择imx6ull-14x14-emmc-4.3-480x272-c.dtb。如果有屏幕的话根据屏幕型号参数来选择设备树即可。

启动完成后在/dev下有ttymxc3
截图_20210517030556.png

接线,这里笔者使用USB转串口模块,开发板U4_TX引脚接模块的RXD引脚,U4_RX引脚接模块的TXD引脚
截图_20210617030631.png

软件配置:minicom配置如下
截图_20210617030655.png

在minicom界面按下crtl+a后,依次按下z和e,打开回显。

打开另一个串口终端,选择USB转串口模块对应的COM口,配置和上面minicom配置一样,波特率115200,8N1,无控制流
在开发板终端minicom输入字符后,在模块COM口处可以接收。
发送测试:
截图_20210717030723.png

接收测试:
截图_20210717030744.png
在minicom界面按下crtl+a后,依次按下z和x,退出minicom测试。
===========================================================================
UART5配置
===========================================================================

imx6ul-pinfunc.h文件中搜索UART5_TX_DATA和UART5_RX_DATA 得到UART5收发引脚的定义,即
MX6UL_PAD_UART5_TX_DATA__UART5_DCE_TX
MX6UL_PAD_UART5_RX_DATA__UART5_DCE_RX

这里值得注意的是,NXP官方源码这里寄存器配置有点问题,配置完只能发送不能接收,所以需要处理下。
具体说明可以参考https://blog.csdn.net/WXXGoodJob/article/details/82690386这个帖子。
截图_20211117031109.png

需要进行以下修改:
要将#define MX6UL_PAD_UART5_RX_DATA__UART5_DCE_RX                     0x00C0 0x034C 0x0644 0x0 0x5
改为#define MX6UL_PAD_UART5_RX_DATA__UART5_DCE_RX                     0x00C0 0x034C 0x0644 0x0 0x7

修改完的配置:
截图_20211617031633.png
保存文件

修改设备树 imx6ull-14x14-evk.dts,搜索uart5,注释掉相关复用管脚功能

截图_20211617031658.png
disabled掉相关复用节点
截图_20211717031719.png

添加uart5节点
截图_20211717031739.png

添加节点标签
截图_20211817031810.png

修改imx6ull.dtsi,修改uart5的status为 "okay"
截图_20211817031835.png
至此uart5的修改已经完成了,记得保存修改好的文件

执行build.sh脚本开始编译
截图_20211817031853.png
把编译生成的zImage文件和设备树文件加载到板子上运行,这里笔者没有接屏幕,所以选择imx6ull-14x14-emmc-4.3-480x272-c.dtb。如果有屏幕的话根据屏幕型号参数来选择设备树即可。
接线,这里笔者使用USB转串口模块,开发板U5_TX引脚接模块的RXD引脚,U5_RX引脚接模块的TXD引脚
截图_20211917031920.png
启动完成后在/dev下有ttymxc4
截图_20211917031952.png
minicom配置如下
截图_20212017032010.png
发送测试
截图_20212017032031.png



接收测试
截图_20212017032052.png
至此,串口2\4\5的修改和测试基本完成了,如果不会用minicom的小伙伴,可以先学习下《【正点原子】I.MX6U嵌入式Linux驱动开发指南》63.6.2小节minicom设置,多多练习!



截图_20215808055847.png
截图_20211217031255.png

五路串口配置文件.zip

150.75 KB, 下载次数: 31

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

8

主题

214

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1162
金钱
1162
注册时间
2020-12-1
在线时间
148 小时
 楼主| 发表于 2021-8-26 19:52:10 | 显示全部楼层
修改好的五路串口设备树文件在这里,可以直接替换到出厂系统使用

五路串口配置文件.zip

150.75 KB, 下载次数: 44

回复 支持 反对

使用道具 举报

0

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2020-5-27
在线时间
14 小时
发表于 2021-6-10 10:48:16 | 显示全部楼层
你好,写的很棒!我想尝试修改控制台使用的串口,LZ有什么思路吗
回复 支持 反对

使用道具 举报

8

主题

888

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
2377
金钱
2377
注册时间
2019-9-25
在线时间
394 小时
发表于 2021-6-11 09:49:33 | 显示全部楼层
写的很好!
回复 支持 反对

使用道具 举报

8

主题

888

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
2377
金钱
2377
注册时间
2019-9-25
在线时间
394 小时
发表于 2021-6-11 09:50:04 | 显示全部楼层
我考上研究生辣 发表于 2021-6-10 10:48
你好,写的很棒!我想尝试修改控制台使用的串口,LZ有什么思路吗

参考:http://www.openedv.com/forum.php ... d=307440&extra=
回复 支持 反对

使用道具 举报

0

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2020-5-27
在线时间
14 小时
发表于 2021-6-11 18:15:38 | 显示全部楼层
仰望星空之云 发表于 2021-6-11 09:50
参考:http://www.openedv.com/forum.php?mod=viewthread&tid=307440&extra=

太猛了,感谢!
回复 支持 反对

使用道具 举报

8

主题

214

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1162
金钱
1162
注册时间
2020-12-1
在线时间
148 小时
 楼主| 发表于 2021-6-17 15:39:30 | 显示全部楼层
自顶一个哈哈哈
回复 支持 反对

使用道具 举报

4

主题

14

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
325
金钱
325
注册时间
2016-5-18
在线时间
52 小时
发表于 2021-7-4 14:27:19 | 显示全部楼层
写的很棒,谢谢 学习了
回复 支持 反对

使用道具 举报

18

主题

128

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
413
金钱
413
注册时间
2013-2-4
在线时间
213 小时
发表于 2021-9-10 08:31:26 | 显示全部楼层
起个什么名字好 发表于 2021-8-26 19:52
修改好的五路串口设备树文件在这里,可以直接替换到出厂系统使用

替换到 MINI开发板,UART2 只能接收数据,不能发送。 其他的是对的。
回复 支持 反对

使用道具 举报

8

主题

214

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1162
金钱
1162
注册时间
2020-12-1
在线时间
148 小时
 楼主| 发表于 2021-10-12 10:40:20 | 显示全部楼层
sunday151640 发表于 2021-9-10 08:31
替换到 MINI开发板,UART2 只能接收数据,不能发送。 其他的是对的。

有没有可能是硬件问题?
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2020-8-17
在线时间
8 小时
发表于 2021-11-12 15:40:44 | 显示全部楼层
你好,请教个问题,为什么uart2不在imx6ull.dtsi中配置为okay状态,而且我看uart1和uart3也都是disabled状态,系统也可以使用这两个串口。
回复 支持 反对

使用道具 举报

8

主题

214

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1162
金钱
1162
注册时间
2020-12-1
在线时间
148 小时
 楼主| 发表于 2021-11-13 11:26:03 | 显示全部楼层
xiongqd 发表于 2021-11-12 15:40
你好,请教个问题,为什么uart2不在imx6ull.dtsi中配置为okay状态,而且我看uart1和uart3也都是disabled状 ...

在 imx6ull-14x14-evk.dts里有设置节点为okay就生效。为了规范,可以在imx6ull.dtsi里配置为okay,方便别人可以直接通过 imx6ull.dtsi直接看板子开启哪些外设
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
3
金钱
3
注册时间
2021-12-15
在线时间
1 小时
发表于 2021-12-16 11:06:28 | 显示全部楼层
大神厉害了!持续学习中
回复 支持 反对

使用道具 举报

18

主题

128

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
413
金钱
413
注册时间
2013-2-4
在线时间
213 小时
发表于 2022-4-1 11:05:40 | 显示全部楼层
本帖最后由 sunday151640 于 2022-4-1 17:04 编辑

已解决
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2022-10-17
在线时间
1 小时
发表于 2022-10-17 23:25:36 | 显示全部楼层
感谢,博主的分享
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-6-10 13:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表