CM4-DISP-BASE-5A教程

资料


官方手册

CM4核心板数据手册

原理图

3D图

程序

软件


说明

产品概述

我是树莓派CM4套件5寸触摸屏一体机 PoE管脚千兆网口支持4K输出,板载四路USB2.0,5寸触摸屏等等,一体机套件方便用户使用。

使用注意事项

1:禁止带电时拔插除USB和HDMI之外的任何设备
2:如果需要更换风扇,请确认风扇电压再上电。
3:USB SLAVE 接口烧录镜像,不可以做为OTG接口。
4:在正常使用时,需要为CM4 至少提供5V 2.5A 的供电。否则可能出现自动关机,降频等等问题。
5:板载默认4 路 USB 2.0 接口。
6:支持POE管脚,如果需要POE功能需要额外的POE HAT。
7:屏幕需要添加驱动才可以工作。

产品尺寸

CM4-DISP-BASE-5A

板载资源


标号名称说明
1供电/烧录接口5V/2.5A 供电,也可以作为 eMMC 烧录接口
2CM4 状态指示灯PWR:树莓派电源指示灯
ACT:树莓派工作状态指示灯
3TF CARD 卡接口用于接入带系统的TF CARD 卡,仅用于 Lite 版本
4HDMI0 接口HDMI 接口,支持4K 30fps 输出
5USB 2.0 接口4 路 USB 2.0 接口,支持各种 USB 设备插入
6千兆网口RJ45 千兆网口,支持 10 / 100 / 1000M 网络接入
7CAM 接口双路 MIPI CSI 摄像头接口
8CM4 连接器适用于 Compute Module 4 的所有版本
9BOOT 开关按钮ON:Compute Module 4 开机引导转移到 USB Type-C 接口上
OFF:Compute Module 4 开机引导为 eMMC 或者 Micro SD 卡
10FAN 接口接入散热风扇,支持调速和测速,仅支持5V风扇
11RTC 电池连接座可接入 CR1220 纽扣电池
12M.2 接口适用于NVIE固态硬盘,或者支持 PCIE M.2 M KEY 接口的通信模块
1340PIN GPIO 接口方便连接各种HAT模块
14系统功能WF-DIS:WIFI禁用
BT-DIS:蓝牙禁用
WP-DIS:引导固件写保护
15FAN 供电选择可选择 5V (默认) 或 12V 电压驱动风扇
16RTC/FAN 的 I2C 总线选择SDA0/SCL0:I2C-10 和 CSI/DSI 共用(默认)
GPIO3/2:I2C-1 和 40PIN 共用
17RTC 中断管脚切换GL-EN:RTC 触发中断 CM4 断电
PI-RUN:RTC 触发中断 CM4 重启
D16:RTC 触发中断 D16 管脚 (默认)
18IO-VREF 选择CM4 IO 逻辑电压切换 3.3V (默认) 或者 1.8V
19PoE管脚支持PoE HAT接入



注意事项

禁止带电时拔插任何设备

镜像烧录

EMMC版本点击这里
LITE版本点击这里


USB2.0

USB接口在CM4上默认是被禁用的,以节省电源。如果需要启动,你需要在config.txt文件中添加以下内容:

dtoverlay=dwc2,dr_mode=host

重启之后即可

如果使用最新的树莓派OS(2021年10月30号之后的镜像)USB2.0是默认是OTG模式,CM4会报错:

config failed, hub doesn't have any ports! (err -19)

不过USB还是可以使用的,如果想移除这个错误,在config.txt的[cm4]中移除otg_mode=1,并且添加dtoverlay=dwc2,dr_mode=host(不添加是无法识别USB的)。



屏幕和摄像头开启

使用旧版本(buster)系统加载配置文件重启即可识别,新版本(bullseye)系统需要额外添加修改文件

加载配置文件

使用摄像头和DSI的时候会占用I2C-10、I2C-11、I2C-0 三个I2C设备

执行如下:

wget https://www.waveshare.net/w/upload/7/75/CM4_dt_blob_Source.zip
unzip -o  CM4_dt_blob_Source.zip -d ./CM4_dt_blob_Source
sudo chmod 777 -R CM4_dt_blob_Source
cd CM4_dt_blob_Source/
sudo  dtc -I dts -O dtb -o /boot/dt-blob.bin dt-blob-disp0-double_cam.dts
#执行完毕 关闭电源 重启CM4

旧版本(Buster)

注:在2021年12月2日,树莓派的Raspberry Pi OS分成了两个分支,分别是Buster分支和Bullseye分支。

其中Buster分支是老系统的延续,更为稳定。Bullseye分支则添加了一些新的功能,使用了开源的库和新的接口。

如果你使用的Buster分支的系统
摄像头需要运行raspi-config,选择Interfacing Options->Camera->Yes->Finish-Yes,reboot系统,打开enable camera,然后重启即可保存修改。
加载上面的的bin文件重启之后即可直接输出图像
查看接入的第一个摄像头画面:

sudo raspivid -t 0 -cs 0

查看接入的第二个摄像头画面:

sudo raspivid -t 0 -cs 1



新版本(Bullseye)

如果使用的是Bullseye分支的系统,参考如下

显示

在config.txt文件中注释以下语句(config文件位于TF卡根目录,即/boot中):

#camera_auto_detect=1
#dtoverlay=vc4-kms-v3d

在[all]下方添加以下语句:

dtoverlay=vc4-fkms-v3d


保存后重启树莓派即可

sudo reboot

摄像头

libcamera-hello -t 0
或者
libcamera-hello

#默认带有的摄像头型号为ov5647,如果需要修改为其他摄像头,自行查询摄像头型号
#添加
dtoverlay=ov5647,cam1
dtoverlay=ov5647,cam0

#其中ov5647是摄像头传感器型号,还有其他传感器
dtoverlay=ov5647,cam0
dtoverlay=imx219,cam0
dtoverlay=ov9281,cam0
dtoverlay=imx477,cam0

#然后重启
reboot

#其他部分指令:
#检查摄像头是否被检测到
libcamera-hello --list-cameras

#打开的摄像头
libcamera-hello  --camera 0

#拍摄照片
libcamera-jpeg -o test.jpg
#可以添加 --camera 来指定摄像头

更多指令点击我
参考树莓派手册

RTC FAN

  • 注意事项:请在接通扩展板电源前接上风扇再完成测试,请不要在扩展板已通电即风扇控制芯片已经通电之后再接上风扇,否则会烧掉芯片!
  • 注意事项:连接前请确认风扇电压和实际上连接的风扇供电

注意 使用RTC禁止使用DSI和CSI
默认使用I2C-10
建议修改至I2C-1

RTC (PCF85063a) ,I2C 地址是 0x51(7位地址)
FAN ( EMC2301 ) ,I2C 地址是 0x2f (7位地址)

如果需要添加到你程序中而不是内核中,可以参考C和Python例程参考 点这里

RTC

sudo nano /boot/config.txt
#在最后添加
dtparam=i2c_vc=on
dtoverlay=i2c-rtc,pcf85063a,i2c_csi_dsi
#dtoverlay=i2c-rtc,pcf85063a
#在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
此方法为第三方发布,出现任何问题,概不负责!
此方法是只能在I2C-10 上使用

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摄氏度最高速