跳至主要内容

MIPI 相機介面

備註

請在繼續操作之前安裝或升級 sima-cli。本指南適用於最新版本的 sima-cli。

備註

此程序需要安裝最新版本的 sima-cli 的主機。它還需要一個包含用於支援 MIPI 的 .dtbo 檔案的 Modalix DevKit 韌體版本。

Modalix DevKit 包含兩個用於相機輸入的 MIPI 介面。 MIPI 連接埠位於載板上。

在開始之前,請關閉 Modalix DevKit 的電源,並將一個 MIPI 相機連接到其中一個 MIPI 連接埠。

將一條序列線連接到主機和 Modalix DevKit,然後開啟 DevKit 的電源。

使用 sima-cli 開啟一個序列終端,然後在 3 秒倒數期間按下任意按鍵,以進入 U-Boot。

sima-cli serial -b 115200
...
Hit any key to stop autoboot: 0
sima$

在 U-Boot 中,將 dtbos 變數設定為適當的「Device Tree Blob Overlay」(.dtbo) 檔案。正確的檔案取決於「載板」、「相機製造商」、「感測器類型」和「相機連接埠」。然後儲存環境並啟動至作業系統。

檔案名稱遵循以下模式:

modalix-som-<carrier_board>-<camera_manufacturer>-<sensor_type>-<port>.dtbo

根據您的硬體規格,選擇每個元件:

元件值說明
載板connectech, seeedstudio, waveshare載板型號
相機製造商ARDU, ECON, LIArducam、e-con Systems 或 Leopard Imaging
感測器類型IMX477, IMX568, FPGA-IMX568, KOBE1-IMX568, IMX678, AR0234, OG05C10相機感測器型號
連接埠0CAM, 1CAM, 2CAM, 3CAM, DUAL與相機連接的 MIPI 埠號。

Modalix DevKit 預設搭載 Waveshare 載板。舉例來說,Modalix DevKit 的 1 號埠連接 Arducam IMX477 相機時:

sima$ setenv dtbos modalix-som-waveshare-ARDU-IMX477-1CAM.dtbo ; saveenv ; boot

以下列出平台版本 2.1.3 的相機 overlay。其他版本中,部分 overlay 的名稱不同。若要列出您電路板上的 overlay,請在 Linux 中執行以下指令:

sima@modalix:~$ ls /boot/boot-*/modalix-som-*.dtbo

關於各 overlay 對應的訂購相機、各載板的連接埠與感測器模式,請參閱支援的 MIPI 相機。

