IPCBOX-CM5-A 使用教程

版本选择


双网口 CM5 主机 A 款
( 4 × RS485 )


双网口 CM5 主机 B 款
( 2 × RS485 + 2 × RS232 )

产品特性

  • 禁止带电时拔插除 USB 和 HDMI 之外的任何设备
  • Type C 可用作 USB SLAVE 接口烧录镜像或设备供电。
  • 板载 2 组 USB 接口,每组接口最大电流输出总和为 2A。(1 路 USB 3.2 Gen1 + 3 路 USB 2.0 接口)
  • 支持 3 屏幕异显,添加 MIPI DSI 驱动,不管是否连接屏幕,系统都将默认连接,屏幕将会分屏 显示(和系统版本有关系)
  • 板载 M.2 M KEY 接口,支持 NVMe 硬盘协议(或者 PCIE 协议的 AI 模块)
  • 板载 M.2 B KEY 接口,支持接入 4G/5G 通信模块
  • 2 路 RS485 + 2 路 RS232 或 4 路 RS485 版本可选(隔离)
  • 1 路 CAN 支持 1Mbps 通信速率(隔离)
  • 2 路 数字输出 + 2 路 数字输入(隔离)
  • 3.5mm 耳机接口 (支持麦克风),PH2.0 喇叭接口
  • 单路可控蜂鸣器
  • 板载 EEPROM 和加密芯片
  • 板载 BOOT 按键,可以上电前按住 BOOT 按键,通过 Type C 连接电脑,让设备接入烧录模式
  • 使用 Type C 烧录不要连接其他设备,否则供电不足导致无法识别设备

板载资源


1. CM5 连接器
适用于 Compute Module 5 的所有版本
2. M.2 M KEY
支持 2242 / 2230 NVMe 硬盘或者 AI 模块
3. Nano SIM 卡连接器
4. Micro SD 卡接口
用于接入带系统的 Micro SD 卡,仅适用于不带 eMMC 的 CM5 版本
5. 双 USB 2.0 接口
标准 USB 2.0 接口
6. BOOT 按键
上电前按下,进入烧录模式
7. PSW 电源按键
长按强制关机,短按软关机或者开机
8. M.2 B KEY
支持接入 4G / 5G 通信模块
9. 蜂鸣器
10. PH2.0 喇叭接口
支持连接 8Ω 5W 喇叭扬声器,外壳未对该接口开槽,无法从壳体内部引出
11. 烧录接口
可以作为 eMMC 烧录接口
12. 3.5mm 耳机接口
支持音频输入输出
13. HDMI 接口
支持 4K 输出
14. USB 接口
一个标准 USB 2.0 接口,一个 USB 3.2 Gen1 Type-A 接口,USB 3.2 Gen1 最高支持 5Gbps
15. DC 电源接口
支持 DC 7V ~ 36V 供电
16. 指示灯
17. 1000M 网口
RJ45 1000M 网口,支持 10M / 100M / 1000M 网络接入
18. 2500M 网口
RJ45 2500M 网口,支持 10M / 100M / 1000M / 2500M 网络接入
19. RTC 电池连接座
可使用对应接口的 RTC 电池给 RTC 供电
20. 多功能接口
包含一路 CAN 接口 (最高支持 1Mbps) 和 2 路数字输入与 2 路数字输出
21. RS485 / RS232 接口
根据版本对应相应接口
22. 120R 跳线帽
RS485、CAN 终端电阻跳线帽,RS232 无作用
23. 双 MIPI 接口
支持接入 DSI 显示器或者 CSI 摄像头,外壳未对该接口开槽,无法从壳体内部引出

产品尺寸


开发相关

镜像烧录

  • 进入下载模式
    • 板载 BOOT 按键:在上电前按住 BOOT 按键,通过 Type C 连接电脑,等到电源指示灯亮起再松开按键
  • LITE 版本镜像烧录:LITE 版本教程
  • EMMC 版本镜像烧录:EMMC 版本教程

NVMe(M.2 M KEY)


NVMe SSD 引导启动

  • 先使用 SD 卡启动树莓派,先挂载测试一下 NVMe 硬盘,确保硬件可以正常工作
  • NVMe SSD 引导启动:引导启动配置教程

