Difference between revisions of "NXP MIPI-CSI Camera Set"
Jump to navigation
Jump to search
(30 intermediate revisions by 2 users not shown) | |||
Line 4: | Line 4: | ||
<div style="float:right">__TOC__</div> | <div style="float:right">__TOC__</div> | ||
− | + | MINISASTOCSI is a MIPI-CSI interface camera kit, based on OmniVision chipset OV5640 Detection, performance and essential commands are described here. | |
<br /><br /> | <br /><br /> | ||
− | [[image:hot-plug.png| | + | [[image:hot-plug.png|200px]] |
+ | <br /><br /> | ||
+ | [[image:MINISASTOCSI-Voipac-BB.png|800px]]<br /> | ||
+ | MINISASTOCSI is a MIPI-CSI interface camera connected to iMX Development Baseboard | ||
<br /> | <br /> | ||
− | |||
== Kernel detection == | == Kernel detection == | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
root@imx8mq-voipac:~# dmesg | grep ov56 | root@imx8mq-voipac:~# dmesg | grep ov56 | ||
− | [ 2. | + | [ 2.398433] ov5640_mipi 1-003c: No pin available |
− | [ 2. | + | [ 2.403090] ov5640_mipi 1-003c: No sensor pwdn pin available |
− | [ 2. | + | [ 2.408777] ov5640_mipi 1-003c: No sensor reset pin available |
− | [ 2. | + | [ 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 |
− | [ 3. | + | [ 2.554887] ov5640_regulator_enable: cannot get io voltage error - err:-517 |
− | [ 3. | + | [ 2.999855] ov5640_mipi 1-003c: No pin available |
− | [ 3. | + | [ 3.005558] ov5640_mipi 1-003c: No sensor reset pin available |
− | [ 4. | + | [ 3.012003] ov5640_mipi 1-003c: 1-003c supply DVDD not found, using dummy regulator |
− | [ 4. | + | [ 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 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== I2C detection == | == I2C detection == | ||
− | + | MINISASTOCSI camera chip is connected via I2C3. The most important address for correct detection is 0x3c. | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | root@ | + | root@imx8mq-voipac:~# i2cdetect -y 2 |
0 1 2 3 4 5 6 7 8 9 a b c d e f | 0 1 2 3 4 5 6 7 8 9 a b c d e f | ||
− | 00: -- -- -- -- -- -- -- -- -- -- -- -- -- | + | 00: -- -- -- -- -- -- -- -- -- -- -- -- -- |
− | 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- | + | 10: UU UU UU UU -- -- -- -- -- -- -- -- -- -- -- -- |
− | + | 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- | |
− | + | 30: -- -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- | |
− | 40: | + | 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- |
− | 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- | + | 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- |
− | 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- | + | 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- |
− | 70: -- -- -- -- -- -- -- -- | + | 70: -- -- -- -- -- -- -- -- |
</syntaxhighlight> | </syntaxhighlight> | ||
+ | <br /> | ||
+ | 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. <br /> | ||
+ | [[image:CSI1-I2C2 and I2C3.png|800px]]<br /> | ||
− | == | + | == Modules listing == |
+ | === Kernel 4.1 === | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | root@imx6- | + | root@imx6-openrex:~# lsmod |
Module Size Used by | Module Size Used by | ||
mxc_v4l2_capture 27624 2 | mxc_v4l2_capture 27624 2 | ||
Line 55: | Line 69: | ||
v4l2_int_device 2872 4 ov5647_camera_mipi_int,adv7610_video,ipu_csi_enc,mxc_v4l2_capture | v4l2_int_device 2872 4 ov5647_camera_mipi_int,adv7610_video,ipu_csi_enc,mxc_v4l2_capture | ||
mxc_dcic 6528 0 | mxc_dcic 6528 0 | ||
+ | |||
+ | |||
+ | |||
+ | root@imx8mq-voipac:~# lsmod | ||
+ | Module Size Used by | ||
+ | crct10dif_ce 16384 1 | ||
+ | mwifiex_pcie 45056 0 | ||
+ | mwifiex 294912 1 mwifiex_pcie | ||
+ | galcore 610304 2 | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | |||
+ | == Resolution setting == | ||
+ | === 1280x960 === | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | echo 0 > /sys/bus/i2c/devices/1-0036/ov5647_mode | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === 1280x720 === | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | echo 1 > /sys/bus/i2c/devices/1-0036/ov5647_mode | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | == | + | === 1920x1080 === |
− | + | <syntaxhighlight lang="bash"> | |
+ | echo 2 > /sys/bus/i2c/devices/1-0036/ov5647_mode | ||
+ | </syntaxhighlight> | ||
− | == | + | === 640x480 === |
− | === | + | <syntaxhighlight lang="bash"> |
+ | echo 3 > /sys/bus/i2c/devices/1-0036/ov5647_mode | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === 1024x768 (default) === | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | + | echo 4 > /sys/bus/i2c/devices/1-0036/ov5647_mode | |
</syntaxhighlight> | </syntaxhighlight> | ||
− | === | + | === 960x720 === |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | + | echo 5 > /sys/bus/i2c/devices/1-0036/ov5647_mode | |
</syntaxhighlight> | </syntaxhighlight> | ||
− | === | + | === 640x480 (narrow angle of view) === |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | + | echo 6 > /sys/bus/i2c/devices/1-0036/ov5647_mode | |
</syntaxhighlight> | </syntaxhighlight> | ||
− | == | + | == Gstreamer == |
− | + | === Capture single JPEG picture === | |
− | + | <syntaxhighlight lang="bash"> | |
− | + | root@imx8mq-voipac:~# gst-launch-1.0 v4l2src num-buffers=1 ! jpegenc ! filesink location=sample_image.jpeg | |
− | + | Setting pipeline to PAUSED ... | |
− | + | Pipeline is live and does not need PREROLL ... | |
− | + | Setting pipeline to PLAYING ... | |
− | + | New clock: GstSystemClock | |
− | + | [ 1301.273334] ov5640_mipi 2-003c: s_stream: 1 | |
− | + | Got EOS from element "pipeline0".[ 1303.353181] ov5640_mipi 2-003c: s_stream: 0 | |
− | + | ||
− | + | Execution ended after 0:00:02.649996154 | |
− | + | Setting pipeline to PAUSED ... | |
− | + | Setting pipeline to READY ... | |
− | + | Setting pipeline to NULL ... | |
− | + | Freeing pipeline ... | |
− | + | root@imx8mq-voipac:~# ls | |
− | + | sample_image.jpeg | |
− | + | root@imx8mq-voipac:~# | |
− | + | </syntaxhighlight> | |
− | + | ||
− | + | The image stored in local media with name sample_image.jpeg | |
+ | |||
+ | === Video preview === | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | root@imx8mq-voipac:~# GST_DEBUG=GST_BUFFER:5 gst-launch-1.0 v4l2src ! 'video/x-raw,framerate=30/1' ! autovideosink | ||
+ | Setting pipeline to PAUSED ... | ||
+ | Pipeline is live and does not need PREROLL ... | ||
+ | Setting pipeline to PLAYING ... | ||
+ | New clock: GstSystemClock | ||
+ | 0:00:00.842776580 469 0xaaaadc001c00 DEBUG GST_BUFFER gstbuffer.c:2279:gst_buffer_add_meta: alloc metadata 0xaaaadc0623c0 (GstVideoMeta) of size 112 | ||
+ | 0:00:00.842935198 469 0xaaaadc001c00 DEBUG GST_BUFFER gstbuffer.c:2279:gst_buffer_add_meta: alloc metadata 0xaaaadc062440 (GstVideoMeta) of size 112 | ||
+ | 0:00:00.843278592 469 0xaaaadc001c00 DEB[ 1415.898001] ov5640_mipi 2-003c: s_stream: 1 | ||
+ | UG GST_BUFFER gstbuffer.c:2279:gst_buffer_add_meta: alloc metadata 0xaaaadc0624c0 (GstVideoMeta) of size 112 | ||
+ | 0:00:00.843338584 469 0xaaaadc001c00 DEBUG GST_BUFFER gstbuffer.c:2279:gst_buffer_add_meta: alloc metadata 0xaaaadc062540 (GstVideoMeta) of size 112 | ||
+ | [ 1416.119964] skip frame 1 | ||
+ | </syntaxhighlight> | ||
+ | The video stream from camera can be displayed on display/monitor |
Latest revision as of 14:49, 11 September 2024
MINISASTOCSI is a MIPI-CSI interface camera kit, based on OmniVision chipset OV5640 Detection, performance and essential commands are described here.
MINISASTOCSI is a MIPI-CSI interface camera connected to iMX 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.
Modules listing
Kernel 4.1
root@imx6-openrex:~# lsmod 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 root@imx8mq-voipac:~# lsmod Module Size Used by crct10dif_ce 16384 1 mwifiex_pcie 45056 0 mwifiex 294912 1 mwifiex_pcie galcore 610304 2
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
Gstreamer
Capture single JPEG picture
root@imx8mq-voipac:~# gst-launch-1.0 v4l2src num-buffers=1 ! jpegenc ! filesink location=sample_image.jpeg Setting pipeline to PAUSED ... Pipeline is live and does not need PREROLL ... Setting pipeline to PLAYING ... New clock: GstSystemClock [ 1301.273334] ov5640_mipi 2-003c: s_stream: 1 Got EOS from element "pipeline0".[ 1303.353181] ov5640_mipi 2-003c: s_stream: 0 Execution ended after 0:00:02.649996154 Setting pipeline to PAUSED ... Setting pipeline to READY ... Setting pipeline to NULL ... Freeing pipeline ... root@imx8mq-voipac:~# ls sample_image.jpeg root@imx8mq-voipac:~#
The image stored in local media with name sample_image.jpeg
Video preview
root@imx8mq-voipac:~# GST_DEBUG=GST_BUFFER:5 gst-launch-1.0 v4l2src ! 'video/x-raw,framerate=30/1' ! autovideosink Setting pipeline to PAUSED ... Pipeline is live and does not need PREROLL ... Setting pipeline to PLAYING ... New clock: GstSystemClock 0:00:00.842776580 469 0xaaaadc001c00 DEBUG GST_BUFFER gstbuffer.c:2279:gst_buffer_add_meta: alloc metadata 0xaaaadc0623c0 (GstVideoMeta) of size 112 0:00:00.842935198 469 0xaaaadc001c00 DEBUG GST_BUFFER gstbuffer.c:2279:gst_buffer_add_meta: alloc metadata 0xaaaadc062440 (GstVideoMeta) of size 112 0:00:00.843278592 469 0xaaaadc001c00 DEB[ 1415.898001] ov5640_mipi 2-003c: s_stream: 1 UG GST_BUFFER gstbuffer.c:2279:gst_buffer_add_meta: alloc metadata 0xaaaadc0624c0 (GstVideoMeta) of size 112 0:00:00.843338584 469 0xaaaadc001c00 DEBUG GST_BUFFER gstbuffer.c:2279:gst_buffer_add_meta: alloc metadata 0xaaaadc062540 (GstVideoMeta) of size 112 [ 1416.119964] skip frame 1
The video stream from camera can be displayed on display/monitor