我是专门为树莓派计算模块4代的设计2.8 寸 CM4 触摸屏扩展板,CM4-DISP-BASE-2.8A是一款可以搭配树莓派 Compute Module 4 使用的底板,使用 5V/ 2.5A USB Type C接口供电,可直接接入 CM4 核心板,搭载了 2.8 英寸 IPS 显示屏,可满足 CM4 各版本的运行,且支持摄像头和视频输出。
1:显示不是HDMI接口,而是DPI接口,
2:模块工作对于电源要求比较高,建议使用5V/4A 或者更加高功率的电源
CM4-DISP-BASE-2.8A
Compute_Module 4 核心板
标号 | 名称 | 说明 | |
1 | CM4 连接器 | 适用于 Compute Module 4 的所有版本 | |
2 | CAM 接口 | 22PIN MIPI CSI 摄像头接口 | |
3 | 供电/烧录接口 | 5V/2.5A 供电,也可以作为 eMMC 烧录接口 | |
4 | USB 2.0 接口 | USB 2.0 接口,支持各种 USB 设备插入 | |
5 | HDMI1 接口 | Micro HDMI 接口,支持 4K 30fps 输出 | |
6 | BOOT | ON:CM4 USB Type C 开机引导 OFF: eMMC或者SD 卡开机引导 | |
7 | 接口扩展 | 包含千兆网口、PCIE、USB等接口 |
标号 | 名称 | 说明 |
1 | USB 2.0 接口 | 3路USB 2.0 接口,支持各种 USB 设备插入 |
2 | M.2 M KEY接口 | 适用于NVIE固态硬盘,或者支持 PCIE M.2 接口的通信模块 |
3 | 千兆网口 | RJ45 千兆网口,支持 10 / 100 / 1000M 网络接入 |
4 | M.2 LED | M.2 指示接口工作状态 |
5 | 接口接入 | 扩展接口接入 |
禁止带电时拔插任何设备
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的)。
dtoverlay=vc4-kms-v3d
dtoverlay=vc4-kms-DPI-28inch
dtoverlay=waveshare-28dpi-3b-4b
dtoverlay=waveshare-28dpi-3b
dtoverlay=waveshare-28dpi-4b
wget https://www.waveshare.net/w/upload/b/b5/28DPI-DTBO.zip
unzip -o 28DPI-DTBO.zip -d ./28DPI-DTBO
cd 28DPI-DTBO/28DPI-DTBO/
sudo cp vc4-kms-DPI-28inch.dtbo /boot/overlays/
sudo cp waveshare-28dpi-* /boot/overlays/
注释dtoverlay=vc4-fkms-V3D。
添加如下:
gpio=0-9=a2
gpio=12-17=a2
gpio=20-25=a2
dtoverlay=dpi24
enable_dpi_lcd=1
display_default_lcd=1
extra_transpose_buffer=2
dpi_group=2
dpi_mode=87
dpi_output_format=0x7F016
hdmi_timings=480 0 26 16 10 640 0 25 10 15 0 0 0 60 0 32000000 1
dtoverlay=waveshare-28dpi-3b-4b
dtoverlay=waveshare-28dpi-3b
dtoverlay=waveshare-28dpi-4b
先检查使用的系统是否有加载KMS或FKMS驱动。
查看方法:在/boot/config.txt中,看对应的主板是否有打开了dtoverlay=vc4-kms-v3d或dtoverlay=vc4-fkms-v3d。
使用以下命令进行显示旋转:
sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
#在autostart文件末端输入对应显示旋转角度的指令,重启后生效
#0: 旋转0度; 1:旋转270度;2: 旋转180度; 3: 旋转90度
xrandr -o 1
使用以下命令进行显示旋转:
sudo nano /boot/config.txt
#在config.txt文件末端输入对应显示旋转角度的指令,重启后生效
#0: 旋转0度; 1:旋转90度;2: 旋转180度; 3: 旋转270度
display_rotate=3
在进行显示旋转后,由于触摸并没有随着显示角度做出更改,导致触摸位置不对。所以需要对触摸做出修改。
1. 安装libinput
sudo apt-get install xserver-xorg-input-libinput
sudo apt install xserver-xorg-input-synaptics
2. 在/etc/X11/下创建xorg.conf.d目录 (如果该目录已存在,这直接进行第3步)
sudo mkdir /etc/X11/xorg.conf.d
3. 复制40-libinput-conf 文件到刚刚创建的目录下
sudo cp /usr/share/X11/xorg.conf.d/40-libinput.conf /etc/X11/xorg.conf.d/
4. 编辑该文件
sudo nano /etc/X11/xorg.conf.d/40-libinput.conf
找到 touchscreen的部分,在里面添加以下语句,然后保存即可
Option "CalibrationMatrix" "0 1 0 -1 0 1 0 0 1"
sudo reboot
完成以上步骤即可进行90度旋转。
注:
90 度旋转: Option "CalibrationMatrix" "0 1 0 -1 0 1 0 0 1"
180度旋转: Option "CalibrationMatrix" "-1 0 1 0 -1 1 0 0 1"
270度旋转: Option "CalibrationMatrix" "0 -1 1 1 0 0 0 0 1"
M.2 接口类型为M KEY, 只支持PCIE通道的设备(包括NVME固态等等),不支持SATA硬盘。
支持部分转接卡,走PCIE通道, 部分设备树莓派官方镜像无法驱动,需要重新编译内核。
执行如下:
wget https://www.waveshare.net/w/upload/a/a2/Dts-2.8A.zip
unzip -o Dts-2.8A.zip -d ./Dts-2.8A
sudo chmod 777 -R Dts-2.8A
cd Dts-2.8A/
sudo dtc -I dts -O dtb -o /boot/dt-blob.bin dt-blob-cm4-singlecam-dpi28.dts
注:在2021年12月2日,树莓派的Raspberry Pi OS分成了两个分支,分别是Buster分支和Bullseye分支。
其中Buster分支是老系统的延续,更为稳定。Bullseye分支则添加了一些新的功能,使用了开源的库和新的接口。
摄像头需要运行raspi-config,选择Interfacing Options->Camera->Yes->Finish-Yes,reboot系统,打开enable camera,然后重启即可保存修改。
如果你使用的Buster分支的系统,镜像无需任何改何修改即可正常使用。 摄像头画面:
sudo raspivid -t 0 -cs 0
#检查摄像头是否被检测到
libcamera-hello --list-cameras
#打开的摄像头
libcamera-hello --camera 0
#拍摄照片
libcamera-jpeg -o test.jpg