5104 CM5IO UART-CAN

来自Mcuzone Wiki

关键词

树莓派、CM5核心板、RPiOS、双RS485、双RS232、双CAN、40p-GPIO

一、简介

CM5IO_UART-CAN

二、硬件资源

三、模块测试

本文档采用树莓派OS的版本为2024-07-04-raspios-bookworm-arm64.img.xz,树莓派OS下载地址:

https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-64-bit

CM5IO_Mini扩展板上的40p-GPIO接口上可接一块双RS485双RS232双CAN扩展板(40p-GPIO),扩展出两个RS485接口+两个RS232接口+两个CAN接口,如下图所示:

5005_CM5IO_Mini_141.jpg

六个接口的示意图如下:

测试需要安装串口软件CuteCom,安装命令为:

sudo apt install cutecom

安装完毕后,点击桌面左上角的树莓派图标,在“System Tools”有CuteCom的快捷方式:

0012_MPUUART_MP4232_01.jpg

如果在使用过程中有权限不足的问题,请打开树莓派OS终端,输入:

sudo cutecom

来启动CuteCom。

3.1 配置RS485和RS232

系统运行后打开终端,运行下列命令:

sudo nano /boot/firmware/config.txt

在文件末尾加入下列语句:

dtoverlay=uart0

dtoverlay=uart2

dtoverlay=uart3

dtoverlay=uart4

5005_CM5IO_Mini_40.jpg

3.2 测试双RS485

测试ttyAMA0与PC之间的数据收发:

在PC端插上一个USB转485的转换器,与扩展板上的RS485接口(ttyAMA0,对应UART0)相连,各自打开串口软件进行收发,结果如下:

树莓派OS端/Windows端:

5005_CM5IO_Mini_66.jpg

经过实测,波特率最高可达到2.06Mbps(以传输数据不发生乱码、缺失为准)。

测试ttyAMA2与PC之间的数据收发:

在PC端插上一个USB转485的转换器,与扩展板上的RS485接口(ttyAMA2,对应UART2)相连,各自打开串口软件进行收发,结果如下:

树莓派OS端/Windows端:

5005_CM5IO_Mini_67.jpg

经过实测,波特率最高可达到2.06Mbps(以传输数据不发生乱码、缺失为准)。

测试ttyAMA0与ttyAMA2之间的数据收发:

扩展板上的两个RS485接口(ttyAMA0与ttyAMA2)相连,各自打开串口软件进行收发,结果如下:

ttyAMA0的树莓派OS端/ttyAMA1的树莓派OS端:

5005_CM5IO_Mini_68.jpg

经过实测,波特率最高可达到1.87Mbps(以传输数据不发生乱码、缺失为准)。

3.3 测试双RS232

测试ttyAMA3与PC之间的数据收发:

在PC端插上一个USB转232的转换器,与扩展板上的RS232接口(ttyAMA3,对应UART3)相连,各自打开串口软件进行收发,结果如下:

树莓派OS端/Windows端:

5005_CM5IO_Mini_69.jpg

经过实测,波特率最高可达到890kbps(以传输数据不发生乱码、缺失为准)。

测试ttyAMA4与PC之间的数据收发:

在PC端插上一个USB转232的转换器,与扩展板上的RS232接口(ttyAMA4,对应UART4)相连,各自打开串口软件进行收发,结果如下:

树莓派OS端/Windows端:

5005_CM5IO_Mini_70.jpg

经过实测,波特率最高可达到890kbps(以传输数据不发生乱码、缺失为准)。

测试ttyAMA3与ttyAMA4之间的数据收发:

扩展板上的两个RS232接口(ttyAMA3与ttyAMA4)相连,各自打开串口软件进行收发,结果如下:

ttyAMA3的树莓派OS端/ttyAMA4的树莓派OS端:

5005_CM5IO_Mini_71.jpg

经过实测,波特率最高可达到1.05Mbps(以传输数据不发生乱码、缺失为准)。

3.4 测试双CAN

准备工作:

需要在config.txt中加入CAN接口的配置:

dtparam=spi=on

dtoverlay=spi1-3cs

dtoverlay=mcp2515,spi1-0,oscillator=16000000,interrupt=25,speed=500000

dtoverlay=mcp2515,spi1-1,oscillator=16000000,interrupt=24,speed=500000

5005_CM5IO_Mini_80.jpg

注意:CAN是SPI接口,需要打开SPI;MCP2515是CAN控制器,oscillator为CAN晶振的频率,interrupt为MP2515的中断号,都要和硬件相对应。

在图形界面中,依次选择如下图项目后,确保SPI已开启:

2006_CM4_UART_CAN_62.png

2006_CM4_UART_CAN_08.jpg

然后重新启动树莓派系统。

在终端中输入dmesg | grep spi,查看 SPI 的信息,红框中的信息显示can0和can1识别成功:

5005_CM5IO_Mini_73.jpg

SPI成功识别后,输入以下命令开启CAN:

sudo ip link set can0 up type can bitrate 500000

sudo ip link set can1 up type can bitrate 500000

sudo ifconfig can0 txqueuelen 65536

sudo ifconfig can1 txqueuelen 65536

5005_CM5IO_Mini_74.jpg

设置完成后输入ifconfig -a,查看CAN连接,可看到can0和can1:

5005_CM5IO_Mini_75.jpg

安装CAN软件:

sudo apt-get install can-utils

2006_CM4_UART_CAN_36.jpg

安装完毕后,连接好与PC之间的CAN收发器,如果树莓派OS重启过,需要再运行一次:

sudo ip link set can0 up type can bitrate 500000

sudo ip link set can1 up type can bitrate 500000

测试can0接口:

运行下列命令,将树莓派OS端置于接收状态:

candump can0

2006_CM4_UART_CAN_41.jpg

打开PC端的CAN测试软件,设置好波特率(这里波特率设置为1000kbps)等参数,向树莓派OS端发送数据,结果如下:

发送端:

5005_CM5IO_Mini_76.jpg

接收端:

5005_CM5IO_Mini_77.jpg

如果需要树莓派OS端发送数据,则运行下列命令(#后面的是要发送的数据):

cansend can0 000#11223344

运行几次就发送几次。

发送端:

5005_CM5IO_Mini_78.jpg

接收端:

5005_CM5IO_Mini_79.jpg

测试can1接口:

运行下列命令,将树莓派OS端置于接收状态:

candump can1

5005_CM5IO_Mini_81.jpg

打开PC端的CAN测试软件,设置好波特率(这里波特率设置为1000kbps)等参数,向树莓派OS端发送数据,结果如下:

发送端:

5005_CM5IO_Mini_82.jpg

接收端:

5005_CM5IO_Mini_83.jpg

如果需要树莓派OS端发送数据,则运行下列命令(#后面的是要发送的数据):

cansend can1 000#11223344

运行几次就发送几次。

发送端:

5005_CM5IO_Mini_84.jpg

接收端:

5005_CM5IO_Mini_85.jpg

联系我们

4f7e81daf8791971.jpg 79c020da7ad0af9b.jpg 2851e01a0549e6f7.gif 0003_bb.jpg 0005_qq.jpg QQ:8204136

邮件:mcuzone@vip.qq.com

电话:13957118045

如本页面有任何疏漏、错误或者侵权,请通过上述途径联系我们,谢谢!

Copyright 2004-2025 野芯科技