본문으로 건너뛰기

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 변수를 적절한 디바이스 트리 블롭 오버레이(.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의 카메라 오버레이는 아래와 같습니다. 다른 릴리스에서는 일부 오버레이의 이름이 다릅니다. 보드에 있는 오버레이를 나열하려면 Linux에서 다음 명령을 실행하십시오.

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

각 오버레이에 해당하는 주문할 카메라, 캐리어 보드별 포트, 센서 모드는 지원되는 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에 카메라마다 오버레이를 하나씩, 공백으로 구분하여 설정하십시오. U-Boot는 목록의 모든 오버레이를 적용합니다. 이 방법은 플랫폼 릴리스 2.1.0부터 사용할 수 있습니다.

카메라 모델은 서로 달라도 됩니다. 각 카메라의 모델과 포트에 맞는 오버레이를 사용하십시오. 예를 들어, 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
  • 포트 하나에는 오버레이를 하나만 지정할 수 있습니다.
  • 오버레이의 순서는 상관없습니다.
  • DUAL 오버레이는 Waveshare 캐리어 보드의 두 포트를 동일한 카메라 모델로 설정합니다. DUAL 오버레이 하나 또는 포트별 오버레이 두 개 중 한 가지 방식만 사용하고, 함께 지정하지 마십시오.
  • 캐리어 보드별로 오버레이가 있는 포트는 지원되는 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