5004 CM5IO Plus

来自Mcuzone Wiki
Mcuadm留言 | 贡献2025年1月17日 (五) 15:23的版本 →‎4.7 测试DSI

关键词

树莓派、CM5核心板、NVME SSD、双网口、RPiOS、Ubuntu、USB3.0、USB2.0、4G、mini PCIe、SSD、RTC、PWM、DSI、CSI、HDMI

一、简介

CM5IO_Plus扩展板

二、硬件资源

三、烧写系统

本文档采用树莓派系统进行测试,使用前请先下载并安装核心板驱动、树莓派镜像烧录器以及树莓派系统:

树莓派系统的版本为2024-11-19-raspios-bookworm-arm64.img.xz,树莓派系统下载地址:

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

镜像烧录器的下载地址:

https://www.raspberrypi.com/software/

树莓派CM5核心板的驱动,可以从树莓派官网下载,也可以从我司网站下载,下载地址如下:

http://www.mcuzone.com/down/Software.asp?ID=10000641

3.1 eMMC的烧写

带eMMC的核心板,系统只能烧写在eMMC内,此时板载TF卡无法使用。

扩展板的操作如下:

电源USB-C接到电脑,板上的OTG和BOOT跳线用短路帽短上,如下图:

01.jpg

驱动安装完成后,电脑上打开计算机的设备管理器,查看是否有新的USB设备出现。在下图中的是名称为“BCM2712D0 Boot”的USB设备(即识别树莓派CM5):

5001_CM5_WiFi7-PoE_02.jpg

PC的开始菜单的所有程序下,Raspberry Pi下面有个“rpiboot-CM4-CM5 - Mass Storage Gadget”:

5001_CM5_WiFi7-PoE_03.jpg

打开这个软件,计算机会将eMMC的分区在Windows下分配盘符并显示出来:

5001_CM5_WiFi7-PoE_04.jpg

稍等片刻,在资源管理器中会出现一个分区(本例中的分区名为bootfs,具体名称视实际情况而不同):

5001_CM5_WiFi7-PoE_05.jpg

接下来我们就可以使用树莓派镜像烧录器烧写系统了。

打开树莓派镜像烧录器:

Raspberry Pi Device:选择Raspberry Pi 5;

请选择需要写入的操作系统:

  • 选择Raspberry Pi OS(64-bit),为从树莓派官网下载系统镜像烧写(需联网);
  • 选择Use Custom,则需要自行选择硬盘上已经下载的系统镜像(无需联网);

储存卡:选择刚才显示出来的分区;

5001_CM5_WiFi7-PoE_06.jpg

选择完毕后按“NEXT”,建议点击“编辑设置”,将一些参数预设置进烧写软件,之后在系统启动时就不必再次设置,便于使用。

5001_CM5_WiFi7-PoE_07.jpg

5001_CM5_WiFi7-PoE_08.jpg

5001_CM5_WiFi7-PoE_09.jpg

需要使用预设置的按“”,不需要使用预设置的按“”,进入下一页。

点击“”,就开始烧写及验证完整性。

5001_CM5_WiFi7-PoE_10.jpg

5001_CM5_WiFi7-PoE_11.jpg

烧写完成后,把短路帽都拔掉,重新上电,启动系统即可。

3.2 TF卡的烧写

核心板如果没有eMMC,则系统将从TF卡启动。

TF卡的烧写步骤与eMMC基本相同,无需使用扩展板,将TF卡通过USB读卡器插入电脑的USB口,将系统烧录到TF卡内的分区即可。

烧写完毕后,将TF卡从读卡器中取下,插入CM5_Basic扩展板的TF卡卡槽,上电后即可进入系统。

3.3 SSD的烧写

CM5_Basic扩展板支持一路M.2 M-KEY接口NVME SSD,所以可以从SSD启动系统(同样需要核心板不带eMMC)。

SSD的烧写步骤与TF卡基本相同,无需使用扩展板,将SSD卡通过USB硬盘盒插入电脑的USB口,将系统烧录到SSD内的分区即可。

烧写完毕后,将SSD从硬盘盒中取下,插入CM5_Basic扩展板的M.2接口,上电后即可进入系统,注意此时不要插TF卡。

四、树莓派OS的操作

4.1 测试USB口

4.1.1 USB口识别测试

在树莓派终端中执行lsusb,显示如下:

5004_CM5IO_Plus_02.jpg