modalix-som-connectech-ARDU-IMX477-0CAM.dtbo
modalix-som-connectech-ARDU-IMX477-1CAM.dtbo
modalix-som-connectech-ARDU-IMX477-2CAM.dtbo
modalix-som-connectech-ARDU-IMX477-3CAM.dtbo
modalix-som-connectech-ECON-FPGA-IMX568-0CAM.dtbo
modalix-som-connectech-ECON-FPGA-IMX568-1CAM.dtbo
modalix-som-connectech-ECON-FPGA-IMX568-2CAM.dtbo
modalix-som-connectech-ECON-FPGA-IMX568-3CAM.dtbo
modalix-som-connectech-ECON-IMX678-0CAM.dtbo
modalix-som-connectech-ECON-IMX678-1CAM.dtbo
modalix-som-connectech-ECON-IMX678-2CAM.dtbo
modalix-som-connectech-ECON-IMX678-3CAM.dtbo
modalix-som-connectech-ECON-KOBE1-IMX568-0CAM.dtbo
modalix-som-connectech-ECON-KOBE1-IMX568-1CAM.dtbo
modalix-som-connectech-ECON-KOBE1-IMX568-2CAM.dtbo
modalix-som-connectech-ECON-KOBE1-IMX568-3CAM.dtbo
modalix-som-connectech-LI-AR0234-0CAM.dtbo
modalix-som-connectech-LI-AR0234-1CAM.dtbo
modalix-som-connectech-LI-AR0234-2CAM.dtbo
modalix-som-connectech-LI-AR0234-3CAM.dtbo
modalix-som-connectech-LI-OG05C10-0CAM.dtbo
modalix-som-connectech-LI-OG05C10-1CAM.dtbo
modalix-som-connectech-LI-OG05C10-2CAM.dtbo
modalix-som-connectech-LI-OG05C10-3CAM.dtbo
modalix-som-seeedstudio-ARDU-IMX477-0CAM.dtbo
modalix-som-seeedstudio-ARDU-IMX477-2CAM.dtbo
modalix-som-seeedstudio-ECON-FPGA-IMX568-0CAM.dtbo
modalix-som-seeedstudio-ECON-FPGA-IMX568-2CAM.dtbo
modalix-som-seeedstudio-ECON-IMX678-0CAM.dtbo
modalix-som-seeedstudio-ECON-IMX678-2CAM.dtbo
modalix-som-seeedstudio-ECON-KOBE1-IMX568-0CAM.dtbo
modalix-som-seeedstudio-ECON-KOBE1-IMX568-2CAM.dtbo
modalix-som-seeedstudio-LI-AR0234-0CAM.dtbo
modalix-som-seeedstudio-LI-AR0234-2CAM.dtbo
modalix-som-seeedstudio-LI-OG05C10-0CAM.dtbo
modalix-som-seeedstudio-LI-OG05C10-2CAM.dtbo
modalix-som-waveshare-ARDU-IMX477-1CAM.dtbo
modalix-som-waveshare-ARDU-IMX477-2CAM.dtbo
modalix-som-waveshare-ARDU-IMX477-DUAL.dtbo
modalix-som-waveshare-ECON-FPGA-IMX568-1CAM.dtbo
modalix-som-waveshare-ECON-FPGA-IMX568-2CAM.dtbo
modalix-som-waveshare-ECON-IMX568-1CAM.dtbo
modalix-som-waveshare-ECON-IMX568-2CAM.dtbo
modalix-som-waveshare-ECON-IMX678-1CAM.dtbo
modalix-som-waveshare-ECON-IMX678-2CAM.dtbo
modalix-som-waveshare-ECON-IMX678-DUAL.dtbo
modalix-som-waveshare-ECON-KOBE1-IMX568-1CAM.dtbo
modalix-som-waveshare-ECON-KOBE1-IMX568-2CAM.dtbo
modalix-som-waveshare-LI-AR0234-1CAM.dtbo
modalix-som-waveshare-LI-AR0234-2CAM.dtbo
modalix-som-waveshare-LI-AR0234-DUAL.dtbo
modalix-som-waveshare-LI-OG05C10-1CAM.dtbo
modalix-som-waveshare-LI-OG05C10-2CAM.dtbo
modalix-som-waveshare-LI-OG05C10-DUAL.dtbo

為了驗證介面,請將 Modalix DevKit 連接到顯示器,然後登入。接著,使用 libcamera 來驗證相機的連線。

  1. 列出可用的相機:

    sima@modalix:~$ cam -l
  2. 顯示相機 1 的不同相機格式:

    sima@modalix:~$ cam -c 1 -I
  3. 從相機 1 擷取一張影像:

    sima@modalix:~$ rm -rf frame* && cam -c 1 --capture=1 -F -s pixelformat=NV12

使用多台相機​

若要使用一台以上的相機,請將 dtbos 設定為每台相機各一個 overlay,並以空格分隔。U-Boot 會套用清單中的每個 overlay。此做法自平台版本 2.1.0 起適用。

相機可以是不同的型號。請使用與每台相機的型號及連接埠相符的 overlay。舉例來說,Modalix DevKit 的 1 號埠連接 e-con Systems IMX678 相機、2 號埠連接 Leopard Imaging OG05C10 相機時:

sima$ setenv dtbos modalix-som-waveshare-ECON-IMX678-1CAM.dtbo modalix-som-waveshare-LI-OG05C10-2CAM.dtbo
sima$ printenv dtbos
sima$ saveenv ; boot
  • 每個連接埠只能指定一個 overlay。
  • overlay 的順序不影響結果。
  • DUAL overlay 會將 Waveshare 載板的兩個連接埠設定為相同的相機型號。請擇一使用 DUAL overlay 或兩個連接埠各自的 overlay,不要同時指定。
  • 各載板有哪些連接埠提供 overlay,請參閱支援的 MIPI 相機。
  • 並非所有組合都經過測試。請使用 cam -l 並從每台相機擷取影像,以驗證您的組合。

電路板開機後,請執行 cam -l。每台相機會列出一個項目。

您也可以在 Linux 中設定此變數,而不需要序列主控台。

sima@modalix:~$ fw_setenv dtbos "modalix-som-waveshare-ECON-IMX678-1CAM.dtbo modalix-som-waveshare-LI-OG05C10-2CAM.dtbo"
sima@modalix:~$ fw_printenv dtbos
sima@modalix:~$ sudo reboot