Difference between revisions of "NXP MIPI-CSI Camera Set"

From Voipac Wiki
Jump to navigation Jump to search
Line 54: Line 54:
 
[[image:CSI1-I2C2 and I2C3.png|800px]]
 
[[image:CSI1-I2C2 and I2C3.png|800px]]
  
== Listing modules ==
+
== Resolution setting ==
 +
=== 1280x960 ===
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
root@imx6-tinyrexmax:~# lsmod
+
echo 0 > /sys/bus/i2c/devices/1-0036/ov5647_mode
Module                  Size  Used by
 
mxc_v4l2_capture      27624  2
 
ipu_bg_overlay_sdc      5385  1 mxc_v4l2_capture
 
ipu_still              2331  1 mxc_v4l2_capture
 
ipu_prp_enc            5903  1 mxc_v4l2_capture
 
ipu_csi_enc            3904  1 mxc_v4l2_capture
 
ipu_fg_overlay_sdc      6130  1 mxc_v4l2_capture
 
ov5647_camera_mipi_int    30566  0
 
adv7610_video          6373  0
 
v4l2_int_device        2872  4 ov5647_camera_mipi_int,adv7610_video,ipu_csi_enc,mxc_v4l2_capture
 
mxc_dcic                6528  0
 
 
</syntaxhighlight>
 
</syntaxhighlight>
  
== Resolution settings ==
+
=== 1280x720 ===
Resolutions up to 720P are automatically detected.
+
<syntaxhighlight lang="bash">
 +
echo 1 > /sys/bus/i2c/devices/1-0036/ov5647_mode
 +
</syntaxhighlight>
  
== Gstreamer ==
+
=== 1920x1080 ===
=== Capture single JPEG picture ===
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
gst-launch-1.0 v4l2src device="/dev/video0" num-buffers=1 ! video/x-raw,width=1280,height=720,framerate=30/1 ! videoconvert ! jpegenc ! filesink location=sampleadv_1280_720.jpeg
+
echo 2 > /sys/bus/i2c/devices/1-0036/ov5647_mode
 
</syntaxhighlight>
 
</syntaxhighlight>
  
=== Video preview ===
+
=== 640x480 ===
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
gst-launch-1.0 v4l2src device="/dev/video0" ! video/x-raw,width=1280,height=720,framerate=30/1 ! videoconvert ! autovideosink
+
echo 3 > /sys/bus/i2c/devices/1-0036/ov5647_mode
 
</syntaxhighlight>
 
</syntaxhighlight>
  
=== Video encode ===
+
=== 1024x768 (default) ===
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
gst-launch-1.0 v4l2src device="/dev/video0" num-buffers=1000 ! video/x-raw,width=1280,height=720,framerate=30/1 ! videoconvert ! queue ! vpuenc_h264 ! matroskamux ! filesink location=sample.mkv sync=false
+
echo 4 > /sys/bus/i2c/devices/1-0036/ov5647_mode
 
</syntaxhighlight>
 
</syntaxhighlight>
  
== Performance ==
+
=== 960x720 ===
{| class="wikitable"
+
<syntaxhighlight lang="bash">
! Resolution !! FPS !! Module !! Command !! Notes
+
echo 5 > /sys/bus/i2c/devices/1-0036/ov5647_mode
|-
+
</syntaxhighlight>
| 1920x1080|| =12 || Ultra|| gst-launch-1.0 v4l2src device="/dev/video0" ! videoconvert ! autovideosink|| Connected monitor 1920x1080, Booting from SATA
+
 
|-
+
=== 640x480 (narrow angle of view) ===
| 1920x1080 || >=17 || Max|| gst-launch-1.0 v4l2src device="/dev/video0" ! videoconvert ! autovideosink|| Connected monitor 1920x1080, Booting from NFS
+
<syntaxhighlight lang="bash">
|-
+
echo 6 > /sys/bus/i2c/devices/1-0036/ov5647_mode
| 1920x1080|| >=17|| Pro|| gst-launch-1.0 v4l2src device="/dev/video0" ! videoconvert ! autovideosink|| Connected monitor 1920x1080, Booting from SD
+
</syntaxhighlight>
|-
 
| 1280x720|| >=29|| Ultra|| gst-launch-1.0 v4l2src device="/dev/video0" ! videoconvert ! autovideosink|| Connected monitor 1920x1080, Booting from SD
 
|-
 
| 1280x720  || >=29 || Max|| gst-launch-1.0 v4l2src device="/dev/video0" ! videoconvert ! autovideosink|| Connected monitor 1920x1080, Booting from NFS
 
|-
 
| 1280x720|| >=29|| Pro|| gst-launch-1.0 v4l2src device="/dev/video0" ! videoconvert ! autovideosink|| Connected monitor 1920x1080, Booting from SD
 
|-
 
| 800x600|| >=48|| Ultra|| gst-launch-1.0 v4l2src device="/dev/video0" ! videoconvert ! autovideosink|| Connected monitor 1920x1080, Booting from SD
 
|-
 
| 800x600  || >=48 || Max|| gst-launch-1.0 v4l2src device="/dev/video0" ! videoconvert ! autovideosink|| Connected monitor 1920x1080, Booting from NFS
 
|-
 
| 800x600|| >=48|| Pro|| gst-launch-1.0 v4l2src device="/dev/video0" ! videoconvert ! autovideosink|| Connected monitor 1920x1080, Booting from SD
 
|}
 

