CM4-NANO-A
| ||||||||||||||||||||
| ||||||||||||||||||||
说明
产品概述
我是树莓派计算模块4代的迷你板,CM4-NANO-A 是一款可以搭配树莓派 Compute Module 4 使用的底板,使用 5V/ 2.5A USB Type C接口供电
使用注意事项
- 禁止带电时拔插除USB之外的任何设备
- Type C 接口可以用作供电也可以用作USB SLAVE 接口烧录镜像。
- 为了保证CM4供电正常,在使用Type C 接口烧录镜像时,请不要连接其他设备。
- CM4在正常使用时,需要为CM4 提供5V 2A 的供电。否则可能出现自动关机,降频等等问题。
- 模块没有带任何保护,请勿短路电源。
- USB2.0 默认是关闭的,如需打开需要在config.txt中添加 dtoverlay=dwc2,dr_mode=host
产品尺寸
板载资源
| 标号 | 名称 | 说明 |
| 1 | CM4 连接器 | 适用于 Compute Module 4 的所有版本 |
| 2 | 供电/烧录接口 | 5V/2A 供电,也可以作为 eMMC 烧录接口 |
| 3 | Micro SD 卡接口 | 用于接入带系统的 Micro SD 卡,仅用于 Lite 版本 |
| 4 | CSI 接口 | 单路 MIPI CSI 摄像头接口 |
| 5 | USB 2.0 接口 | USB 2.0 接口,支持各种 USB 设备插入 |
| 6 | 40PIN GPIO 接口 | 方便接入各种 HAT 模块 |
| 7 | PWR 指示灯 | 指示树莓派电源状态 |
| 8 | ACT 指示灯 | 指示树莓派工作状态 |
| 9 | AMS1117-3.3V | 给CSI跟40Pin提供电压 |
| 10 | BOOT | ON:将USB切换至type C接口,上电时进入下载模式(通过rpi boot配置成大容量磁盘)
OFF:将USB切换到TYPE A接口,上电时不会进入下载(将从eMMC或者SD卡启动) |
使用简介
相关链接
注意事项
禁止带电时拔插任何设备
镜像烧录
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的)。

CSI
最新系统(bookworm)
配置摄像头
- 开机直接执行如下命令进入编辑/boot//firmware/config.txt文件
- 添加你使用的摄像头的驱动,这里我以IMX219为例,连接摄像头,附上适配

型号 CAM0设置语句 OV9281 dtoverlay=ov9281,cam0 IMX290/IMX327 dtoverlay=imx290,clock-frequency=37125000,cam0 IMX378 dtoverlay=imx378,cam0 IMX219 dtoverlay=imx219,cam0 IMX477 dtoverlay=imx477,cam0 IMX708 dtoverlay=imx708,cam0 - 快捷键Ctrl+o保存文件,并回车
- 快捷键Ctrl+x退出编辑器
- 重启CM4
sudo reboot
新版本(Bookworm)
DSI屏幕默认是800x480分辨率的屏幕,其他分辨率的屏幕请参考对应的WIKI
使用官方地板 Compute Module 4 IO Board 注意需要连接J6跳线帽
DSI
#在config.txt中添加内容 sudo nano /boot/firmware/config.txt #DSI0 dtoverlay=vc4-kms-dsi-7inch,dsi0 #DSI1 dtoverlay=vc4-kms-dsi-7inch,dsi1
CSI
| 型号 | 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 |
sudo reboot
注意:
1:单口摄像头只能再CAM0上工作,即单独使用CAM1口不行。但单独使用CAM0口可以,连接双摄像头是都可以 2:如果出现识别到设备,启动提示“ Camera frontend has timed out!” ,请更新“sudo rpi-update”
测试摄像头
- 输入摄像头检测指令,此时可以看到摄像头已经被检查到了
libcamera-hello --list-cameras

- 显示摄像头画面到桌面
libcamera-hello -t 0
- 拍摄照片
libcamera-jpeg -o test.jpg
- 录制一个10s的视频
libcamera-vid -t 10000 -o test.h264
其他命令
检查摄像头是否被检测到
libcamera-hello --list-cameras
打开对应的摄像头
libcamera-hello --camera 1 libcamera-hello --camera 0
拍摄照片
libcamera-jpeg -o test.jpg #可以添加 --camera 来指定摄像头
#新系统使用双摄像头 #在config.txt中移除camera_auto_detect=1 #camera_auto_detect=1 #添加 dtoverlay=imx219,cam1 dtoverlay=imx219,cam0 #其中imx219是摄像头传感器型号,还有支持其他传感器 dtoverlay=ov5647,cam0 dtoverlay=imx219,cam0 dtoverlay=ov9281,cam0 dtoverlay=imx477,cam0 dtoverlay=imx519,cam0 #然后重启 reboot #打开摄像头 libcamera-hello -t 0 或者 libcamera-hello #其他部分指令: #检查摄像头是否被检测到 libcamera-hello --list-cameras #打开对应的摄像头,预览5秒 libcamera-hello --camera 1 libcamera-hello --camera 0 #拍摄照片 libcamera-jpeg -o test.jpg #拍摄视频 libcamera-vid -t 10000 -o test.h264 #可以添加 --camera 来指定摄像头 #-t <duration> 选项允许用户选择窗口显示多长时间,单位毫秒
更多指令点击我
- 注意:如果使用 DSI 接口显示将会有一个HDMI是禁用的,即使只是编译相应的文件而不连接 DSI 屏幕。
- 两个HDMI任意连接一个是可以输出图像,不限于那个HDMI,如果连接的两个HDMI屏幕那么只有HDMI0有图像输出
- 如果要启用 两个HDMI,请移除config.txt的配置:
- 然后重启即可
参考树莓派手册
老系统版本(Buster和bullseye)
配置文件
CSI 和 DSI默认是关闭的,使用摄像头和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/ #执行(V1~V3版本使用) sudo dtc -I dts -O dtb -o /boot/dt-blob.bin dt-blob-disp0-double_cam.dts #执行(V4版本使用) sudo dtc -I dts -O dtb -o /boot/dt-blob.bin dt-blob-disp1-double_cam.dts 在config.txt中修改内容 sudo nano /boot/config.txt 将dtoverlay=vc4-kms-v3d 改为 dtoverlay=vc4-fkms-v3d #在使用任意DSI时,HDMI1没有图像输出,哪怕你没有连接DSI屏幕只要编译的对应的文件,那HDMI1就没有输出了 #如果需要恢复,删除对应的dt-blob.bin 即可: sudo rm -rf /boot/dt-blob.bin #执行完毕 关闭电源 重启
录播测试
再连接摄像头和DSI屏幕:
1: 确保断电状态下连接
2: 连接电源
3: 等待几秒后屏幕启动
4: 如果无法启动,检查/boot/dt-blob.bin 是否存在,如果存在再次重启即可。
旧版本(Buster)
摄像头需要运行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

