5108 CM5IO RS485-CANFD
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版本。
三、模块测试
软件平台:树莓派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,如下图所示:
四个接口的示意图如下:
3.1 配置RS485
打开终端,运行下列命令:
sudo nano /boot/firmware/config.txt
在文件末尾加入下列语句:
dtoverlay=uart2
dtoverlay=uart4
保存后重启系统。
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
然后在图形界面中,依次选择如下图项目后,确保SPI已开启:
最后重启系统。在终端中输入dmesg | grep spi
,查看 SPI 的信息,红框中的信息显示can0和can1识别成功:
3.4 测试双CANFD
安装CAN软件:
sudo apt-get install can-utils
继上一节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
可以运行多次:
cangaroo输出如下,说明收发正常:
测试CAN0接收数据:
在树莓派终端中运行:
candump can0
在cangaroo主界面的Transmit View里面,设置好Address和DLC,以及后面的发送数据:
然后按下Send键(或Send Repeat键重复发送),即可在树莓派终端中看到从cangaroo发来的数据:
测试CAN1发送数据:
USB CANFD收发器接在模块的CAN1接口上,让cangaroo在PC的COM85上开始监听(Measurement - Start Measurement),在树莓派终端中运行:
cansend can1 123#11223344
可以运行多次:
cangaroo输出如下,说明收发正常:
测试CAN1接收数据:
在树莓派终端中运行:
candump can1
在cangaroo主界面的Transmit View里面,设置好Address和DLC,以及后面的发送数据:
然后按下Send键(或Send Repeat键重复发送),即可在树莓派终端中看到从cangaroo发来的数据:
联系我们
电话:13957118045
如本页面有任何疏漏、错误或者侵权,请通过上述途径联系我们,谢谢!
Copyright 2004-2025 野芯科技