CM4-ETH-RS485-BASE-B
| |||||||||||||||||||||
| |||||||||||||||||||||
说明
详细参数和功能说明
产品概述
我是 CM4-ETH-RS485-BASE-B,是可以搭配树莓派 Compute Module 4 使用的拓展板,并且支持 7-36V DC 直流供电和 Typc-C 接口的 5V DC 直流供电。板载四路隔离RS485接口、100M+1000M双网口、HDMI接口 、两路CSI接口和两路USB接口等等……
使用注意事项
1:禁止带电时拔插除USB和HDMI之外的任何设备
2:在连接前确认风扇电压,只支持5V
3:Type C 接口可以用作供电也可以用作USB接口烧录镜像(需要使用拨码开关切换)
4:为了保证CM4供电正常,在使用Type C 接口烧录镜像时,请不要连接其他设备。
5:CM4在正常使用时,需要为CM4 提供5V 2A 的供电。否则可能出现自动关机,降频等等问题。
6:USB2.0 默认是关闭的,如需打开需要在config.txt中添加 dtoverlay=dwc2,dr_mode=host
产品尺寸
CM4-ETH-RS485-BASE-B
Compute_Module 4 核心板
板载资源
标号 | 名称 | 说明 |
1 | CM4 连接器 | 适用于 Compute Module 4 的所有版本 |
2 | IO-VREF | 选择 GPIO 的逻辑电压,可选 3.3V (默认) 或者 1.8V |
3 | RTC-I2C:RTC 的 I2C 总线选择 | 可选 SDA0 & SCL0 (默认) 或者是 GPIO2 & GPIO3 |
4 | RTC INT:RTC 中断引脚选择 | D16:RTC 产生中断时使用 GPIO16 接收中断信号 (默认) GL-EN:RTC 产生中断时 CM4 断电 |
5 | SYSTEM:系统功能 | WP-DIS:防止 EEPROM 被改写 BT-DIS:禁用蓝牙功能,仅带天线 CM4 版本有效 |
6 | BOOT 开关 | ON:开机引导为 USB Tpye-C 接口 OFF:开机引导为 eMMC 或者 Micro SD 卡 |
7 | PWR & USB | 当 BOOT 开关为“ON”的时候,可以作为烧录口和供电接口 当 BOOT 开关为“OFF”的时候,仅作为供电接口 |
8 | HDMI0 | HDMI 显示接口,支持 4K 30fps 输出 |
9 | USB | 两路 USB2.0 接口,支持 USB 设备插入 |
10 | ETHERNET0 | CM4 原生千兆 RJ45 网口 |
11 | ETHERNET1 | USB 扩展百兆网口 |
12 | CAM0 & CAM1 | 两路 MIPI CSI 摄像头接口 |
13 | 蜂鸣器 | GPIO22 控制 |
14 | FAN | 四线风扇接口,仅支持 5V 风扇,PWM 调速(GPIO18 控制,没有测速) |
15 | RTC 电池接口 | 可接入 CR1220 纽扣电池 |
16 | RS485 收发指示灯 | TXn:通道 n 的发送信息指示灯 RXn:通道 n 的接收信息指示灯 |
17 | 用户 LED 灯 | USER0:GPIO20 控制 USER1:GPIO26 控制 |
18 | PWR | 树莓派电源指示灯 |
19 | ACT | 树莓派工作状态指示灯 |
20 | DC 7~36V | DC 直流供电接口 |
21 | 供电端子 | DC 直流供电端子,支持 7~36V 宽电压输入 |
22 | RS485 端子 | 四路隔离 RS485 接口,间距 5.08mm |
23 | 跳线帽 | 可选 120R 平衡电阻跳线帽 |
24 | RS485 模式切换 | Full-auto:自动模式,程序操作简单,带载能力较弱 Semi-auto:半自动模式,需要手动切换收发模式,可靠性较高,带载能力强 |
25 | 加密芯片 | ATSHA204 加密芯片,可进行多重加密,保证数据安全可靠 |
26 | Micro SD 卡槽 | 用于接入带系统的 Micro SD 卡,以启动 Compute Module 4 Lite |
使用
简单易上手的使用说明
注意事项
禁止带电时拔插任何设备
镜像烧录
USB 2.0
USB2.0 默认是关闭的,如需打开需要在config.txt中添加 dtoverlay=dwc2,dr_mode=host
RS485
默认关闭,如需打开需要在config.txt中添加内容:
sudo nano /boot/config.txt
dtoverlay=uart0 dtoverlay=uart3 dtoverlay=uart4 dtoverlay=uart5
COM0占用GPIO14/GPIO15(BCM编码14/15),设备号ttyAMA0
COM1占用GPIO4/GPIO5(BCM编码4/5),设备号ttyAMA3
COM2占用GPIO8/GPIO9(BCM编码8/9),设备号ttyAMA4
COM3占用GPIO12/GPIO13(BCM编码12/13),设备号ttyAMA5
老系统:
COM0占用GPIO14/GPIO15(BCM编码14/15),设备号ttyAMA0
COM1占用GPIO4/GPIO5(BCM编码4/5),设备号ttyAMA1
COM2占用GPIO8/GPIO9(BCM编码8/9),设备号ttyAMA2
COM3占用GPIO12/GPIO13(BCM编码12/13),设备号ttyAMA3
如果有开启其他串口,需要注释关闭,例如:
#enable_uart=1
注意:默认为自动模式,全自动切换收发模式;如果需要程序控制收发可以修改背面的0R电阻。
- 模式切换:每个通道由两个0R电阻共同控制
- 半自动模式:0R电阻位于“Semi-auto”一端,此时由用户程序控制收发模式(下图中是半自动模式)
- 自动模式:0R电阻位于“Full-auto”一端,此时根据传输方向自动切换收发模式
RTC
启用 RTC 控制器连接的I2C,需要设置dtparam=i2c_vc=on配置文件。
RTC 在i2c-10 上,地址是 0x51(7位地址)
sudo nano /boot/config.txt #在最后添加 dtparam=i2c_vc=on #在dtparam=audio=on前面添加# 号 #dtparam=audio=on #保存退出,重启 sudo reboot
下载程序
打开树莓派终端,执行如下指令:
sudo apt-get install p7zip-full sudo wget https://www.waveshare.net/w/upload/4/42/PCF85063_code.7z 7z x PCF85063_code.7z -O./ cd PCF85063_code
C语言
执行如下指令,编译并执行测试程序
cd c sudo make clean sudo make -j 8 sudo ./main
Python
进入python程序目录
cd python/example
运行例程,程序支持python2/3
# python2 sudo python main.py # python3 sudo python3 main.py
FAN测试
- 支持PWM调速,没有测速检测功能
- 注意事项:连接前请确认风扇电压和实际上连接的风扇供电
打开树莓派终端,执行如下指令:
wget https://www.waveshare.net/w/upload/d/d1/CM4-ETH-RS485-BASE-B-Example.zip unzip CM4-ETH-RS485-BASE-B-Example.zip -d ./CM4-ETH-RS485-BASE-B-Example cd CM4-ETH-RS485-BASE-B-Example/FAN/
c程序
编译并执行测试程序
cd c sudo make clean sudo make sudo ./main
现象:按提示输入占空比可以改变风扇转速
python
进入python程序目录
cd python
运行例程,程序支持python2/3
# python2 sudo python FAN.py # python3 sudo python3 FAN.py
现象:先按提示输入频率,建议5K,然后循环输入占空比可以改变风扇转速
CSI
注意:以下为CM4通用说明,具体设备有所不同:本模块没有DSI接口,且只有HDMI0。
配置文件
- CSI和DSI默认是关闭的,需要加载对应设备树用于开启,并且使用CSI摄像头与DSI屏幕的时候会占用I2C-10、I2C-11、I2C-0 三个I2C设备
- 输入一下指令:
sudo apt-get install p7zip-full -y 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/ #如果使用两个摄像头和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
新版本系统(bullseye)
配置摄像头
- 执行如下命令进入编辑/boot/config.txt文件
sudo nano /boot/config.txt
- 屏蔽或者删除掉摄像头自动检测语句
- 添加你使用的摄像头的驱动动,这里我以IMX219为例,并且连接上CAM0上,附上适配
型号 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 IMX708 dtoverlay=imx708,cam0 dtoverlay=imx708,cam1 - 如果使用的是树莓派官方摄像头,且只有一个摄像头接入,无需设置config文件,如果不是官方摄像头,请设置dtoverlay语句,不需要加cam后缀
- CM4-NANO-只用到CAM0,所以只需要添加一句 dtoverlay=imx219,cam0 即可
- 快捷键Ctrl+o保存文件,并回车
- 快捷键Ctrl+x退出编辑器
- 重启CM4
sudo reboot
- 输入摄像头检测指令,此时可以看到摄像头已经被检查到了
libcamera-hello --list-cameras
- 显示摄像头画面到桌面
libcamera-hello -t 0
- 拍摄照片
libcamera-jpeg -o test.jpg
- 录制一个10s的视频
libcamera-vid -t 10000 -o test.h264
- 执行如下命令进入树莓派配置
sudo raspi-config
- 选择Interfacing Options并进入
- 选择Camera
- 选择开启摄像头接口
- 系统提示如下
- 回到主界面,选择Finish
- 随后重启系统
- 测试拍照:
raspistill -o image.jpg
- 测试录像:
raspivid -o video.h264 -t 10000
- 其中 -t 10000 表示录制 10 秒,用户各根据自己的需要进行调整。
测试摄像头
其他命令
检查摄像头是否被检测到
libcamera-hello --list-cameras
打开对应的摄像头
libcamera-hello --camera 1 libcamera-hello --camera 0
拍摄照片
libcamera-jpeg -o test.jpg #可以添加 --camera 来指定摄像头
老版本系统(buster)
配置摄像头
测试摄像头
参考:CSI相机
加密
板载加密芯片,默认没有启用
使用请参考数据手册和官方库:https://github.com/MicrochipTech/cryptoauthlib
资料
提供文档、程序、数据手册等全套资料
官方手册
原理图
3D图
程序
软件
相关链接
FAQ
b) 检查/boot/dt-blob.bin 文件是否存在,如果存在无法使用,请删除;