MIPI

注意

本产品外壳未对该接口开槽,无法从壳体内部引出,仅可在未组装外壳时使用


风扇控制

注意

产品未配套风扇,仅在底板预留风扇接口


RTC


音频接口

注意

当连接耳机时,PH2.0 喇叭接口将会静音,音频信号将从耳机接口输出


RS485/RS232

  • 产品板载 RS485/RS232 接口(版本 A 无 RS232 接口)
  • 产品支持此教程内的全部功能:RS485/RS232 使用教程

CAN

  • 产品板载 CAN 接口(支持最高速率为 1Mbps)
  • 产品支持此教程内的全部功能:CAN 使用教程

数字输入接口

注意

产品的数字输入接口支持的最大输入电压为 36V

控制引脚功能说明
GPIO23IN1数字输入通道1
GPIO24IN2数字输入通道2
  • 当数字输入为高电平(高于 2V)时,GPIO 采集到的电平为低
  • 当数字输入为低电平(低于 0.9V)时,GPIO 采集到的电平为高

数字输出接口

注意

产品的数字输出为开漏输出,最大截断电压为 150V,最大电流支持 500mA(导通电阻为 18Ω,过压或过流都将烧毁设备)

控制引脚功能说明
GPIO27OUT1数字输出通道1
GPIO22OUT2数字输出通道2
  • 当 GPIO 输出高时,数字输出的输出电平为低
  • 当 GPIO 输出低时,数字输出的输出电平为高阻态

4G / 5G

  • 产品板载 M.2 M KEY 接口,支持接入 4G / 5G 通信模块
  • 产品支持此教程内的全部功能:4G / 5G使用教程

加密芯片(ATSHA204)


EEPROM(CAT24C32)

  • 芯片的 I2C 地址:0x50(可通过修改 A0~A2 电阻的焊接位置调整)
  • 芯片默认连接的 I2C 为: I2C1(SDA:GPIO2、SCL:GPIO3)


I2C 接口

  • 底板默认使用的 I2C 总线为 I2C1(SDA:GPIO2、SCL:GPIO3)
  • 当前 I2C 接口用于板上的 加密芯片(ATSHA204) 与 EEPROM(CAT24C32)
  • 可通过调整电阻切换为使用 I2C0


蜂鸣器

控制引脚功能说明
GPIO7蜂鸣器有源蜂鸣器
  • 当 GPIO 输出高时,蜂鸣器无输出
  • 当 GPIO 输出低时,蜂鸣器输出声音

指示灯

指示灯丝印功能说明
STAT4G/5G 模组使能指示灯4G/5G 模块接口指示灯
NET4G/5G 模组运行状态指示灯
PWR树莓派系统指示灯树莓派系统指示灯
ACT树莓派工作状态指示灯
USER1用户自定义功能指示灯1连接至 GPIO25,低电平有效
USER2用户自定义功能指示灯2连接至 GPIO26,低电平有效


NVMe

本节介绍在树莓派上如何使用 NVMe 硬盘功能,为后续项目开发奠定基础。

注意:在使用此功能前需先启用 PCIe 接口

启用 PCIe 接口

  • 启用 PCIe gen3 接口(PCIe gen2 默认为启用状态)
    • 进入 config.txt 文件

      sudo nano /boot/firmware/config.txt
    • PCIE 默认是 gen2,如果需要启用 PCIE gen3, 则在 config.txt 中添加

      dtparam=pciex1_gen=3
    • 修改之后重启树莓派,就可以识别到设备了

      sudo reboot
    • 重启后查看 PCIe 识别情况

      lspci


NVMe 硬盘操作

格式化硬盘

  • 若没有启用 PCIe 接口的话,先启用 PCIe 接口

  • 查看支持的格式,输入 sudo mkfs. 后,按 tab 按键 可以看到很多种不同的后缀名,不同的后缀名对应允许格式化的格式

    sudo mkfs.


  • 列出所有硬盘

    lsblk


  • 假设要将 /dev/nvme0n1p1 格式化为 ext4 文件格式,就是执行

    sudo mkfs.ext4 /dev/nvme0n1p1



