树莓派CM4-NANO-C教程

产品概述

我是CM4-NANO-C(树莓派CM4超迷你扩展板C型),CM4-NANO-C 是一款可以搭配树莓派 Compute Module 4 使用的底板,在极小的版型下尽可能的引出树莓派 Compute Module 4的接口,并且板载了摄像头模块接口

使用须知

  1. 禁止带电时拔插除USB和HDMI之外的任何设备
    • 特别是禁止带电安装或者拆除摄像头
  2. 请勿短路电源
  3. USB Type-C接口可以用作供电也可以用作USB SLAVE 接口烧录镜像。
  4. 为了保证CM4供电正常,在使用USB Type-C接口烧录镜像时,请不要连接其他设备。
  5. CM4在正常使用时,需要为CM4 提供5V 2A的供电。否则可能出现自动关机,降频等等问题。
  6. USB2.0 和CSI与DSI默认是关闭 的,需要用户自行开启(可以点击此处标签跳转对应使用说明)
  7. 用户按键连接到GPIO21上,且通过电阻R16(10K)上拉到GPIO_VREF,按键未按下时,GPIO21默认被拉高;当按键按下时,GPIO21电平会被拉低。

产品尺寸

CM4-NANO-C

700px

Compute_Module 4 核心板



板载资源

800px

标号名称说明
1CM4 连接器适用于 Compute Module 4 的所有版本
2Micro SD 卡接口用于接入带系统的 Micro SD 卡,仅用于 Lite 版本
340PIN GPIO 接口方便接入各种 HAT 模块
4供电/烧录接口5V/2A 供电,也可以作为 eMMC 烧录接口
5用户按键用户可以编程按键功能,连接到GPIO21
6USB 2.0 接口USB 2.0 接口,支持各种 USB 设备插入
7CAM 接口可连接IMX219-D160
8DSI接口MIPI DSI 显示接口,与CM4 DSI1接口连接
9DC降压电路DC降压电路,为DSI、CSI和GPIO的3.3V供电
10MINI HDMI接口HDMI 接口,支持4K 30fps 输出
11BOOTON:将USB切换至type C接口,上电时进入下载模式(通过rpi boot配置成大容量磁盘)

OFF:将USB切换到TYPE A接口,上电时不会进入下载(将从eMMC或者SD卡启动)

使用简介

镜像烧录

USB2.0

USB使能配置

  • USB接口在CM4上默认是禁用的,以节省电源。
  • 建议在烧录完成后,直接打开boot盘符中的config.txt文件,并且添加以下内容:
dtoverlay=dwc2,dr_mode=host
  • 保存文件后,按照正常流程开机即可

关于USB-OTG模式

  • 如果使用最新的树莓派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与DSI

配置文件

  • 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

开启CSI摄像头

  • 确保断电状态下连接CSI摄像头与DSI屏幕,否则可能会造成设备损坏
  • CSI摄像头除了修改设备树,还需要设置开启摄像头功能

老版本(buster)

  1. 执行如下命令进入树莓派配置
    sudo raspi-config
  2. 选择Interfacing Options并进入
  3. 选择Camera
  4. 选择开启摄像头接口
  5. 系统提示如下
  6. 回到主界面,选择Finish
  7. 随后重启系统
  • 测试拍照:
     raspistill -o image.jpg
  • 测试录像:
     raspivid -o video.h264 -t 10000
    • 其中 -t 10000 表示录制 10 秒,用户各根据自己的需要进行调整。

参考:CSI相机

新版本(bullseye)

  1. 执行如下命令进入编辑/boot/config.txt文件
    sudo nano /boot/config.txt
  2. 屏蔽或者删除掉摄像头自动检测语句
  3. 添加你使用的摄像头的驱动动,这里我以IMX219为例,并且连接上CAM0上,附上适配

    型号CAM0设置语句CAM1设置语句
    OV9281dtoverlay=ov9281,cam0dtoverlay=ov9281,cam1
    IMX290/IMX327dtoverlay=imx290,clock-frequency=37125000,cam0dtoverlay=imx290,clock-frequency=37125000,cam1
    IMX378dtoverlay=imx378,cam0dtoverlay=imx378,cam1
    IMX219dtoverlay=imx219,cam0dtoverlay=imx219,cam1
    IMX477dtoverlay=imx477,cam0dtoverlay=imx477,cam1
    • CM4-NANO-只用到CAM0,所以只需要添加一句 dtoverlay=imx219,cam0 即可
  4. 快捷键Ctrl+o保存文件,并回车
  5. 快捷键Ctrl+x退出编辑器
  6. 重启树莓派
    sudo reboot
  7. 输入摄像头检测指令,此时可以看到摄像头已经被检查到了
    libcamera-hello --list-cameras

  8. 显示摄像头画面到桌面
    libcamera-hello -t
  9. 拍摄照片
    libcamera-jpeg -o test.jpg
  10. 录制一个10s的视频
    libcamera-vid -t 10000 -o test.h264