跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
Mcuzone Wiki
搜索
搜索
登录
个人工具
登录
查看“2006 CM4/CM5 UART/CAN”的源代码
页面
讨论
大陆简体
阅读
查看源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
查看源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
←
2006 CM4/CM5 UART/CAN
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
== '''关键词''' == 树莓派、CM4核心板、千兆以太网、百兆以太网、RS232、RS485、CAN、RPiOS、Ubuntu、4G LTE == '''一、简介''' == CM4_UART和CM4_UART_CAN这两款扩展板针对工业应用场景而设计,两款板子均具备HDMI输出、原生千兆网络、USB扩展百兆网络、两路USB2.0、CSI1、DSI、RTC以及常规的启动用TF卡座、40Pin GPIO。CM4_UART具备一路RS232串口和一路RS485接口,而CM4_UART_CAN具备一路RS485,一路RS232,一路CAN接口。板载设计DC宽电压供电和USB-C供电,两路电源,二选一使用,不可同时使用;扩展板沉金工艺,无铅生产,PCB板通过UL和ROHS认证,防火等级94V-0。 == '''二、硬件资源''' == http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_52.jpg http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_48.jpg http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_49.jpg http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_50.jpg http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_51.jpg == '''三、烧写系统''' == 本文档采用树莓派OS和Ubuntu系统进行测试。 1. 树莓派OS的版本为2024-07-04-raspios-bookworm-arm64.img.xz,树莓派OS下载地址: https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-64-bit 2. Ubuntu系统的版本为ubuntu-24.10-preinstalled-desktop-arm64+raspi.img.xz, Ubuntu系统下载地址: https://ubuntu.com/download/raspberry-pi === 3.1 TF卡的烧写 === 树莓派CM4核心板分2个大类,一类是不带eMMC版本,仅限从TF卡启动系统;一类是带eMMC版本,仅限从eMMC启动系统,那对应扩展板上的TF卡将无效。 从TF卡启动系统的详细烧录方法请[[2003 CM4 Tiny HDMIx2(双HDMI扩展板)#3.2 从TF卡启动|点击这里]]。 === 3.2 eMMC的烧写 === 烧写前,扩展板的操作如下: 扩展板上的USB-C口即为5V3A电源口,也是eMMC烧写口,将C口接电脑,板上的BOOT短路帽短上;CM4_UART_CAN扩展板还需把OTG跳线短上,如下图: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_53.jpg 电脑上需安装树莓派CM4核心板的驱动,具体的eMMC烧写系统的方法请[[2003 CM4 Tiny HDMIx2(双HDMI扩展板)#3.3. 从eMMC启动|点击这里]]。 烧写完成后,把短路帽都拔掉,重新上电,启动系统即可。 === 3.3 注意事项 === 1. 如果使用树莓派系统,系统启动后卡死或者键盘鼠标无法使用,请在PC端打开TF卡系统分区根目录下的config.txt检查USB的初始化脚本,如果是烧写在eMMC上,则请在烧写完毕后,再次使用一次rpiboot工具使系统分区显示出来,然后打开系统分区根目录下的config.txt检查USB的初始化脚本: http://www.mcuzone.com/wiki/0007_Zero_4G_Cat1/0007_Zero_4G_Cat1_41.jpg 然后按照下面红框所示的两处进行修改: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_59.jpg 2. 如果使用Ubuntu系统,系统启动后键盘鼠标无法使用,请在PC端打开TF卡系统分区根目录下的config.txt检查USB的初始化脚本,如果是烧写在eMMC上,则请在烧写完毕后,再次使用一次rpiboot工具使系统分区显示出来,然后打开系统分区根目录下的config.txt检查USB的初始化脚本。 需要确认下图中的红框处是否配置完全,如果没有,请手动添加完整并保存文件: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_60.jpg 也可以将红框处这一行删除后保存文件: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_61.jpg 3. Ubuntu系统的desktop版本对硬件要求较高,如果核心板只有1G内存,有可能在运行时速度很慢甚至死机,建议使用内存为2G或以上的核心板进行安装使用。 == '''四、树莓派OS的使用''' == === 4.1 测试RS485串口 === 我们首先要对对串口进行设置,需要在config.txt中加入串口与GPIO的对应关系: <code>dtoverlay=uart0</code> <code>dtoverlay=uart3,txd3_pin=4,rxd3_pin=5</code> <code>dtoverlay=uart4,txd4_pin=8,rxd4_pin=9</code> <code>dtoverlay=uart5,txd5_pin=12,rxd5_pin=13</code> http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_09.jpg 保存后退出,然后将TF卡插入扩展板,启动系统。 树莓派端建议安装可视化串口软件CuteCom: <code>sudo apt install cutecom</code> 安装完毕后,点击桌面左上角的树莓派图标,在“System Tools”有CuteCom的快捷方式: http://www.mcuzone.com/wiki/0012_MPUUART_MP4232/0012_MPUUART_MP4232_01.jpg 如果在使用过程中有权限不足的问题,请打开树莓派OS终端,输入: <code>sudo cutecom</code> 来运行CuteCom。 经测试,接口与串口号的对应关系如下: RS485对应ttyAMA5,对应uart5; RS232对应ttyAMA4,对应uart4。 下图为CM4_UART_CAN扩展板: <html><img src="http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_102.jpg" width=640></html> 下图为CM4_UART扩展板: <html><img src="http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_103.jpg" width=640></html> 在PC端插上一个USB转RS485串口的转换器,与扩展板上的RS485串口相连,各自打开串口软件进行收发,结果如下: 树莓派OS端/Windows端: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_56.jpg 经过实测,波特率最高可达到2.01M(以传输数据不发生乱码为准)。 === 4.2 测试RS232串口 === 在PC端插上一个USB转RS232串口的转换器,与扩展板上的RS232串口相连,各自打开串口软件进行收发,结果如下: '''以下是CM4_UART_CAN扩展板测试:''' 树莓派OS端/Windows端: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_57.jpg 经过实测,波特率最高可达到0.86M(以传输数据不发生乱码为准)。 '''以下是CM4_UART扩展板测试:''' 树莓派OS端/Windows端: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_58.jpg 经过实测,波特率最高可达到0.28M(以传输数据不发生乱码为准)。 === 4.3 测试CAN接口 === 基于CM4_UART_CAN扩展板测试,需要在config.txt中加入CAN接口的配置: <code>dtparam=spi=on</code> <code>dtoverlay=spi1-3cs</code> <code>dtoverlay=mcp2515,spi1-0,oscillator=8000000,interrupt=25,speed=500000</code> '''''注意:CAN是SPI接口,需要打开SPI;MCP2515是CAN控制器,oscillator为CAN晶振的频率,interrupt为MP2515的中断号,都要和硬件相对应。''''' 此外,CAN的GPIO不能和之前的串口有冲突,如果有冲突,请在本文件中先屏蔽冲突的串口GPIO(如下图蓝框处,屏蔽了UART4): http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_32.jpg 保存后退出,然后将系统卡插入扩展板,启动系统;在图形界面中,依次选择如下图项目后,确保SPI已开启: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_62.png http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_08.jpg 在终端中输入<code>dmesg | grep spi</code>,查看 SPI 的信息: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_33.jpg SPI成功识别后,输入以下命令开启CAN: <code>sudo ip link set can0 up type can bitrate 500000</code> <code>sudo ifconfig can0 txqueuelen 65536</code> http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_34.jpg 设置完成后输入<code>ifconfig -a</code>,查看CAN连接,可看到can0: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_35.jpg 安装CAN软件: <code>sudo apt-get install can-utils</code> http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_36.jpg 安装完毕后,连接好与PC之间的CAN收发器,如果树莓派OS重启过,需要再运行一次: <code>sudo ip link set can0 up type can bitrate 500000</code> 然后运行下列命令,将树莓派OS端置于接收状态: <code>candump can0</code> http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_41.jpg 打开PC端的CAN测试软件,设置好波特率等参数,向树莓派OS端发送数据,结果如下: 发送端: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_37.jpg 接收端: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_38.jpg 如果需要树莓派OS端发送数据,则运行下列命令(#后面的是要发送的数据): <code>cansend can0 000#11223344</code> 运行几次就发送几次。 发送端: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_39.jpg 接收端: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_40.jpg === 4.4 测试以太网 === 板载一路原生千兆以太网和一路USB转百兆以太网,在树莓派系统终端下执行<code>ifconfig -a</code>,显示结果如下: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_66.jpg eth0为原生千兆以太网,已获得IP地址; eth1为USB转百兆以太网,没插网线,所以没有获得IP地址; eth2为外接USB 4G模块,已获得IP地址。 ==== 4.4.1 测速百兆以太网 ==== 将扩展板的网口接到上级路由器,安装网络测速工具iperf3: <code>sudo apt install iperf3</code> http://www.mcuzone.com/wiki/0008_MPS2_5G/0008_MPS2_5G_04.jpg 利用iperf3与PC端进行测速,结果如下: 扩展板作为client时,速度大约为94.5Mbps: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_24.jpg 扩展板作为server时,速度大约为94.9Mbps: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_25.jpg '''''注意:网络测速受网络环境和测试方法影响,速度请以实际为准,本测试仅供参考。''''' ==== 4.4.2 测速原生千兆以太网 ==== 将扩展板的千兆网口接到上级路由器,同样用iperfs测速工具测速。 利用iperf3与PC端进行测速,结果如下: 扩展板作为client时,速度大约为942Mbps: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_26.jpg 扩展板作为server时,速度大约为945Mbps: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_27.jpg '''''注意:网络测速受网络环境和测试方法影响,速度请以实际为准,本测试仅供参考。''''' === 4.5 USB测试 === 打开树莓派OS的终端,输入命令<code>lsusb</code>,如下图所示: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_67.jpg Device 002:外挂USB Hub; Device 003:USB转百兆网卡; Device 004:USB转4G模块; Device 005:USB2.0-A接口; Device 006:USB2.0-A接口。 我们在树莓派终端中执行<code>lsusb -t</code>查看USB2.0工作模式是否正常: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_78.jpg 可见除了USB无线键鼠(Human Interface Device,USB1.1设备,工作在12M下)外,其它USB设备均工作在480M下,因此USB2.0工作模式正常。 === 4.6 4G模块测试 === 本扩展板板载的一路1.25mm-4P USB口,可以接我司CM4 4G mini模块,使扩展板具有4G网络功能。 http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_54.jpg ==== 4.6.1 4G网络测试 ==== 在树莓派系统终端下执行<code>ifconfig -a</code>,显示结果如下: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_66.jpg 上图所示的USB 4G模块为国产CAT4 4G模块,网络标识显示为ethx(x依其它有线网络的数目而定); 高通 4G LTE模块的网络标识显示为usb0; ZTE CAT4模块的网络标识显示为ethx。 本文档以国产CAT4 4G模块为例。 执行<code>route</code>,查看路由表,eth2排在第一位,因此此时是通过4G模块上网: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_68.jpg 此时我们ping IP和域名,均成功,说明4G模块工作正常: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_69.jpg 打开<nowiki/>https://www.speedtest.cn/<nowiki/>进行网速测试,结果如下: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_70.jpg '''''注意:网络测速受网络环境和测试方法影响,速度请以实际为准,本测试仅供参考。''''' ==== 4.6.2 网络优先级的修改 ==== 上一节我们查看了路由表,默认情况下,优先通过4G网络上网。 如果要优先使用有线网络上网的话,可以运行命令: <code>sudo ip route del default && sudo route add -net default netmask 0.0.0.0 gw 192.168.8.1</code> 这两条命令(以“&&”分隔)的解释: <code>sudo ip route del default</code>:删除路由表中的默认路由; <code>sudo route add -net default netmask 0.0.0.0 gw 192.168.8.1</code>:添加有线网络的网关为新的默认路由(网关地址以实际为准)。 执行完毕后,再执行<code>route</code>,查看路由表,目前的默认路由为有线网络的网关(eth0排第一位): http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_71.jpg 这样网络就默认走有线网络了,如果需要改回默认走4G网络,请运行: <code>sudo ip route del default && sudo route add -net default netmask 0.0.0.0 gw 192.168.0.1</code> 或者重启系统即可。 其中192.168.0.1为4G模组的默认网关,请以实际为准。 '''''注意,重启后路由表还是会恢复原状,所以如果重启后要网络继续默认走有线网络,需要再执行一次<code>sudo ip route del default && sudo route add -net default netmask 0.0.0.0 gw 192.168.8.1</code>。''''' ==== 4.6.3 AT命令操作 ==== 使用<code>lsusb</code>查看USB设备,红框处即为4G模组: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_72.jpg 记下4G模块的ID值:1286 4e3d 使用下列命令打开ttyUSB串口,其中echo后面的值就是上面记录的ID值: <code>sudo modprobe option</code> <code>sudo sh -c 'echo 1286 4e3d > /sys/bus/usb-serial/drivers/option1/new_id'</code> 执行上述两条命令之后执行: <code>ls /dev</code> 此时应该能看到dev设备下有ttyUSB0-3四个设备: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_73.jpg 然后用串口工具打开特定串口(AT命令串口): 安装minicom工具: <code>sudo apt-get install minicom</code> 通过minicom打开AT命令串口: <code>sudo minicom -D /dev/ttyUSB1</code> (注意:使用哪个串口,应以在进入此串口后,可输入运行AT命令,显示不乱码,不乱跳结果为准) 如果需要查看回显,请键入命令:<code>ate1</code>,然后回车,继续键入其它命令,回车可以看到结果。 http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_74.jpg 常用AT命令: 1. 检查SIM卡是否识别到: <code>at+cpin?</code> 返回ready表示卡已识别,返回error要检查硬件 2. 检查天线信号质量: <code>at+csq</code> 返回值在26-31表示信号OK,信号满格31;返回值在20-25表示信号勉勉强强;返回值在20以下表示信号比较糟糕或者天线没接 3. 检查注网情况: <code>at+cops?</code> 正常应该返回运营商代码和7,7代表4G。 注意,以上命令只有<code>at+csq</code>不要加问号,另外两条命令需要加问号。 4. 查看4G模块的IMEI码: <code>at+cgsn</code> 5. 重启4G模块(有时候如果重插SIM卡,热插拔不一定管用,可以用这个reset命令来复位模块): <code>at+reset</code> 6. 关闭射频: <code>at+cfun=0</code> 开启射频: <code>at+cfun=1</code> 上述两条命令成对使用,可以在不重启4G模组的情况下让模组重新注网。 ==== 4.6.4 修改4G模组的IP地址 ==== 如果出厂默认的4G IP地址和用户使用的IP地址有冲突,或有修改IP地址的需求,可按照下列步骤进行修改: '''CAT4 4G模块:''' 执行AT命令: <code>AT+ROUTEIP=<newip></code> 注意,只支持192.168.x.1这样格式的地址,如果设置了<code>AT+ROUTEIP=192.168.3.1</code>,最终获得的IP为192.168.3.100,修改完后需断电重启系统。 查询当前IP:<code>AT+ROUTEIP?</code>,返回两个值,前一个为旧IP,后一个为新IP。 测试命令:<code>AT+ROUTEIP=?</code> '''高通 4G模块:''' 将4G模块的IP改为直接获取公网IP即可,请执行AT命令: 设置IP为公网:<code>AT+GTIPPASS=1</code> 设置IP为内网:<code>AT+GTIPPASS=0</code> 查询当前IP为公网还是内网:<code>AT+GTIPPASS?</code> 修改IP完毕后需要断电重启才能生效。 === 4.7 RTC(DS1307)测试 === http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_55.jpg '''''注意:RTC芯片需要外接电池(如上图所示)才能保持数据不会丢失。''''' 先将I2C打开: 左上角树莓派标志—Preferences—Raspberry Pi Configuration—Interfaces 如图所示: http://www.mcuzone.com/wiki/3003_21700_5V5A_PD/3003_21700_5V5A_PD_07.jpg 然后编辑config.txt: <code>sudo nano /boot/firmware/config.txt</code> 在文件末尾加入下列语句: <code>dtoverlay=i2c-rtc,ds1307</code> http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_75.jpg 保存后退出,重启系统,在树莓派终端中输入<code>ls /dev</code>,即可看到RTC设备: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_76.jpg 将系统时间写入DS1307的命令是<code>sudo hwclock -w</code>; 将系统时间从DS1307读出的命令是<code>sudo hwclock -r</code>。 如下图所示: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_77.jpg === 4.8 DSI/CSI测试 === ==== 4.8.1 DSI测试 ==== 首先使用22Pin 0.5mm间距转15Pin 1mm间距的转接板和相应的FPC排线,将树莓派官方的7寸触摸屏与扩展板上的DSI接口相连接,然后用一根Micro-USB线给触摸屏供电,注意,树莓派触摸屏不用Micro线独立供电的话是无法使用的,切勿忘记。 连接好后,给扩展板上电。等待系统运行后打开终端,运行下列命令: <code>sudo nano /boot/firmware/config.txt</code> 在文件末尾加入下列语句: <code>dtoverlay=vc4-kms-dsi-7inch</code> http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_79.jpg 保存后重启系统,即可使用树莓派官方7寸触摸屏。显示效果如下所示: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_82.jpg '''''注意:这条语句实际上开启了第二块显示屏,即双屏显示,无论第二块屏的硬件是否安装,在某些软件如全屏截图(PrtScn)中都会显示双屏,有可能还会导致系统无法启动,因此如果不需要使用这块屏,建议在config.txt中把这条语句去掉或者注释掉。''''' ==== 4.8.2 CSI测试 ==== 首先将摄像头连接到扩展板的CSI1接口(本文档使用OV5647摄像头),连接好后,给板子上电。等待系统运行后打开终端,运行下列命令: <code>sudo nano /boot/firmware/config.txt</code> 在文件末尾加入下列语句: <code>dtoverlay=ov5647,cam1</code> http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_80.jpg 在实际使用中根据自己的型号进行添加,保存后重启系统,即可使用OV5647摄像头。 重启后在终端中输入: <code>ls /dev</code> 即可看到video0设备(插一个摄像头显示video0,如果有两路CSI,并插两个摄像头显示video0、video1,和插在哪一路CSI无关)。 http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_81.jpg 在终端中输入<code>libcamera-hello --camera 0</code>即可打开对应的摄像头浏览(camera 0对应dev中的video0)。 http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_12.jpg 如果需要拍照,则输入: <code>libcamera-jpeg -o test.jpg</code> 照片保存在<code>/home/mcuzone</code>目录下(即用户主目录),照片效果如下: http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_14.jpg == '''五、Ubuntu系统的使用''' == === 5.1 测试RS485串口 === 首先要对系统进行串口设置,操作步骤和树莓派官方OS一样,见4.1章节。 设置完成后,在PC端插上一个USB转RS485串口的转换器,与扩展板上的RS485串口相连,各自打开串口软件进行收发,结果如下: Ubuntu系统端/Windows端: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_63.jpg 经过实测,波特率最高可达到2.01M(以传输数据不发生乱码为准)。 === 5.2 测试RS232串口 === 在PC端插上一个USB转RS232串口的转换器,与扩展板上的RS232串口相连,各自打开串口软件进行收发, '''''CM4_UART_CAN扩展板的测试如下:''''' Ubuntu系统端/Windows端: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_64.jpg 经过实测,波特率最高可达到0.86M(以传输数据不发生乱码为准)。 '''''CM4 UART扩展板测试如下:''''' Ubuntu系统端/Windows端: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_65.jpg 经过实测,波特率最高可达到0.28M(以传输数据不发生乱码为准)。 === 5.3 测试CAN接口 === 本节测试CAN接口时,使用Ubuntu 24.10版本。 Ubuntu系统下同样需要在config.txt中加入CAN配置信息和屏蔽冲突串口: <code># dtoverlay=uart4,txd4_pin=8,rxd4_pin=9</code> <code>dtparam=spi=on</code> <code>dtoverlay=spi1-3cs</code> <code>dtoverlay=mcp2515,spi1-0,oscillator=8000000,interrupt=25,speed=500000</code> 后续配置与在树莓派OS下一致: 查看SPI 的信息: <code>sudo dmesg | grep spi</code> http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_47.jpg SPI成功识别后,输入以下命令开启CAN: <code>sudo ip link set can0 up type can bitrate 500000</code> <code>sudo ifconfig can0 txqueuelen 65536</code> 设置完成后输入<code>ifconfig -a</code>,查看CAN连接,可看到can0: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_42.jpg 安装CAN软件: <code>sudo apt-get install can-utils</code> 安装完毕后,连接好与PC之间的CAN收发器,如果Ubuntu系统重启过,需要再运行一次: <code>sudo ip link set can0 up type can bitrate 500000</code> 然后运行下列命令,将Ubuntu系统端置于接收状态: <code>candump can0</code> 打开PC端的CAN测试软件,设置好波特率等参数,向Ubuntu系统端发送数据,结果如下: 发送端: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_43.jpg 接收端: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_44.jpg 如果需要Ubuntu系统端发送数据,则运行下列命令(#后面的是要发送的数据): <code>cansend can0 000#11223344</code> 运行几次就发送几次。 发送端: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_45.jpg 接收端: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_46.jpg === 5.4 测试以太网 === 板载一路原生千兆以太网和一路USB转百兆以太网,在Ubuntu系统终端下执行<code>ifconfig -a</code>,显示结果如下: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_83.jpg eth0为原生千兆以太网,已获得IP地址; enx00e099994e68为USB转百兆以太网,没插网线,所以没有获得IP地址(enx后面的16进制数字为网卡的MAC地址); enx000c29a39b6d为外接USB 4G模块,已获得IP地址(enx后面的16进制数字为网卡的MAC地址)。 ==== 5.4.1 百兆以太网测速 ==== 将扩展板的百兆网口接上级路由器,利用iperf3与PC端进行测速,结果如下: CM4_UART/CAN扩展板作为client时,速度大约为94.4Mbps: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_20.jpg 扩展板作为server时,速度大约为94.8Mbps: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_21.jpg '''''注意:网络测速受网络环境和测试方法影响,速度请以实际为准,本测试仅供参考。''''' ==== 5.4.2 千兆以太网测速 ==== 将扩展板千兆网口接上级路由器,利用iperf3与PC端进行测速,结果如下: 扩展板作为client时,速度大约为941Mbps: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_22.jpg 扩展板作为server时,速度大约为938Mbps: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_23.jpg '''''注意:网络测速受网络环境和测试方法影响,速度请以实际为准,本测试仅供参考。''''' === 5.5 USB测试 === 打开树莓派OS的终端,输入命令<code>lsusb</code>,如下图所示: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_84.jpg Device 002:外挂USB Hub; Device 003:USB转百兆网卡; Device 004:USB转4G模块; Device 005:USB2.0-A接口; Device 006:USB2.0-A接口。 我们在树莓派终端中执行<code>lsusb -t</code>查看USB2.0工作模式是否正常: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_85.jpg 可见除了USB无线键鼠(Human Interface Device,USB1.1设备,工作在12M下)外,其它USB设备均工作在480M下,因此USB2.0工作模式正常。 === 5.6 4G模块测试 === 本扩展板板载的一路1.25mm-4P USB口,可以接我司CM4 4G mini模块,使扩展板具有4G网络功能。 http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_54.jpg ==== 5.6.1 4G网络测试 ==== 在Ubuntu系统终端下执行<code>ifconfig -a</code>,显示结果如下: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_83.jpg 上图所示的USB 4G模块为国产CAT4 4G模块,网络标识显示为enx+MAC地址(enx000c29a39b6d),当前Ubuntu系统下USB接口的网卡的命名规则皆是如此。 本文档以国产CAT4 4G模块为例。 执行<code>route</code>,查看路由表,enx000c29a39b6d排在第一位,因此此时是通过4G模块上网: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_86.jpg 此时我们ping IP和域名,均成功,说明4G模块工作正常: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_87.jpg 打开<nowiki/>https://www.speedtest.cn/<nowiki/>进行网速测试,结果如下: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_88.jpg '''''注意:网络测速受网络环境和测试方法影响,速度请以实际为准,本测试仅供参考。''''' ==== 5.6.2 网络优先级的修改 ==== 上一节我们查看了路由表,默认情况下,优先通过4G网络上网。 如果要优先使用有线网络上网的话,可以运行命令: <code>sudo ip route del default && sudo route add -net default netmask 0.0.0.0 gw 192.168.8.1</code> 这两条命令(以“&&”分隔)的解释: <code>sudo ip route del default</code>:删除路由表中的默认路由; <code>sudo route add -net default netmask 0.0.0.0 gw 192.168.8.1</code>:添加有线网络的网关为新的默认路由(网关地址以实际为准)。 执行完毕后,再执行<code>route</code>,查看路由表,目前的默认路由为有线网络的网关(eth0排第一位): http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_89.jpg 这样网络就默认走有线网络了,如果需要改回默认走4G网络,请运行: <code>sudo ip route del default && sudo route add -net default netmask 0.0.0.0 gw 192.168.0.1</code> 或者重启系统即可。 其中192.168.0.1为4G模组的默认网关,请以实际为准。 '''''注意,重启后路由表还是会恢复原状,所以如果重启后要网络继续默认走有线网络,需要再执行一次<code>sudo ip route del default && sudo route add -net default netmask 0.0.0.0 gw 192.168.8.1</code>。''''' ==== 5.6.3 AT命令操作 ==== 使用<code>lsusb</code>查看USB设备,红框处即为4G模组: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_90.jpg 记下4G模块的ID值:1286 4e3d 使用下列命令打开ttyUSB串口,其中echo后面的值就是上面记录的ID值: <code>sudo modprobe option</code> <code>sudo sh -c 'echo 1286 4e3d > /sys/bus/usb-serial/drivers/option1/new_id'</code> 执行上述两条命令之后执行: <code>ls /dev</code> 此时应该能看到dev设备下有ttyUSB0-3四个设备: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_91.jpg 然后用串口工具打开特定串口(AT命令串口): 安装minicom工具: <code>sudo apt-get install minicom</code> 通过minicom打开AT命令串口: <code>sudo minicom -D /dev/ttyUSB1</code> (注意:使用哪个串口,应以在进入此串口后,可输入运行AT命令,显示不乱码,不乱跳结果为准) 如果需要查看回显,请键入命令:<code>ate1</code>,然后回车,继续键入其它命令,回车可以看到结果。 http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_92.jpg 常用AT命令: 1. 检查SIM卡是否识别到: <code>at+cpin?</code> 返回ready表示卡已识别,返回error要检查硬件 2. 检查天线信号质量: <code>at+csq</code> 返回值在26-31表示信号OK,信号满格31;返回值在20-25表示信号勉勉强强;返回值在20以下表示信号比较糟糕或者天线没接 3. 检查注网情况: <code>at+cops?</code> 正常应该返回运营商代码和7,7代表4G。 注意,以上命令只有<code>at+csq</code>不要加问号,另外两条命令需要加问号。 4. 查看4G模块的IMEI码: <code>at+cgsn</code> 5. 重启4G模块(有时候如果重插SIM卡,热插拔不一定管用,可以用这个reset命令来复位模块): <code>at+reset</code> 6. 关闭射频: <code>at+cfun=0</code> 开启射频: <code>at+cfun=1</code> 上述两条命令成对使用,可以在不重启4G模组的情况下让模组重新注网。 ==== 5.6.4 修改4G模组的IP地址 ==== 如果出厂默认的4G IP地址和用户使用的IP地址有冲突,或有修改IP地址的需求,可按照下列步骤进行修改: '''CAT4 4G模块:''' 执行AT命令: <code>AT+ROUTEIP=<newip></code> 注意,只支持192.168.x.1这样格式的地址,如果设置了<code>AT+ROUTEIP=192.168.3.1</code>,最终获得的IP为192.168.3.100,修改完后需断电重启系统。 查询当前IP:<code>AT+ROUTEIP?</code>,返回两个值,前一个为旧IP,后一个为新IP。 测试命令:<code>AT+ROUTEIP=?</code> '''高通 4G模块:''' 将4G模块的IP改为直接获取公网IP即可,请执行AT命令: 设置IP为公网:<code>AT+GTIPPASS=1</code> 设置IP为内网:<code>AT+GTIPPASS=0</code> 查询当前IP为公网还是内网:<code>AT+GTIPPASS?</code> 修改IP完毕后需要断电重启才能生效。 === 5.7 RTC(DS1307)测试 === http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_55.jpg '''''注意:RTC芯片需要外接电池(如上图所示)才能保持数据不会丢失。''''' 先将I2C打开: <code>sudo nano /boot/firmware/config.txt</code> 查看红框处的i2c_arm是否设置了on,如果没有,请设置: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_93.jpg 然后在该文件末尾加入下列语句: <code>dtoverlay=i2c-rtc,ds1307</code> http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_94.jpg 保存后退出,重启系统,在树莓派终端中输入<code>ls /dev/r*</code>,即可看到RTC设备: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_95.jpg 将系统时间与RTC时间从DS1307读出的命令是<code>sudo timedatectl</code>; 将系统时间写入DS1307的命令是<code>sudo timedatectl set-local-rtc yes</code>; 将UTC时间写入DS1307的命令是<code>sudo timedatectl set-local-rtc no</code>。 下图表示先将系统时间与RTC时间从DS1307读出,然后将系统时间写入DS1307,最后查看写入后的系统时间与RTC时间,注意“RTC time”的前后变化: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_96.jpg === 5.8 DSI测试 === 首先使用22Pin 0.5mm间距转15Pin 1mm间距的转接板和相应的FPC排线,将树莓派官方的7寸触摸屏与扩展板上的DSI接口相连接,然后用一根Micro-USB线给触摸屏供电,注意,树莓派触摸屏不用Micro线独立供电的话是无法使用的,切勿忘记。 连接好后,给扩展板上电。等待系统运行后打开终端,运行下列命令: <code>sudo nano /boot/firmware/config.txt</code> 在文件末尾加入下列语句: <code>dtoverlay=vc4-kms-dsi-7inch</code> http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_97.jpg 保存并退出后,下载DSI显示屏驱动: <code>sudo wget <nowiki>https://datasheets.raspberrypi.com/cmio/dt-blob-disp0-only.bin</nowiki> -O /boot/firmware/dt-blob.bin</code> 重启系统,即可使用树莓派官方7寸触摸屏。显示效果如下所示: http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_98.jpg 在Ubuntu终端中运行: <code>sudo xrandr</code> 可查看两个显示屏的参数(HDMI-1和DSI-1): http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_99.jpg <!-- ==== 5.8.2 CSI测试 ==== 首先将摄像头连接到扩展板的CSI1接口(本文档使用OV5647摄像头),连接好后,给板子上电。等待系统运行后打开终端,运行下列命令: <code>sudo nano /boot/firmware/config.txt</code> 在文件末尾加入下列语句: <code>dtoverlay=ov5647,cam0</code> http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_100.jpg 在实际使用中根据自己的型号进行添加,保存并退出后,下载CSI摄像头驱动: <code>sudo wget <nowiki>https://datasheets.raspberrypi.com/cmio/dt-blob-cam1.bin</nowiki> -O /boot/firmware/dt-blob.bin</code> 重启系统,,即可使用OV5647摄像头。 重启后在终端中输入: <code>ls /dev</code> 即可看到video0设备(插一个摄像头显示video0,如果有两路CSI,并插两个摄像头显示video0、video1,和插在哪一路CSI无关)。 http://www.mcuzone.com/wiki/2006_CM4_UART_CAN/2006_CM4_UART_CAN_101.jpg --> == '''六、CM5核心板兼容性测试''' == {| class="wikitable" |启动 | colspan="6" |仅支持eMMC版本的CM5核心板,不带eMMC的CM5核心板无法从TF卡启动 |- |外设名称 |HDMI输出 |RS485串口 |RS232串口 |CAN接口 |百兆以太网 |原生千兆以太网 |- |是否兼容 |√ |√(ttyAMA4) |√(ttyAMA3) |√ |√ |√ |- |外设名称 |核心板WiFi |USB2.0-A接口 |4G模块 |RTC(DS1307) |DSI |CSI |- |是否兼容 |√ |√ |√ |√(RTC1) |× |√(cam0) |- | colspan="7" |注:√表示兼容,×表示不兼容,括号内的文字表示与CM4核心板的区别 |} {{联系我们_图标}} [http://wiki.mcuzone.com/index.php?title=2006_CM4_UART_CAN T]
本页使用的模板:
模板:联系我们 图标
(
查看源代码
)
返回
2006 CM4/CM5 UART/CAN
。
开关有限宽度模式