返回列表 发新帖

树莓派CM4的6路串口测试

[复制链接]

7

主题

8

帖子

1万

积分

允许发帖

积分
10063
发表于 2021-1-21 13:32:55 | 显示全部楼层 | 阅读模式
本帖最后由 Mcuzone_LJY 于 2021-3-25 09:16 编辑

关键词:树莓派,核心板,Compute Module 4,CM4,串口,UART
概述:树莓派CM4核心板是一款高性能计算平台,其拥有丰富的硬件资源,其串口便拥有6路之多,今我们不多赘述此核心板其余资源如何如何,毕竟也没给打钱,我们注重于这6路串口,看看如何最大限度的将其全部使用起来,榨干他的性能。
仔细查阅了CM4核心板相关资料后,我们发现官方似乎并不希望我们榨干他,引出的GPIO中,UART0和UART1复用在相同的GPIO上,其便是GPIO14和15,在什么配置都不做的情况下,在树莓派标准系统的图形界面中开启串口后,使能的就是GPIO14和15默认复用的UART0,其余引出的GPIO中,也没有其余可复用为UART0或者是UART1的,可谓是鱼与熊掌不可得兼。
但这还没结束,根据我们手头有限的资料显示,GPIO0和GPIO1可以复用为UART2和I2C0,那么我们可以很轻松的发现核心板的80和82脚刚好就是I2C0的两个引脚,这不就是GPIO0和GPIO1嘛,多简单,那么UART2不就板上钉钉了嘛,但是根据程序源码中显示,这个I2C0所使用的GPIO是GPIO44和GPIO45,我们手中的资料并不知道GPIO44和GPIO45是否能复用为UART2,而剩下的核心板引出的GPIO中亦无UART2的位置,奈何,UART2也暂不可用,此处欢迎懂行大佬无情打脸。
剩下的UART3,UART4和UART5就比较安分了,分别是GPIO4,GPIO5,GPIO8,GPIO9,GPIO12,GPIO13这几个的复用,那么无奈之下,我们只能含泪测试这4路串口是否能为我们所用。
首先我们要在config.txt下加入如下代码:
dtoverlay=uart0
dtoverlay=uart3,txd3_pin=4,rxd3_pin=5
dtoverlay=uart4,txd4_pin=8,rxd4_pin=9
dtoverlay=uart5,txd5_pin=12,rxd5_pin=13
此处由于UART0是默认为GPIO14和GPIO15的,所以我们只需要写dtoverlay=uart0便可,config.txt大家可以使用任意方式修改,这边在系统下使用vim修改
首先下载安装vim,输入sudo apt-get install vim -y,安装完成后,输入sudo vi /boot/config.txt,将上述代码添加到末尾,如下图所示 修改config.png
添加完成后保存退出,此处需要重启系统,但是我们本身就需要接线,为了防止带电操作,我们将系统断电,先将UART0复用的GPIO14和GPIO15用USB转TTl的设备与电脑连接,连接完成后上电,等待系统启动,系统启动后,我们打开终端,输入dmesg | grep tty,查看系统tty相关的log
tty-log.png
我们可以看到4路串口均已经被启用了,但是我们现在并不知道ttyAMA*和UART*的相互对应关系,不用急,我们输入sudo cat /sys/kernel/debug/pinctrl/fe200000.gpio-pinctrl-bcm2711/pinmux-pins,查看引脚复用信息
引脚映射.png
我们可以根据红框中的信息,一一对应ttyAMA*和UART*,我们可以得出ttyAMA0对应UART0,ttyAMA1对应UART3,ttyAMA2对应UART4,ttyAMA3对应UART5。
我们之前已经连接好了UART0的物理引脚,那么我们先开始测试UART0是否正常工作。
先下载minicom这个工具,输入sudo apt-get install minicom -y,下载完成后输入sudo minicom,打开minicom
minicom主页.png
根据提示按Ctrl+A,再按Z,进入配置窗
minicom配置窗口.png
按O进入串口配置,选择Serial Port setup
选择串口配置.png
按A将串口改为ttyAMA0,回车,按F关闭硬件流控制,回车,再次回车退出配置
串口配置情况.png
选择save setup as dfl,将配置信息设置为默认,然后选择Exit退出
保存配置.png
按Ctrl+A,再按Z,进入配置窗,按Q退出minicom,再次输入sudo minicom,打开minicom,我们可以看到配置已经生效,此时在pc中打开串口调试助手类软件,选择正确的端口,打开串口后,任意输入内容,点击发送,可以看到我们的minicom中成功接收到了数据,在minicom中敲击键盘,同样能在pc的串口调试助手中收到数据,由此可见UART0接收和发送功能完全正常。
UART0收发.png

按照上述方式,我们将UART3,UART4和UART5均测试了一遍,功能均是正常的。
UART3收发.png
UART4收发.png
UART5收发.png

那么综上所述,树莓派CM4的6路串口中,我们能够使用到的4路均是能够正常工作的,大家可以发挥自己的想象,将其用于各种方案设计之中,本文中若有错误与不足之处,也欢迎各位大佬不吝指出,请洒潘江,各倾陆海。


回复

使用道具 举报

发表回复

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

本版积分规则

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