模板: CM4-CSI-DSI

来自Waveshare Wiki
跳转至: 导航搜索

新版本(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

  • 在config.txt中添加内容
  • sudo nano /boot/firmware/config.txt

    型号 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
  • 快捷键Ctrl+o保存文件,并回车
    CM4-NANO-B-CSI-03.png
  • 快捷键Ctrl+x退出编辑器
  • 重启设备
    sudo reboot
  • 注意:

    1:单口摄像头只能再CAM0上工作,即单独使用CAM1口不行。但单独使用CAM0口可以,连接双摄像头是都可以
    2:如果出现识别到设备,启动提示“ Camera frontend has timed out!” ,请更新“sudo rpi-update”
    
    测试摄像头
    1. 输入摄像头检测指令,此时可以看到摄像头已经被检查到了
      libcamera-hello --list-cameras

      CM4-NANO-B-CSI-01.png
    2. 显示摄像头画面到桌面
      libcamera-hello -t 0
    3. 拍摄照片
      libcamera-jpeg -o test.jpg
    4. 录制一个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