CM4-IO-WIRELESS-BASE
| ||||||||||||||||||||||
| ||||||||||||||||||||||
说明
产品概述
基于树莓派 CM4 设计的工业扩展模块,板载了千兆以太网、HDMI、USB 和 GPIO 等常用接口,支持通过 M.2 或 Mini-PCIe 外接 4G / 5G / LoRa 等无线通信模块,还扩展了 RS485、CAN 和 RTC 等工业接口资源。工业导轨外壳设计,非常适用于构建物联网网关、4G / 5G 路由器,物联网数据采集,甚至将其用作工业自动化和控制系统中的可编程逻辑控制器等等。
使用注意事项
1:禁止带电时拔插除USB和HDMI之外的任何设备
2:在连接前确认风扇电压,支持5V 和 12V 默认连接12V,切换请修改FAN_VCC的电阻
3:为了保证CM4供电正常,在使用Type C 接口烧录镜像时,请不要连接其他设备。
4:模块需要为其提供5V 2.5A /12V 1A或者更加高功率的供电。否则可能出现自动关机,降频等等问题。
5:12V DC 接口 和 5V Type c 接口不要同时供电
6:USB2.0 默认是关闭的,如需打开需要在config.txt中添加 dtoverlay=dwc2,dr_mode=host
产品认证
产品已过CE认证
产品已过RoHS3.0 认证
产品尺寸
CM4-IO-WIRELESS-BASE
Compute_Module 4 核心板
板载资源
标号 | 名称 | 说明 | |
1 | CM4 连接器 | 适用于 Compute Module 4 的所有版本 | |
2 | HDMI 接口 | HDMI 接口,支持 4K 30fps 输出 | |
3 | USB 2.0 接口 | 3 路 2.0 接口,支持各种 USB 设备插入 | |
4 | RJ45 千兆网口 | RJ45 千兆网口,支持 10/100/1000M 网络接入 | |
5 | DC 供电接口 | 7 ~ 36V DC 供电接口 | |
6 | CM4 状态指示灯 | 红灯(PWR):树莓派电源指示灯 绿灯(ACT):树莓派工作状态指示灯 | |
7 | 4G/5G 模组状态灯 | 红灯(STA):模组使能指示灯 绿灯(NET):模组运行状态指示灯 | |
8 | PWR & USB 接口 | 5V DC 供电接口或者 USB 烧录接口 | |
9 | M.2 B KEY | 支持接入 4G/5G 或者其他 USB 通道的通信模块 | |
10 | Nano-SIM 卡座 | 可接入标准 Nano-SIM 卡,用于 4G/3G/2G 上网 | |
11 | BOOT 开关按钮 | ON:Compute Module 4 开机引导转移到 USB Type-C 接口上 OFF:Compute Module 4 开机引导为 eMMC 或者 Micro SD 卡 | |
12 | DC 供电接口 | 7 ~ 36V DC 供电接口 | |
13 | 双路非隔离 RS485 接口 | 双路 RS485 接口,提供 600W 防雷、浪涌和 15KV 静电保护 (预留 120R 可选平衡电阻跳线帽) | |
14 | 非隔离 CAN 接口 | 防静电和瞬态尖峰电压 (预留 120R 可选平衡电阻跳线帽) | |
15 | Micro SD 卡接口 | 用于接入带系统的 Micro SD 卡,以启动 Compute Module 4 Lite | |
16 | FAN 供电选择 | 可选择 5V 或 12V 电压驱动风扇 | |
17 | CAM 接口 | MIPI CSI 摄像头接口 | |
18 | RTC 电池连接座 | 可接入 CR1220 纽扣电池 | |
19 | M.2 VCC 供电选择 | 选择 3.3V 或者 4.2V 供电 | |
RTC 中断管脚切换 | PI-RUN: RTC 触发中断 CM4 重启 GN-EN: RTC 触发中断 CM4 断电 D4: RTC 触发中断 D4 管脚 | ||
21 | IO-VREF 选择 | CM4 IO 逻辑电压切换 3.3V 或者 1.8V | |
22 | FAN 供电选择 | 可选择 12V (默认) 或 5V 电压驱动风扇 | |
23 | 系统功能切换 | BT_DIS: 蓝牙禁用,仅供带天线的 CM4 版本使用 WiFi_DIS: WiFi 禁用,仅供带天线的 CM4 版本使用 WP_DIS: 启动方式切换,仅供不使用 EMMC 启动或 SD 启动的情况下使用 | |
24 | RTC/FAN I2C 总线选择 | SDA0/SCL0: I2C-10 和 CSI/DSI 共用 GPIO3/2: I2C-1 和 40PIN 共用 | |
25 | 部分 GPIO 接口 | 包含一组 I2C 和 2 个 GPIO 以及电源 |
相关链接
注意事项
禁止带电时拔插任何设备
镜像烧录
RS485
默认关闭,如需打开需要在config.txt中添加内容:
sudo nano /boot/config.txt
dtoverlay=uart3 dtoverlay=uart5
设备号分别是
/dev/ttyAMA1 /dev/ttyAMA2
CAN
默认关闭,如需打开需要在config.txt中添加内容:
#打开编辑config.txt sudo nano /boot/config.txt #添加以下内容 dtparam=spi=on dtoverlay=mcp2515-can0,oscillator=16000000,interrupt=25 #重启 reboot
重启之后执行:
dmesg | grep spi0
sudo ip link set can0 up type can bitrate 1000000 sudo ifconfig can0 txqueuelen 65536 ifconfig
测试
安装can-utils:
sudo apt-get install can-utils
接收数据
candump can0
发送数据
cansend can0 000#11.22.33.44 #其中11.22.33.44 是数据 #如果需要发送其他数据可以使用继续添加例如 # cansend can0 000#11.22.33.04.70 #不可以使用英文和中文,两位一码格式添加
M.2 B KEY
板载M.2 B KEY 内部带有PCIE、USB2.0、GPIO、I2C、SPI接口
默认的只能连接 :
SIM7600G-H-M.2
SIM8202G-M2
SIM8200EA-M2
等M.2 B KEY 接口的模块
支持M.2 B KEY 接口的 NVME 2242 的SSD
附送的Mini-PCIe 转接板 接入可以支持Mini PCIe接口的设备(只是接口是Mini PCIe接口,并不走PCIe通道,不支持PCIe设备),支持:
SX1302 868M LoRaWAN Gateway
SIM7600G-H-PCIE
等Mini PCIe接口的模块
4G/5G
板子本身不支持4G/5G,需要通过M.2 B KEY接口来接入模组,M.2 B KEY 只有USB2.0 通道
4G/5G 模组连接,然后在插入SIM卡
如果需要关闭4G/5G 模组,可以使用GPIO6 (BCM编码 6)控制,GPIO6输出高电平关闭模组,GPIO6输出低电平开启模组
关闭或者开启模需要一定时间(大约30秒),如果在开启前没有连接天线或者没有接入SIM卡
如果模组不能开机,可能是GPIO6 引脚被拉高了,请用以下指令拉低GPIO6引脚开机:
echo Exporting pin 6 echo 6 > /sys/class/gpio/export echo Setting direction to out. echo out > /sys/class/gpio/gpio6/direction echo Setting pin 0
M.2 4G/5G 网卡
M.2 状态灯状态描述:
STA | NET | 状态 |
---|---|---|
长亮 | 熄灭 | 关机 或者 正在开机 |
长亮 | 长亮 | 正在查找网络 |
长亮 | 闪烁 | 已联网,工作正常 |
熄灭 | 闪烁/长亮 | 正在关机 |
在配置前,请确认模块已经开机
5G 参考 [5G配置]
4G配置
sudo apt-get install minicom sudo minicom -D /dev/ttyUSB2 #输入以下指令: AT+CUSBPIDSWITCH=9011,1,1 #返回OK 即可 #然后等待网卡重启 #此指令只需要设置一次,下次上电会默认在这个模式下 #如果无法获取USB0网卡执行: sudo dhclient -v usb0
RNDIS拨号上网请参考: RNDIS拨号上网
正常执行上面之后会识别到USB0网卡(如果你没有连接其他USB网卡)
如果你使用物联网卡,比如移动物联网卡,成功注册网络;但是拨号上网失败,无法ping通,可以尝试用以下AT指令的其中一条选择最优频段:
AT+CNBP=0x0002000000400183,0x000001E000000000,0x0000000000000021 AT+CNBP=0x0002000000400180,0x480000000000000000000000000000000000000000000042000001E200000095,0x0000000000000021
AT指令
如果无法连接网络,可以通过指令AT检查状态
sudo apt-get install minicom sudo minicom -D /dev/ttyUSB2
常用AT指令
下面AT指令4G/5G模组指令通用
命令 | 说明 | 返回值 |
---|---|---|
AT | 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 |
更多AT指令参考: AT_Command_V2.00
更多文档参考:SIMCom
LoRaWAN
使用SX1302 868M LoRaWAN Gateway (B)
注意:LoRaWAN 网关模块存在多个频段,注意所在区域是否支持对应频段
使用程序和SX1302 868M LoRaWAN Gateway (B)的默认程序存在差异,例程如下:
sudo wget https://www.waveshare.net/w/upload/9/9e/CM4-IO-WIRELESS-BASE-LoRaWAN.zip unzip -o CM4-IO-WIRELESS-BASE-LoRaWAN.zip -d ./CM4-IO-WIRELESS-BASE-LoRaWAN cd CM4-IO-WIRELESS-BASE-LoRaWAN make clean all make all cp tools/reset_lgw.sh util_chip_id/ cp tools/reset_lgw.sh packet_forwarder/
使用教程参考:点这里
RTC FAN
- 注意事项:请在接通拓展板电源前接上风扇再完成测试,请不要在拓展板已通电即风扇控制芯片已经通电之后再接上风扇,否则会烧掉芯片!
- 注意事项:连接前请确认风扇电压和实际上连接的风扇供电
使用树莓派系统(2021-05-07-raspios-buster-armhf-full )
注意 使用RTC禁止使用DSI和CSI
如果需要同时使用,将I2C切换到I2C1设备上(右边)
切换之后所有程序或者驱动全部需要修改
例程默认使用I2C10(左边)
如果需要简单使用,或者需要添加到你程序中,参考C和Python例程参考 [点这里]
下面是将驱动添加至内核中
RTC
sudo nano /boot/config.txt #在最后添加 dtparam=i2c_vc=on dtoverlay=i2c-rtc,pcf85063a,i2c_csi_dsi #在dtparam=audio=on前面添加# 号 #dtparam=audio=on #保存退出,重启 sudo reboot
Hwclock简单使用
同步系统时钟 -> 硬件时钟
sudo hwclock -w
同步硬件时钟 -> 系统时钟
sudo hwclock -s #需要关闭网络,或者关闭网络对时,负责会被改回去
设置硬件时钟时间:
sudo hwclock --set --date="9/8/2021 16:45:05"
查看硬件时钟
sudo hwclock -r
显示版本信息
sudo hwclock --verbose
风扇
在上电的时候 风扇会转1秒,然后停止2秒,再转,这是正常现象
风扇目前没有官方的配置方法,有一个第三方配置方法:https://github.com/neg2led/cm4io-fan
此方法为第三方发布,不是官方发布,出现任何问题,概不负责!
mkdir -p ~/src cd ~/src git clone https://github.com/neg2led/cm4io-fan.git cd cm4io-fan sudo chmod 777 install.sh sudo ./install.sh #下面是对于config.txt的描述介绍 ############################# Name: cm4io-fan Info: Raspberry Pi Compute Module 4 IO Board fan controller Load: dtoverlay=cm4io-fan,<param>[=<val>] Params: minrpm RPM target for the fan when the SoC is below mintemp (default 3500) maxrpm RPM target for the fan when the SoC is above maxtemp (default 5500) midtemp Temperature (in millicelcius) at which the fan begins to speed up (default 50000) midtemp_hyst Temperature delta (in millicelcius) below mintemp at which the fan will drop to minrpm (default 2000) maxtemp Temperature (in millicelcius) at which the fan will be held at maxrpm (default 70000) maxtemp_hyst Temperature delta (in millicelcius) below maxtemp at which the fan begins to slow down (default 2000) ############################# 或者 直接参考如下: dtoverlay=cm4io-fan,minrpm=500,maxrpm=5000,midtemp=45000,midtemp_hyst=2000,maxtemp=50000,maxtemp_hyst=2000 温度高于45摄氏度开始加速,高于50摄氏度最高速
如果出现无法正常编译,请点击此处
CSI DSI
CSI 和 DSI默认是关闭的,使用摄像头和DSI的时候会占用I2C-10、I2C-11、I2C-0 三个I2C设备
CM4-DUAL-ETH-4G/5G-BASE 的DSI接口是DSI1接口
开机执行如下:
sudo apt-get install p7zip-full wget https://www.waveshare.net/w/upload/4/41/CM4_dt_blob.7z 7z x CM4_dt_blob.7z -O./CM4_dt_blob sudo chmod 777 -R CM4_dt_blob cd CM4_dt_blob/ #如果使用两个摄像头和DSI0 执行 sudo dtc -I dts -O dtb -o /boot/dt-blob.bin dt-blob-disp0-double_cam.dts #如果使用两个摄像头和DSI1 执行 sudo dtc -I dts -O dtb -o /boot/dt-blob.bin dt-blob-disp1-double_cam.dts #在使用任意DSI时,HDMI1没有图像输出,哪怕你没有连接DSI屏幕只要编译的对应的文件,那HDMI1就没有输出了 #如果需要恢复,删除对应的dt-blob.bin 即可: sudo rm -rf /boot/dt-blob.bin #执行完毕 关闭电源 重启CM4
再连接摄像头和DSI屏幕:
1: 确保断电状态下连接
2: 使用CM-DSI-ADAPTER 转接板连接Compute Module 4 PoE Board和DSI屏幕
3: 使用CSI转接线转接板连接Compute Module 4 PoE Board和CSI摄像头
3: 连接电源
4: 等待几秒后屏幕启动
5: 如果无法启动,检查/boot/dt-blob.bin 是否存在,如果存在再次重启即可
6: 摄像头需要运行raspi-config,选择Interfacing Options->Camera->Yes->Finish-Yes,reboot系统,打开enable camera,然后重启即可保存修改。
参考
测试树莓派摄像头 查看接入的第一个摄像头画面:
sudo raspivid -t 0 -cs 0
查看接入的第二个摄像头画面:
sudo raspivid -t 0 -cs 1
资料
官方手册
原理图
3D图
程序
软件
FAQ
a) 检查 /boot/config.txt中是否屏蔽 dtparam -audio - on