5108 CM5IO RS485-CANFD

来自Mcuzone Wiki

Change the language to English

关键词

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

一、简介

CM5IO_RS485-CANFD是一款基于40Pin接口进行RS485扩展和CANFD扩展的模块。具备两路带隔离的RS485,两路带隔离的CANFD。

二、硬件资源

1,采用树莓派的40Pin GPIO进行扩展;适用于树莓派3B/4B/5/CM4/CM5等平台;

2,两路带隔离的RS485,3.81mm-3Pin接口;

3,两路带隔离的CANFD,3.81mm-3Pin接口;

4,RS485和CANFD都带有120欧姆终端匹配电阻,如果传输距离太长或者电缆终端没有相应匹配电阻,建议短接跳线;

5,尺寸:56*65mm,板材通过UL和ROHS认证,防火等级94V-0。

6,模块分三个版本,分别为RS485版本,CANFD版本和RS485-CANFD版本。

5108_CM5IO_RS485-CANFD_26.jpg

5108_CM5IO_RS485-CANFD_27.jpg

5108_CM5IO_RS485-CANFD_28.jpg

三、模块测试

软件平台:树莓派OS的版本为2025-05-13-raspios-bookworm-arm64.img.xz,树莓派OS下载地址:

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

硬件平台:CM5IO_RS485-CANFD模块搭配树莓派5,如下图所示:

5108_CM5IO_RS485-CANFD_29.jpg

四个接口的示意图如下:

5108_CM5IO_RS485-CANFD_31.jpg

3.1 配置RS485

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

sudo nano /boot/firmware/config.txt

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

dtoverlay=uart2

dtoverlay=uart4

5108_CM5IO_RS485-CANFD_01.jpg

保存后重启系统。

3.2 测试双RS485

安装串口软件CuteCom,安装命令为:

sudo apt install cutecom

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

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

sudo cutecom

来启动CuteCom。

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

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

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

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

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

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

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

两个RS485接口相连,各自打开串口软件进行收发,结果如下:

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

3.3 配置CANFD

CAN是SPI接口,mcp251xfd为CAN控制器,spi0-0和spi0-1为同一路SPI接口不同片选,interrupt为MP2518FD的中断号,都要和硬件相对应。

首先更新系统,在树莓派终端中执行:

sudo apt update

sudo apt upgrade

需要在config.txt中加入CAN接口的配置,运行下列命令:

sudo nano /boot/firmware/config.txt

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

dtoverlay=spi1-3cs

dtoverlay=mcp251xfd,spi0-0,interrupt=25

dtoverlay=mcp251xfd,spi0-1,interrupt=24

5108_CM5IO_RS485-CANFD_07.jpg

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

2006_CM4_UART_CAN_62.png

2006_CM4_UART_CAN_08.jpg

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

3.4 测试双CANFD

安装CAN软件:

sudo apt-get install can-utils

2006_CM4_UART_CAN_36.jpg

继上一节SPI成功识别后,输入以下命令开启CANFD:

sudo ip link set can0 up type can bitrate 500000 dbitrate 2000000 restart-ms 1000 berr-reporting on fd on

sudo ip link set can1 up type can bitrate 500000 dbitrate 2000000 restart-ms 1000 berr-reporting on fd on

sudo ifconfig can0 txqueuelen 65536

sudo ifconfig can1 txqueuelen 65536

经过测试,bitrate设置为1000000(1M),dbitrate设置为5000000(5M)都可以正常使用,请按照实际情况选择设置。

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

在模块与PC之间连接好USB CANFD收发器,使用cangaroo软件在PC端进行接收,cangaroo下载地址:

http://www.mcuzone.com/wiki/5108_CM5IO_RS485-CANFD/cangaroo-win32-ccdcb64.zip

cangaroo设置如下(Measurement - Setup...):

其中COM85为USB CANFD收发器在PC上的监听端口(依系统配置不同而不同)。Bitrate和CanFD Bitrate应与上面开启CANFD的命令中的比特率设置相对应。

注意:必须在收发两端的至少一端开启120欧姆匹配电阻。

测试CAN0发送数据:

USB CANFD收发器接在CM5IO_RS485-CANFD的CAN0接口上,让cangaroo在PC的COM85上开始监听(Measurement - Start Measurement),在树莓派终端中运行:

cansend can0 123#11223344

可以运行多次:

5108_CM5IO_RS485-CANFD_11.jpg

cangaroo输出如下,说明收发正常:

测试CAN0接收数据:

在树莓派终端中运行:

candump can0

5108_CM5IO_RS485-CANFD_13.jpg

在cangaroo主界面的Transmit View里面,设置好Address和DLC,以及后面的发送数据:

然后按下Send键(或Send Repeat键重复发送),即可在树莓派终端中看到从cangaroo发来的数据:

5108_CM5IO_RS485-CANFD_15.jpg

测试CAN1发送数据:

USB CANFD收发器接在模块的CAN1接口上,让cangaroo在PC的COM85上开始监听(Measurement - Start Measurement),在树莓派终端中运行:

cansend can1 123#11223344

可以运行多次:

5108_CM5IO_RS485-CANFD_16.jpg

cangaroo输出如下,说明收发正常:

测试CAN1接收数据:

在树莓派终端中运行:

candump can1

5108_CM5IO_RS485-CANFD_18.jpg

在cangaroo主界面的Transmit View里面,设置好Address和DLC,以及后面的发送数据:

然后按下Send键(或Send Repeat键重复发送),即可在树莓派终端中看到从cangaroo发来的数据:

5108_CM5IO_RS485-CANFD_19.jpg

联系我们

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

邮件:mcuzone@vip.qq.com

电话:13957118045

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

Copyright 2004-2025 野芯科技