Revision as of 20:41, 22 July 2022

MINISASTOCSI is a MIPI-CSI interface camera kit, based on OmniVision chipset OV5640 Detection, performance and essential commands are described here.

hot-plug.png

MINISASTOCSI-Voipac-BB.png
MINISASTOCSI is a MIPI-CSI interface camera connected to iMX8M Development Baseboard

Kernel detection

root@imx8mq-voipac:~# dmesg | grep ov56
[    2.398433] ov5640_mipi 1-003c: No pin available
[    2.403090] ov5640_mipi 1-003c: No sensor pwdn pin available
[    2.408777] ov5640_mipi 1-003c: No sensor reset pin available
[    2.414571] ov5640_regulator_enable: cannot get io voltage error - err:-517
[    2.539603] ov5640_mipi 2-003c: No pin available
[    2.549079] ov5640_mipi 2-003c: No sensor reset pin available
[    2.554887] ov5640_regulator_enable: cannot get io voltage error - err:-517
[    2.999855] ov5640_mipi 1-003c: No pin available
[    3.005558] ov5640_mipi 1-003c: No sensor reset pin available
[    3.012003] ov5640_mipi 1-003c: 1-003c supply DVDD not found, using dummy regulator
[    3.019785] ov5640_mipi 1-003c: 1-003c supply AVDD not found, using dummy regulator
[    3.039290] ov5640_mipi 1-003c: Read reg error: reg=300a
[    3.044691] ov5640_mipi 1-003c: Camera is not found
[    3.051918] ov5640_mipi 2-003c: No pin available
[    3.062814] ov5640_mipi 2-003c: No sensor reset pin available
[    3.069209] ov5640_mipi 2-003c: 2-003c supply DVDD not found, using dummy regulator
[    3.076945] ov5640_mipi 2-003c: 2-003c supply AVDD not found, using dummy regulator
[    4.291092] mxc-mipi-csi2_yav 30a70000.mipi_csi: Registered sensor subdevice: ov5640_mipi 2-003c
[    4.304334] ov5640_mipi 2-003c: Camera is found

I2C detection

MINISASTOCSI camera chip is connected via I2C3. The most important address for correct detection is 0x3c.

root@imx8mq-voipac:~# i2cdetect -y 2
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: UU UU UU UU -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- UU -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

MINISASTOCSI camera can be also connected to I2C2 interface by moving 0R resistors. However second camera connected on CSI-2 interface have same address 0x3c as MINISASTOCSI camera connected on CSI-1 interface. CSI1-I2C2 and I2C3.png

Resolution setting

1280x960

echo 0 > /sys/bus/i2c/devices/1-0036/ov5647_mode

1280x720

echo 1 > /sys/bus/i2c/devices/1-0036/ov5647_mode

1920x1080

echo 2 > /sys/bus/i2c/devices/1-0036/ov5647_mode

640x480

echo 3 > /sys/bus/i2c/devices/1-0036/ov5647_mode

1024x768 (default)

echo 4 > /sys/bus/i2c/devices/1-0036/ov5647_mode

960x720

echo 5 > /sys/bus/i2c/devices/1-0036/ov5647_mode

640x480 (narrow angle of view)

echo 6 > /sys/bus/i2c/devices/1-0036/ov5647_mode