识别都正常

随后输入lsusb -t查看USB口的工作模式是否正常:

5004_CM5IO_Plus_03.jpg

Bus 02:为USB 3.0接口,5000M;

Bus 04:为USB 3.0接口,5000M;

Bus 05:为USB 2.0接口,480M。

4.1.2 测速USB3.0

将一个NVME M.2硬盘插入SSD转USB硬盘盒,然后将这个硬盘盒插入CM5IO_Plus扩展板的USB3.0-A口,同时在PCIe转M.2接口插上一个NVME M.2硬盘,启动系统,在这两个硬盘之间拷贝大文件,测试结果如下:

数据传输方向 耗时s 传输速度MBps 包大小MB
NVME->PCIe SSD 5.89 347.71 2048.00
PCIe SSD->NVME 7.55 271.26 2048.00
NVME->PCIe SSD 41.1 249.15 10240.00
PCIe SSD->NVME 42.14 243.00 10240.00

4.1.3 测速USB2.0

将一个NVME M.2硬盘插入SSD转USB硬盘盒,然后将这个硬盘盒插入CM5IO_Plus扩展板的USB2.0-A口,同时在PCIe转M.2接口插上一个NVME M.2硬盘,启动系统,在这两个硬盘之间拷贝大文件,测试结果如下:

数据传输方向 耗时s 传输速度MBps 包大小MB
NVME->PCIe SSD 60.79 33.69 2048.00
PCIe SSD->NVME 39.45 51.91 2048.00
NVME->PCIe SSD 304.64 33.61 10240.00
PCIe SSD->NVME 306.01 33.46 10240.00

4.2 测试SSD硬盘

4.2.1 SSD硬盘的识别

将SSD硬盘插入CM5IO_Plus扩展板的PCIe转M.2接口,上电启动系统。

在树莓派终端中执行lspci,查看SSD硬盘信息:

5004_CM5IO_Plus_06.jpg

然后需要对SSD硬盘进行授权,在File Manager中点击SSD分区,会弹出授权框,填入当前账户的密码进行授权:

5004_CM5IO_Plus_04.jpg

注意:点击的第一个分区需要输入密码进行授权,如有其它分区只需要点击即可完成授权。

授权完毕后,在桌面会显示分区:

5004_CM5IO_Plus_05.jpg

在树莓派终端中输入df,即可查看SSD硬盘分区信息:

5004_CM5IO_Plus_07.jpg

我们可以看到两个SSD分区名为nvme0n1p1、nvme0n1p2。

4.2.2 测速PCIe Gen2的SSD硬盘

默认状态下,SSD硬盘运行在 PCIe Gen2下。

安装硬盘测速软件hdparm,在树莓派终端下运行:

sudo apt install hdparm

运行接口测速命令,可多次运行,测试多次硬盘速度:

sudo hdparm -t /dev/nvme0n1

这里运行了5次,具体数据见下:

5004_CM5IO_Plus_08.jpg

次数 传输速度MBps
1 450.95
2 451.04
3 451.02
4 450.97
5 451.01
平均 451.00

4.2.3 测速PCIe Gen3的SSD硬盘

首先在树莓派OS终端中输入sudo nano /boot/firmware/config.txt,在最后一行加入下列代码:

dtparam=pciex1_gen=3

5002_CM5_Basic_24.jpg

保存后退出并重启系统,这样就切换到了PCIe Gen3。

运行接口测速命令,可多次运行,测试多次硬盘速度:

sudo hdparm -t /dev/nvme0n1

这里运行了5次,具体数据见下:

5004_CM5IO_Plus_09.jpg

次数 传输速度MBps
1 875.11
2 880.84
3 877.09
4 875.91
5 883.57
平均 878.50

可见SSD硬盘的接口速度与在PCIe Gen2下的测试数值有明显的提高。

4.3 测试以太网口

CM5IO_Plus扩展板带有一个原生千兆网口和一个通过USB2.0扩展的百兆网口。

将网线插入扩展板的原生千兆网口,执行ifconfig -a,显示如下:

5004_CM5IO_Plus_10.jpg

我们使用网速测试软件iperf3进行测速。

Windows版iperf3下载:

http://www.mcuzone.com/down/Software.asp?ID=10000634

Linux下iperf3安装:

sudo apt-get install iperf3

4.3.1 原生千兆网口测速

使用iperf3对原生千兆网口进行测速:

client模式为938Mbps左右:

5004_CM5IO_Plus_11.jpg

server模式为947Mbps左右:

5004_CM5IO_Plus_12.jpg

注意:网络测速受网络环境和测试方法影响,速度请以实际为准,本测试仅供参考。

4.3.2 扩展百兆网口测速

使用iperf3对扩展百兆网口进行测速:

client模式为93.7Mbps左右:

5004_CM5IO_Plus_13.jpg

server模式为94.7Mbps左右:

5004_CM5IO_Plus_14.jpg

注意:网络测速受网络环境和测试方法影响,速度请以实际为准,本测试仅供参考。

4.5 测试RTC

CM5核心板自带RTC,扩展板上需外接电池,可在树莓派系统下直接使用。如下图所示:

15

系统启动后,在树莓派终端中运行:

ls /dev/r*

即可看到RTC设备:

5004_CM5IO_Plus_16.jpg

显示当前系统时间的命令是date

将系统时间从RTC读出的命令是sudo hwclock -r

将系统时间写入RTC的命令是sudo hwclock -w

如下图所示:

5004_CM5IO_Plus_17.jpg

如果此时正确接上了RTC电池,则断电后RTC内部的当前时间不会消失,否则将会恢复到默认时间(1970年1月1日)。

4.6 测试PWM风扇

安装监测软件s-tui:

sudo apt install s-tui

然后在树莓派终端中运行s-tui,则可以在监测窗口中看到风扇转速的变化:

5004_CM5IO_Plus_18.jpg

如果需要自定义风扇的转速和运行的温度范围,请打开终端,运行下列命令:

sudo nano /boot/firmware/config.txt

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

dtparam=cooling_fan=on

dtparam=fan_temp0=50000,fan_temp0_hyst=5000,fan_temp0_speed=255

其中:

fan_temp0=50000,50000为表示温度,这里是50摄氏度;

fan_temp0_hyst=5000,5000表示迟滞温度,这里是5摄氏度;

fan_temp0_speed=255,255表示风扇转速,最高为255。

可以写入多段温度及相对应的风扇转速,每一段另起一行,使用不同的序号数字来区分,例如:

dtparam=fan_temp1=36000,fan_temp1_hyst=5000,fan_temp1_speed=128

5003_CM5_Router_59.jpg

4.7 测试DSI

我们测试用的液晶屏是树莓派官方第一代液晶屏,液晶屏需额外独立供电(Micro-USB接口,位于显示屏后部的控制板上),上电启动系统,打开终端,运行下列命令:

sudo nano /boot/firmware/config.txt

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

dtoverlay=vc4-kms-dsi-7inch,dsi0

(使用接口为CAM/DISP 0,如果使用CAM/DISP 1接口,请将dsi0改成dsi1)

5002_CM5_Basic_34.jpg

保存后重启系统,即可使用树莓派官方7寸触摸屏。显示效果如下所示:

22.jpg

注意:这条语句实际上开启了第二块显示屏,即双屏显示,无论第二块屏的硬件是否安装,系统都有可能认为存在双屏,如果使用PrtScn截图,也会截到双屏的图。因此如果不需要使用这块屏,建议在config.txt中把这条语句去掉或者注释掉。

4.8 测试CSI

我们使用的是OV5647摄像头,接口为CAM/DISP 0,系统运行后打开终端,运行下列命令:

sudo nano /boot/firmware/config.txt

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

dtoverlay=ov5647,cam0

(如果使用CAM/DISP 1接口,请将cam0改成cam1)

5002_CM5_Basic_36.jpg

在实际使用中根据自己的型号进行添加,保存后重启系统,即可使用OV5647摄像头。

重启后在终端中输入:

ls /dev/video*

即可看到video0设备:

19.jpg

在终端中输入libcamera-hello --camera 0即可打开对应的摄像头浏览:

20.jpg

如果需要拍照,则输入:

libcamera-jpeg -o test.jpg

照片保存在/home/mcuzone目录下(即用户主目录),照片效果如下:

21.jpg

4.9 测试外接4G模组

4.10 测试开关机按键

CM5IO_Plus扩展板带有一个开关机按键,开机状态下,按一下按键,弹出关机菜单:

5001_CM5_WiFi7-PoE_47.jpg

再按一下按键,直接关机;

关机状态下(需接电源)按一下按键,上电开机。

4.11 测试PoE

4.12 测试HDMI