跳到主要内容

说明

Luckfox CM5 IO Board 是幸狐发布的一款可以搭配树莓派 Compute Module 5 使用的底板,可用作 Compute Module 5 的开发系统以及作为嵌入式电路板集成到终端产品中,也可以使用现成的部件 (如树莓派扩展板和M.2硬盘) 快速创建系统。它主要的接口位于同一侧,方便用户使用,使外壳设计变得简单。

特征和注意事项

  • 禁止带电时拔插除USB和HDMI之外的任何设备
  • Type C用作烧录接口和供电接口。
  • 板载2 路 USB 3.2 Gen1 接口。
  • 支持4屏幕异显,添加MIPI DSI驱动,不管是否连接屏幕,系统都将默认连接,屏幕将会分屏显示(和系统版本有关系)
  • 使用Type C烧录不要连接其他设备,否则供电不足导致无法识别设备

产品尺寸

核心板尺寸

底板尺寸

镜像烧录教程

如何进入烧录模式

使用说明

POE

  • 板载不带POE模块,只带POE管脚,位置与PI5兼容,可以使用PI5的POE模块

微雪POE

NVME

挂载

  • 启用PCIE接口
    在/boot/firmware/config.txt 中添加以下内容:
    dtparam=pciex1
  • PCIE默认是gen2,如果需要启用PCIE gen3, 则在/boot/firmware/config.txt 中添加:
    dtparam=pciex1_gen=3
  • 修改之后重启PI5,就可以识别到设备了。
    如下图,识别到SM2263就是我的SSD固态,另外一个PI5的是RPI芯片
  • 分区,如果在其他平台有分区和格式化,则跳过这一步(会删除SSD所有数据谨慎操作)
    lsblk   # 可以看到磁盘(如果想看到详细信息执行 sudo fdisk -l )
    如下:
    分区
    sudo fdisk /dev/nvme0n1  #设备号是总设备号,不要添加p1,那只是一个分区而已 
    分区工具fdisk如何使用
    n   # 新建分区
    q # 不保存退出
    p # 打印分区表
    m # 打印选择菜单
    d # 删除分区
    w # 保存退出
    t # 修改ID号
    # 添加分区执行n即可,最后w保存退出
  • 格式化
    sudo mkfs.  
    然后按tab 可以看到很多种不同的后缀名,不同的后缀名就是你需要想要格式化的格式
    假设我要格式化为ext4 文件格式,那么就是执行 sudo mkfs.ext4 /dev/nvme0n1p1
    等待片刻,当done都出现完毕后,意味着格式化已经进行完毕。
  • 挂载
    sudo mkdir toshiba                      # 创建挂载目录
    sudo mount /dev/nvme0n1p1 ./toshiba # 挂载设备
    df -h # 检查磁盘状态

读写测试

  • 注意:不同的卡以及环境 测试效果不同 树莓派受到的影响比较大 ,如果想要测试准确的性能使用PC 电脑测试
    cd toshiba                                                  # 进入挂载磁盘的目录
    sudo sh -c "sync && echo 3 > /proc/sys/vm/drop_caches" # 释放内存
    sudo dd if=/dev/zero of=./test_write count=2000 bs=1024k # 拷贝树莓派内存内容到硬盘 (写)
    sudo dd if=./test_write of=/dev/null count=2000 bs=1024k # 拷贝硬盘内容到树莓派内存 (/etc/fstab读)

自动挂载

  • 测试没有问题如果不需要作为系统盘,只扩展磁盘使用,设置自动挂载
    sudo nano /etc/fstab  
    结尾添加
    /dev/nvme0n1p1  /home/pi/toshiba  ext4  defaults  0  0  # /dev/nvme0n1p1 设备名, /home/pi/toshiba 挂载到目录
    # ext4是文件系统类型 ,defaults 使用默认的挂载选项
    sudo mount -a # 使更改生效(测试无问题再重启,不然会导致无法挂载导致无法开机)
    # 然后重启,通过lsblk检查设备

NVMe SSD引导启动

  • 先使用SD卡或者EMMC启动,先挂载测试一下,确保硬件可以正常工作
  • 以下方法二选一即可

方法1

  • 配置相关参数
    sudo raspi-config       # 进入设置进行配置
    配置如下:
  • 重启树莓派,如果修改多次发现无法修改,请连接网络之后再修改(等待网络自对时),或者设置正确时间之后再修改文件
  • 将系统烧录到NVME中,然后将NVME连接到扩展板,移除SD卡重新上电即可

方法2

  • 修改树莓派的引导加载程序配置中的BOOT_ORDER:
    sudo rpi-eeprom-config --edit 
  • 将BOOT_ORDER=0xf41 改为 BOOT_ORDER=0xf416
  • 更多内容可以参考 BOOT_ORDER
  • 重启树莓派,如果修改多次发现无法修改,请连接网络之后再修改(等待网络自对时),或者设置正确时间之后再修改文件
  • 将系统烧录到NVME中,然后将NVME连接到扩展板,移除SD卡重新上电即可

