



本产品外壳未对该接口开槽,无法从壳体内部引出,仅可在未组装外壳时使用
产品未配套风扇,仅在底板预留风扇接口
当连接耳机时,PH2.0 喇叭接口将会静音,音频信号将从耳机接口输出
产品的数字输入接口支持的最大输入电压为 36V
| 控制引脚 | 功能 | 说明 |
|---|---|---|
| GPIO23 | IN1 | 数字输入通道1 |
| GPIO24 | IN2 | 数字输入通道2 |
产品的数字输出为开漏输出,最大截断电压为 150V,最大电流支持 500mA(导通电阻为 18Ω,过压或过流都将烧毁设备)
| 控制引脚 | 功能 | 说明 |
|---|---|---|
| GPIO27 | OUT1 | 数字输出通道1 |
| GPIO22 | OUT2 | 数字输出通道2 |


| 控制引脚 | 功能 | 说明 |
|---|---|---|
| GPIO7 | 蜂鸣器 | 有源蜂鸣器 |
| 指示灯丝印 | 功能 | 说明 |
|---|---|---|
| STAT | 4G/5G 模组使能指示灯 | 4G/5G 模块接口指示灯 |
| NET | 4G/5G 模组运行状态指示灯 | |
| PWR | 树莓派系统指示灯 | 树莓派系统指示灯 |
| ACT | 树莓派工作状态指示灯 | |
| USER1 | 用户自定义功能指示灯1 | 连接至 GPIO25,低电平有效 |
| USER2 | 用户自定义功能指示灯2 | 连接至 GPIO26,低电平有效 |
本节介绍在树莓派上如何使用 NVMe 硬盘功能,为后续项目开发奠定基础。
注意:在使用此功能前需先启用 PCIe 接口
进入 config.txt 文件
sudo nano /boot/firmware/config.txt
PCIE 默认是 gen2,如果需要启用 PCIE gen3, 则在 config.txt 中添加
dtparam=pciex1_gen=3
修改之后重启树莓派,就可以识别到设备了
sudo reboot
重启后查看 PCIe 识别情况
lspci

若没有启用 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 即可,最后 w 保存退出
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 SSD 引导启动,为后续项目开发奠定基础。
注意:使用 NVMe SSD 引导启动时请不要启用 自动挂载
先使用 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 接口功能,为后续项目开发奠定基础。
注意:若 config.txt 添加了 DSI 配置,不管是否连接了 DSI 屏幕,显示效果都将以 DSI 接口为主信号进行显示(即启用了 DSI 配置,且只连接了 HDMI 接口(若硬件存在 HDMI),此时 HDMI 将不会显示主页,而是以扩展形式显示)
注意:DSI 接口默认为禁用状态,使用前需先配置 config.txt 文件
启用 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 接口功能,为后续项目开发奠定基础。
注意:单个摄像头只能连接 MIPI0
注意:CSI 接口默认为禁用状态,使用前需先配置 config.txt 文件
启用 CSI 接口(默认为禁用用状态)
进入 config.txt 文件
sudo nano /boot/firmware/config.txt
根据使用的摄像头型号在 config.txt 中添加相应配置(以下使用 imx219 驱动的摄像头举例)
| 摄像头驱动型号 | CAM0 设置语句 | CAM1 设置语句 |
|---|---|---|
| OV9281 | dtoverlay=ov9281,cam0 | dtoverlay=ov9281,cam1 |
| IMX290/IMX327 | dtoverlay=imx290,clock-frequency=37125000,cam0 | dtoverlay=imx290,clock-frequency=37125000,cam1 |
| IMX378 | dtoverlay=imx378,cam0 | dtoverlay=imx378,cam1 |
| IMX219 | dtoverlay=imx219,cam0 | dtoverlay=imx219,cam1 |
| IMX477 | dtoverlay=imx477,cam0 | dtoverlay=imx477,cam1 |
| IMX296 | dtoverlay=imx296,cam0 | dtoverlay=imx296,cam1 |
| IMX708 | dtoverlay=imx708,cam0 | dtoverlay=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 接口功能,为后续项目开发奠定基础。
/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 设备为 /dev/rtc0
在 RTC 设备有连接并且工作正常时,若树莓派在网络连接后自动网络对时,那么 RTC 时间会在自动网络对时后更新时间
新版本默认没有 hwclock 安装相关指令,请安装相关工具
sudo apt install -y util-linux-extra
hwclock 工具进行测试若运行 hwclock 失败,查看 RTC 关键说明 执行安装指令
查看 RTC 时间
sudo hwclock -r
读取指定 RTC 设备的时间 (-f:后跟选择的设备,/dev/rtc0:指定操作的 RTC 设备)
sudo hwclock -f /dev/rtc0 -r
若运行 hwclock 失败,查看 RTC 关键说明执行安装指令
设置 RTC 时钟时间:
sudo hwclock --set --date="3/7/2024 16:55:05"
若运行 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 电池时才可执行此操作
进入 config.txt 文件
sudo nano /boot/firmware/config.txt
在 config.txt 中添加充电配置(其中 3000000 表示最大电压,充电充到 3V 就会关闭充电,电压低于 3V 会启动涓流充电)
dtparam=rtc_bbat_vchg=3000000本节介绍在树莓派上如何使用 USB 转音频功能,为后续项目开发奠定基础。
查看当前识别到的音频播放设备
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 接口(默认为禁用用状态)
进入 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 接口(默认为禁用用状态)
进入 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

本节介绍在树莓派上如何使用 M.2 B KEY 接口功能,为后续项目开发奠定基础。
在终端执行以下指令加载 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'
安装文本的串口通信工具 minicom
sudo apt-get install minicom
连接 4G/5G 模块端口(这里使用连接模块时新增的 ttyUSB2,根据实际情况选择端口)
sudo minicom -D /dev/ttyUSB2
下面AT指令4G/5G模组指令通用
| 命令 | 说明 | 返回值 |
|---|---|---|
| AT | 测试指令 | OK |
| ATE | ATE1设置回显 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,99 | OK |
| 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 |
对比新增的 ttyUSB 接口(若新增的接口为 ttyUSB0~ttyUSB4),若没有新增 ttyUSB 设备,点击此处配置
使用新增的 ttyUSB 接口进行配置修改(这里使用新增的 ttyUSB2)
sudo minicom -D /dev/ttyUSB2
输入以下指令点击回车,模块会自动重启以更新设置(根据实际模块要求进行设置,每个模块支持的拨号方式不同,以下使用的是高通的 RNDIS 拨号)
此指令只需要设置一次,下次上电会默认在这个模式下(1E0E:为厂商ID 9011:根据实际模块要求)
AT+CUSBCFG=USBID,1E0E,9011

重新扫描设备
ifconfig
将 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
开始组装前,请检查配件清单以确保所有配件齐全。

周一-周五(9:30-6:30)周六(9:30-5:30)
手机:13434470212
邮箱:services04@spotpear.cn
QQ:202004841