硬盘分区

  • 若没有启用 PCIe 接口的话,先启用 PCIe 接口

  • 列出所有硬盘(如果想看到详细信息执行sudo fdisk -l

    lsblk


  • 假设要将 /dev/nvme0n1 重新分区,就是执行以下指令(注意:设备号是总设备号,不要添加 p1,那只是一个分区而已)

    sudo fdisk /dev/nvme0n1
  • 添加分区执行 n 即可,最后 保存退出

  • fdisk 功能说明:

    • n 新建分区
    • q 不保存退出
    • p 打印分区表
    • m 打印选择菜单
    • d 删除分区
    • w 保存退出
    • t 修改 ID 号

手动挂载

  • 若没有启用 PCIe 接口的话,先启用 PCIe 接口

  • 确认好需要挂载的目录,若路径不存在先创建路径中缺少的文件夹(例如要挂载到当前文件夹的toshiba文件夹下,当前目录若没有 toshiba 文件夹则使用以下指令创建)

    sudo mkdir toshiba
  • 列出所有硬盘(如果想看到详细信息执行sudo fdisk -l

    lsblk


  • 假设要将 /dev/nvme0n1 挂载到当前目录下的 toshiba 文件夹

    sudo mount /dev/nvme0n1p1 ./toshiba
  • 查看文件系统磁盘空间使用情况。

    df -h

开机自动挂载

  • 注意:自动挂载只有在不作为系统盘时使用,仅作为扩展磁盘时进行此类配置

  • 若没有启用 PCIe 接口的话,先启用 PCIe 接口

  • 修改 fstab 文件

    sudo nano /etc/fstab
  • 在文件最下方添加 (/dev/nvme0n1p1 设备名, /home/pi/toshiba 挂载到目录,ext4 是文件系统类型 ,defaults 使用默认的挂载选项)

    /dev/nvme0n1p1 /home/pi/toshiba ext4 defaults 0 0
  • 使更改生效(测试无问题再重启,不然会导致无法挂载导致无法开机)

    sudo mount -a
  • 在没有问题的情况下,执行重启操作

    sudo reboot
  • 重启后查看挂载情况

    lsblk

读写测试

  • 若没有启用 PCIe 接口的话,先启用 PCIe 接口

  • 查看挂载情况

    lsblk
  • 挂载正常的情况下进入挂载目录(这里挂载目录是 /home/pi/toshiba)

    cd /home/pi/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 sh -c "sync && echo 3 > /proc/sys/vm/drop_caches" # 释放内存
    sudo dd if=./test_write of=/dev/null count=2000 bs=1024k # 读测试


  • 注意:不同的卡以及环境在树莓派上测试效果不同,部分硬盘速率受限,如果想要测试准确的性能使用 PC 电脑测试

NVMe Boot

本节介绍在树莓派上如何使用 NVMe SSD 引导启动,为后续项目开发奠定基础。
注意:使用 NVMe SSD 引导启动时请不要启用 自动挂载

NVMe SSD 引导启动

方式一(修改 raspi-config 配置)

  • 先使用 SD 卡启动树莓派,先挂载测试一下 NVMe 硬盘,确保硬件可以正常工作

  • 进入 raspi-config 配置

    sudo raspi-config


  • 重启树莓派(注意:如果修改多次发现无法修改,请连接网络之后再修改(等待网络自对时),或者设置正确时间之后再修改文件)

    sudo reboot
  • 将系统烧录到 NVME 中,然后将 NVME 连接到板上硬盘接口(或扩展板上的硬盘接口),移除 SD 卡重新上电即可

方式二(修改 引导加载程序 配置)

  • 先使用 SD 卡启动树莓派,先挂载测试一下 NVMe 硬盘,确保硬件可以正常工作

  • 进入引导加载程序配置

    sudo rpi-eeprom-config --edit
  • 修改树莓派的引导加载程序配置中的 BOOT_ORDER

  • 将 BOOT_ORDER=0xf41 改为 BOOT_ORDER=0xf416 


  • 重启树莓派(注意:如果修改多次发现无法修改,请连接网络之后再修改(等待网络自对时),或者设置正确时间之后再修改文件)

    sudo reboot
  • 将系统烧录到 NVME 中,然后将 NVME 连接到板上硬盘接口(或扩展板上的硬盘接口),移除 SD 卡重新上电即可


DSI

本节介绍在树莓派上如何使用 DSI 接口功能,为后续项目开发奠定基础。

注意:若 config.txt 添加了 DSI 配置,不管是否连接了 DSI 屏幕,显示效果都将以 DSI 接口为主信号进行显示(即启用了 DSI 配置,且只连接了 HDMI 接口(若硬件存在 HDMI),此时 HDMI 将不会显示主页,而是以扩展形式显示)
注意:DSI 接口默认为禁用状态,使用前需先配置 config.txt 文件

DSI 接口选择

  • 启用 DSI 接口(默认为禁用用状态)

  • 进入 config.txt 文件

    sudo nano /boot/firmware/config.txt
  • 若想仅使用 DSI0 (MIPI0),则添加以下指令

    # DSI0 (MIPI0)
    dtoverlay=vc4-kms-dsi-7inch,dsi0
  • 若想仅使用 DSI1 (MIPI1),则添加以下指令

    # DSI1 (MIPI1)
    dtoverlay=vc4-kms-dsi-7inch,dsi1
  • 若想同时使用 DSI0 (MIPI0) 和 DSI1 (MIPI1),则添加以下指令

    # DSI0 (MIPI0) And DSI1 (MIPI1)
    dtoverlay=vc4-kms-dsi-7inch,dsi0
    dtoverlay=vc4-kms-dsi-7inch,dsi1
  • 修改之后重启树莓派,就可以正常点亮 DSI 屏幕

    sudo reboot


CSI

本节介绍在树莓派上如何使用 CSI 接口功能,为后续项目开发奠定基础。

注意:单个摄像头只能连接 MIPI0
注意:CSI 接口默认为禁用状态,使用前需先配置 config.txt 文件

csi 接口选择-驱动设置

  • 启用 CSI 接口(默认为禁用用状态)

  • 进入 config.txt 文件

    sudo nano /boot/firmware/config.txt
  • 根据使用的摄像头型号在 config.txt 中添加相应配置(以下使用 imx219 驱动的摄像头举例)

    摄像头驱动型号CAM0 设置语句CAM1 设置语句
    OV9281dtoverlay=ov9281,cam0dtoverlay=ov9281,cam1
    IMX290/IMX327dtoverlay=imx290,clock-frequency=37125000,cam0dtoverlay=imx290,clock-frequency=37125000,cam1
    IMX378dtoverlay=imx378,cam0dtoverlay=imx378,cam1
    IMX219dtoverlay=imx219,cam0dtoverlay=imx219,cam1
    IMX477dtoverlay=imx477,cam0dtoverlay=imx477,cam1
    IMX296dtoverlay=imx296,cam0dtoverlay=imx296,cam1
    IMX708dtoverlay=imx708,cam0dtoverlay=imx708,cam1
  • 若想仅使用 CSI0 (MIPI0),则添加以下指令

    # CSI0 (MIPI0)
    dtoverlay=imx219,cam0
  • 若想仅使用 CSI1 (MIPI1),则添加以下指令

    # CSI1 (MIPI1)
    dtoverlay=imx219,cam1
  • 若想同时使用 CSI0 (MIPI0) 和 CSI1 (MIPI1),则添加以下指令

    # CSI0 (MIPI0) And CSI1 (MIPI1)
    dtoverlay=imx219,cam0
    dtoverlay=imx219,cam1
  • 修改之后重启树莓派,就可以正常使用 CSI 接口驱动摄像头了

    sudo reboot

摄像头检测

  • 若没有启用 CSI 接口的话,先启用 CSI 接口(注意:驱动设置要和使用的摄像头一致)

  • 使用指令检测当前连接的摄像头

    rpicam-hello --list-cameras
  • 打开对应的摄像头

    # 打开编号为 0 的摄像头
    rpicam-hello --camera 0 -t 0
    # 打开编号为 1 的摄像头
    rpicam-hello --camera 1 -t 0
  • 如果可以识别无法启动,尝试更新系统:

    sudo rpi-update

显示实时画面

  • 若没有启用 CSI 接口的话,先启用 CSI 接口(注意:驱动设置要和使用的摄像头一致)

  • 显示摄像头画面到桌面(注意:使用 SSH 连接时,不能使用以下指令显示)

    rpicam-hello -t 0

拍照

  • 若没有启用 CSI 接口的话,先启用 CSI 接口(注意:驱动设置要和使用的摄像头一致)

  • 拍摄一张照片,并将照片存放到当前目录

    rpicam-jpeg -o test.jpg

视频录制

  • 若没有启用 CSI 接口的话,先启用 CSI 接口(注意:驱动设置要和使用的摄像头一致)

  • 录制一个 10s 的视频,并将视频存放到当前目录

    rpicam-vid -t 10s -o test.h264


FAN

本节介绍在树莓派上如何使用 FAN 接口功能,为后续项目开发奠定基础。

提示
  • 风扇接口默认为自动温控,会随核心温度自动调整转速。如需手动设置转速,建议在不需要时及时切换回自动温控模式。
  • 请在上电前连接好风扇,否则相关控制指令将无效。

FAN 关键说明

  • 在树莓派中 FAN 设备默认为 /sys/devices/platform/cooling_fan/hwmon/hwmon/pwm1仅在上电前连接才可以识别到风扇设备

手动控制转速

注意

风扇接口默认为自动温控,会根据核心温度自动调整转速。手动设置转速后将失去自动温控功能,建议不需要时及时切换回自动模式。

指令控制实现

  • 注意相关说明,FAN 关键说明

  • 查看是否存在风扇设备(有日志输出即存在设备)

    ls /sys/devices/platform/cooling_fan/hwmon/hwmon0
  • 切为手动控制(默认为自动温控)

    echo 1 | sudo tee /sys/devices/platform/cooling_fan/hwmon/hwmon0/pwm1_enable
    # sudo echo 1 > /sys/devices/platform/cooling_fan/hwmon/hwmon0/pwm1_enable
  • 控制风扇转速为 100% (255: 风扇转速,可选 0~255)

    echo 255 | sudo tee /sys/devices/platform/cooling_fan/hwmon/hwmon0/pwm1
    # sudo echo 255 > /sys/devices/platform/cooling_fan/hwmon/hwmon0/pwm1
  • 控制风扇转速为 50% (255: 风扇转速,可选 0~255)

    echo 128 | sudo tee /sys/devices/platform/cooling_fan/hwmon/hwmon0/pwm1
    # sudo echo 128 > /sys/devices/platform/cooling_fan/hwmon/hwmon0/pwm1
  • 控制风扇转速为 0% (255: 风扇转速,可选 0~255)

    echo 0 | sudo tee /sys/devices/platform/cooling_fan/hwmon/hwmon0/pwm1
    # sudo echo 0 > /sys/devices/platform/cooling_fan/hwmon/hwmon0/pwm1

初始配置实现

  • PI5 风扇默认是温度控制 50 度才开始转,如果想要控制其他温度就可以转,在配置中添加指定内容即可

  • 进入 config.txt 文件

    sudo nano /boot/firmware/config.txt
  • 在最下方添加以下指令(【fan_temp0/1/2/3:表示温度(36000表示36℃)】、【fan_temp0/1/2/3_hyst:表示迟滞温度】、【fan_temp0/1/2/3_speed:表示对应的转速(值最大255)】)

    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 关键说明

  • 查看是否存在风扇设备(有日志输出即存在设备)

    ls /sys/devices/platform/cooling_fan/hwmon/hwmon0
  • 打印当前风扇转速

    cat /sys/devices/platform/cooling_fan/hwmon/hwmon0/fan1_input

恢复自动温控

  • 注意相关说明,FAN 关键说明

  • 查看是否存在风扇设备(有日志输出即存在设备)

    ls /sys/devices/platform/cooling_fan/hwmon/hwmon0
  • 切为自动温控

    echo 2 | sudo tee /sys/devices/platform/cooling_fan/hwmon/hwmon0/pwm1_enable
    # sudo echo 2 > /sys/devices/platform/cooling_fan/hwmon/hwmon0/pwm1_enable


RTC

本节介绍在树莓派上如何使用 RTC 功能,为后续项目开发奠定基础。

信息

若要使用完整 RTC 功能,请连接 RTC 电池

RTC 关键说明

  • 在树莓派中 RTC 设备为 /dev/rtc0

  • 在 RTC 设备有连接并且工作正常时,若树莓派在网络连接后自动网络对时,那么 RTC 时间会在自动网络对时后更新时间

  • 新版本默认没有 hwclock 安装相关指令,请安装相关工具

    sudo apt install -y util-linux-extra

RTC 操作

  • 以下使用 hwclock 工具进行测试

获取 RTC 时间

  • 若运行 hwclock 失败,查看 RTC 关键说明 执行安装指令

  • 查看 RTC 时间

    sudo hwclock -r
  • 读取指定 RTC 设备的时间 (-f:后跟选择的设备,/dev/rtc0:指定操作的 RTC 设备)

    sudo hwclock -f /dev/rtc0 -r

设置 RTC 时间

  • 若运行 hwclock 失败,查看 RTC 关键说明执行安装指令

  • 设置 RTC 时钟时间:

    sudo hwclock --set --date="3/7/2024 16:55:05"

同步 RTC 时钟

  • 若运行 hwclock 失败,查看 RTC 关键说明 执行安装指令

  • 将 RTC 时间和当前系统时间同步(将 RTC 时间修改为当前系统时间)

    sudo hwclock -w
  • 将系统时间和当前 RTC 时间同步(将系统时间修改为当前 RTC 时间)

    sudo hwclock -s

定时关机

  • 使用 shutdown 命令让系统在指定时间后自动关机。

  • 注意

  • 10 分钟后关机

    sudo shutdown -h +10
  • 在 23:30 自动关机(注意,此操作前请确认当前时间是否正常,是否需要重新对时)

    sudo shutdown -h 23:30

定时开机-低功耗唤醒

注意

要实现此功能,必须连接 RTC 电池,以保证在外部掉电的情况下 RTC 仍能正常工作。

  • 进入 EEPROM 配置项

    sudo -E rpi-eeprom-config --edit
  • 在配置文件末尾添加以下内容,以启用定时唤醒功能

    POWER_OFF_ON_HALT=1
    WAKE_ON_GPIO=0
  • 修改完成后,重启树莓派使配置生效

    sudo reboot
  • 可以使用以下方法测试功能(效果:配置完成后,将系统关机,10 分钟后内部 RTC 将自动唤醒并重新启动设备。)

    • 设置从当前时刻开始 600 秒(10 分钟)后 唤醒

      echo +600 | sudo tee /sys/class/rtc/rtc0/wakealarm
    • 执行关机,等待到指定时间自动开机

      sudo halt
      # 或者 sudo poweroff

RTC 电池充电

注意

仅在连接支持充电的 RTC 电池时才可执行此操作

  • 进入 config.txt 文件

    sudo nano /boot/firmware/config.txt
  • 在 config.txt 中添加充电配置(其中 3000000 表示最大电压,充电充到 3V 就会关闭充电,电压低于 3V 会启动涓流充电)

    dtparam=rtc_bbat_vchg=3000000


AUDIO

本节介绍在树莓派上如何使用 USB 转音频功能,为后续项目开发奠定基础。

AUDIO 操作

查看音频设备

  • 查看当前识别到的音频播放设备

    aplay -l
  • 查看当前识别到的音频录制设备

    arecord -l



音频录制

  • 录制一段 2 秒的音频,并以 test.wav 文件形式保存到当前目录(使用对应的设备,这里识别到的音频设备是第 2 号硬件声卡)

    sudo arecord -D hw:2,0 -f S32_LE -r 16000 -c 2 test.wav
  • 录制结束后查看生成的文件

    ls

音频播放

  • 播放 test.wav 文件的音频(使用对应的设备,这里识别到的音频设备是第 2 号硬件声卡),请保证当前目录存在 test.wav 文件,若没有可以执行上面的音频录制生成

    sudo aplay -Dhw:2 test.wav
  • 此时喇叭或耳机会播放出对应音频


音频输入输出测试

  • 录播透传(通过耳机或者喇叭会听到麦克风采集到的声音)

  • 注意:喇叭不能太靠近麦克风,否则会导致共振产生啸叫

    sudo arecord -f cd -Dhw:2 | aplay -Dhw:2
    • arecord -f cd Dhw:2 :指定使用第 2 号硬件声卡进行录制,录音格式设为 CD 标准
    • aplay -Dhw:2 :把音频输出到第 2 号硬件声卡


RS485/RS232

本节介绍在树莓派上如何使用 RS485/RS232 接口功能,为后续项目开发奠定基础。

启用接口配置

  • 启用 RS485/RS232 接口(默认为禁用用状态)

  • 进入 config.txt 文件

    sudo nano /boot/firmware/config.txt
  • 若想使用 RS485/RS232,则添加以下指令(以下对应 4 个通信接口)


    # 对应 CH0
    dtoverlay=uart2-pi5
    # 对应 CH1
    dtoverlay=uart3-pi5
    # 对应 CH2
    dtoverlay=uart4-pi5
    # 对应 CH3
    dtoverlay=uart0-pi5
  • 同时启用总共 4 个通道的 RS485/RS232

    # 同时启用 CH0 ~ CH3,板上总共 4 个通道的 RS485/RS232
    dtoverlay=uart2-pi5
    dtoverlay=uart3-pi5
    dtoverlay=uart4-pi5
    dtoverlay=uart0-pi5
  • 修改之后重启树莓派,就可以正常使用程序驱动 RS485/RS232

    sudo reboot


CAN

本节介绍在树莓派上如何使用 CAN 接口功能,为后续项目开发奠定基础。

启用接口配置

  • 启用 CAN 接口(默认为禁用用状态)

  • 进入 config.txt 文件

    sudo nano /boot/firmware/config.txt
  • 若想使用 CAN,则添加以下指令

    dtoverlay=spi1-1cs
    dtoverlay=mcp2515,spi1-0,oscillator=16000000,interrupt=17
  • 修改之后重启树莓派,就可以正常使用程序驱动 CAN

    sudo reboot
  • 重启后使用以下指令查看相关端口,可以看到有一个 can 端口

    ifconfig
    • 若 can 端口为 DOWN 状态,则需要 UP 一下设备(这里识别出来为 can0,故指令中使用 can0,最后的 500000 参数为 CAN 总线波特率,单位是 bit/s。)

      sudo ip link set can0 up type can bitrate 500000
  • 在 SPI 设备中也可以查询到相关设备

    dmesg | grep spi



使用

  • 安装工具

    sudo apt update
    sudo apt-get install can-utils
  • 使用 cansend 发送数据(发送 0x11 0x22 0x33 0x44,这里硬件识别出来为 can0,故指令中使用 can0)

    cansend can0 000#11.22.33.44


  • 使用 candump 监听 CAN 数据帧(这里识别出来为 can0,故指令中使用 can0)

    candump can0



4G/5G

本节介绍在树莓派上如何使用 M.2 B KEY 接口功能,为后续项目开发奠定基础。

危险
  • 测试使用 SIM7600,如果使用其他模组参考对应 4G/5G 模组的 WIKI
  • 板子本身不支持 4G/5G,需要通过 M.2 B KEY 接口来接入模组,M.2 B KEY 只有 USB2.0 通道,不支持 PCIE 设备
注意
  • 如果需要关闭4G/5G 模组,可以使用 GPIO6 (BCM编码 6) 控制,GPIO6 输出高电平关闭模组,GPIO6 输出低电平开启模组
  • 关闭或者开启模需要一定时间(大约30秒)

异常情况

没有新增ttyUSB设备

  • 在终端执行以下指令加载 USB 设备描述符

    sudo modprobe option
    sudo sh -c 'echo "1e0e 9011" > /sys/bus/usb-serial/drivers/option1/new_id'
    sudo sh -c 'echo "1e0e 9018" > /sys/bus/usb-serial/drivers/option1/new_id'
    sudo sh -c 'echo "1e0e 901E" > /sys/bus/usb-serial/drivers/option1/new_id'

搭建AT指令配置环境

  • 安装文本的串口通信工具 minicom

    sudo apt-get install minicom
  • 连接 4G/5G 模块端口(这里使用连接模块时新增的 ttyUSB2,根据实际情况选择端口)

    sudo minicom -D /dev/ttyUSB2
  • 下面AT指令4G/5G模组指令通用

    命令说明返回值
    AT测试指令OK
    ATEATE1设置回显
    ATE0关闭回显
    OK
    AT+CGMI查询模组制造商OK
    AT+CGMM查询模组型号OK
    AT+CGSN查询产品序列号OK
    AT+CSUB查询模块版本以及芯片OK
    AT+CGMR查询固件版本序列号OK
    AT+IPREX设置模块硬件串口波特率 +IPREX:OK
    AT+CRESET复位模块OK
    AT+CSQ网络信号质量查询,返回信号值 +CSQ: 17,99OK
    AT+CPIN?查询SIM卡状态,返回READY,表示SIM卡能正常识别+CPIN: READY
    AT+COPS?查询当前运营商,正常联网后会返回运营商信息 +COPS:OK
    AT+CREG?查询网络注册状态 +CREG:OK
    AT+CPSI?查询UE系统信息
    AT+CNMP网络模式选择命令:
    2:Automatic
    13:GSM only
    38:LTE only
    48 : Any modes but LTE
    ... ....
    OK

ifconfig查询设备失败

  • 点击此处搭建 AT 指令配置环境

  • 对比新增的 ttyUSB 接口(若新增的接口为 ttyUSB0~ttyUSB4),若没有新增 ttyUSB 设备,点击此处配置

  • 使用新增的 ttyUSB 接口进行配置修改(这里使用新增的 ttyUSB2)

    sudo minicom -D /dev/ttyUSB2
  • 输入以下指令点击回车,模块会自动重启以更新设置(根据实际模块要求进行设置,每个模块支持的拨号方式不同,以下使用的是高通的 RNDIS 拨号)

  • 此指令只需要设置一次,下次上电会默认在这个模式下(1E0E:为厂商ID 9011:根据实际模块要求)

    AT+CUSBCFG=USBID,1E0E,9011


  • 重新扫描设备

    ifconfig

4g-5g使用

  • 将 4G/5G 模组 和 SIM 卡接入设备后再上电

  • 使用 ifconfig 可以扫描到 usb0(USB网卡,具体看新增的是哪个设备,不一定都是 usb0), 若 ifconfig 未查询到设备,跳转查看

    ifconfig


  • 若正常连接 SIM 卡,NET 指示灯正常闪烁,但仍然没有 IP,请确认 SIM 卡正常

  • SIM 卡正常的情况下仍无法识别到 IP,则在终端执行以下指令更新 IP

    sudo dhclient -v usb0
    sudo apt-get install udhcpc
    sudo udhcpc -i usb0
    sudo route add -net 0.0.0.0 usb0
  • 测试通过无线网卡 ping 百度能否正常联网,注意必须要连接天线

    ping -I usb0 www.baidu.com # 这里连接 4G/5G 模块新增的端口为 usb0,具体指令根据实际情况调整
  • 如果你使用物联网卡,比如移动物联网卡,成功注册网络;但是拨号上网失败,无法ping通,可以尝试用以下AT指令的其中一条选择最优频段(点击此处搭建 AT 指令配置环境

    AT+CNBP=0x0002000000400183,0x000001E000000000,0x0000000000000021
    AT+CNBP=0x0002000000400180,0x480000000000000000000000000000000000000000000042000001E200000095,0x0000000000000021


组装指南

开始组装前,请检查配件清单以确保所有配件齐全。


相关资料

1. 硬件资料

2. 技术手册


技术支持

周一-周五(9:30-6:30)周六(9:30-5:30)

手机:13434470212

邮箱:services04@spotpear.cn

QQ:202004841