风扇控制

  • PI5 风扇默认是温度控制50度才开始转,如果想要控制其他温度就可以转,/boot/firmware/config.txt 中添加指定内容即可,例如:
    dtparam=fan_temp0=36000,fan_temp0_hyst=2000,fan_temp0_speed=90
    dtparam=fan_temp1=40000,fan_temp1_hyst=3000,fan_temp1_speed=150
    dtparam=fan_temp2=52000,fan_temp2_hyst=4000,fan_temp2_speed=200
    dtparam=fan_temp3=58000,fan_temp3_hyst=5000,fan_temp3_speed=255
  • 其中:
    fan_temp0/1/2/3             # 表示温度(36000表示36℃)
    fan_temp0/1/2/3_speed # 表示对应的转速(值最大255)
    fan_temp0/1/2/3_hyst # 表示迟滞温度
    更多内容参考 相关资料
    注意:仅仅是0123一共4个温度,不可能再设置其他温度,迟滞温度不得超过两个温度的跨步范围

MIPI

  • 支持双MIPI,客户可以自由选择CSI或者DSI连接
  • 排线分为DSI和CSI排线,不通用,详情参考 CSI摄像头排线DSI显示器排线
  • DSI屏幕默认是800x480分辨率的屏幕,其他分辨率的屏幕请参考对应的WIKI
  • 注意:使用MIPI1接口需要连接跳线帽

DSI

  • 在config.txt中添加内容
    sudo nano /boot/firmware/config.txt     # 进入文件
    dtoverlay=vc4-kms-dsi-7inch,dsi0 # 文件中最下方添加这句,则会启用 DSI1
    dtoverlay=vc4-kms-dsi-7inch,dsi1 # 文件中最下方添加这句,则会启用 DSI0

CSI

  • 在config.txt中添加内容
    sudo nano /boot/firmware/config.txt
    型号CAM0设置语句CAM1设置语句
    OV9281dtoverlay=ov9281,cam0dtoverlay=ov9281,cam1
    IMX290/IMX327dtoverlay=imx290,
    clock-frequency=37125000,cam0
    dtoverlay=imx290,
    clock-frequency=37125000,cam1
    IMX378dtoverlay=imx378,cam0dtoverlay=imx378,cam1
    IMX219dtoverlay=imx219,cam0dtoverlay=imx219,cam1
    IMX477dtoverlay=imx477,cam0dtoverlay=imx477,cam1
    IMX708dtoverlay=imx708,cam0dtoverlay=imx708,cam1
  • 容许一个连接DSI一个连接CSI,例如使用IMX219连接MIPI1
  • 例如:使用DSI显示器连接MIPI0,在config.txt 中添加
    dtoverlay=imx219,cam1
    dtoverlay=vc4-kms-dsi-7inch,dsi0
    • 快捷键Ctrl+o保存文件,并回车
    • 快捷键Ctrl+x退出编辑器
    • 然后重启设备
      sudo reboot     # 重启设备

测试摄像头

  • 输入摄像头检测指令,此时可以看到摄像头已经被检查到了
    libcamera-hello --list-cameras
    如下:
    libcamera-hello -t 0                    # 显示摄像头画面到桌面
    libcamera-jpeg -o test.jpg              # 拍摄照片
    libcamera-vid -t 10000 -o test.h264     # 录制一个10s的视频
  • 其他命令
    libcamera-hello --list-cameras          # 检查摄像头是否被检测到
    libcamera-hello  --camera 1             # 打开对应的摄像头1
    libcamera-hello --camera 0 # 打开对应的摄像头0
    libcamera-jpeg -o test.jpg              # 拍摄照片,可以添加 --camera 来指定摄像头

实时时钟 (RTC)

注意:默认不带电池需要额外连接RTC电池

软件调试

  • 默认设备是/dev/rtc0
  • 关于时间,在命令行输入date可以看到当前时间,连接网络树莓派系统会自动网络对时,如果默认RTC设备有连接并且工作正常,那么RTC时间会在自动网络对时后更新时间
    sudo hwclock -r                         # 读取RTC时间,如果存在多个RTC设备,可以使用-f来选择对应的设备(例如:sudo hwclock -f /dev/rtc1 -r)

Hwclock简单使用

  • 相关指令
    sudo hwclock -w                                 # 同步系统时钟 -> 硬件时钟(RTC)
    sudo hwclock  -s                                # 同步硬件时钟(RTC) -> 系统时钟,需要关闭网络,或者关闭网络对时,否则会被改回去     
    sudo hwclock --set --date="9/8/2023 16:45:05"   # 设置硬件时钟时间(RTC)
    sudo hwclock -r                                 # 查看硬件时钟(RTC)
    sudo hwclock --verbose                          # 显示版本信息

自动唤醒

  • 要支持唤醒警报的低功耗模式,添加配置:
    sudo -E rpi-eeprom-config --edit
  • 添加以下两行。
    POWER_OFF_ON_HALT=1     
    WAKE_ON_GPIO=0
  • 添加之后重启设备(如果连接串口日志可以看到有更新相关日志)
    sudo reboot
  • 您可以使用以下方法测试功能,10分钟后将唤醒并重新启动
    echo +600 | sudo tee /sys/class/rtc/rtc0/wakealarm
    sudo halt
  • 或者使用以下方法测试功能,10分钟后将唤醒并重新启动
    echo +600 | sudo tee /sys/class/rtc/rtc0/wakealarm
    sudo poweroff

RTC电池充电

  • 注意:在添加这个之前先确认你的RTC电池是否容许充电,以及最大容许电压是多少
  • 进入配置文件
    sudo nano /boot/firmware/config.txt
  • 添加这一句
    dtparam=rtc_bbat_vchg=3000000       # 文件中最下方添加这句,则会启用RTC电池充电
    # 其中 3000000 表示最大电压,充电充到3V就会关闭充电,电压低于3V会启动涓流充电

资料

手册&原理图

2D/3D 图纸