Difference between revisions of "DESK-MX6-L/Peripherals/MIPI"

From DAVE Developer's Wiki
Jump to: navigation, search
m (U0007 moved page DESK-MX6-L/Pheripherals/MIPI to DESK-MX6-L/Peripherals/MIPI without leaving a redirect)
m (U0009 moved page AXEL Lite SOM/DESK-MX6-L/Pheripherals/MIPI to DESK-MX6-L/Pheripherals/MIPI: modifica gestione DESK come prodotto a se stante)
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<section begin="History" />
+
<section begin=History/>
 
{| style="border-collapse:collapse; "
 
{| style="border-collapse:collapse; "
! colspan="4" style="width:100%; text-align:left" ; border-bottom:solid 2px #ededed" |History
+
!colspan="4" style="width:100%; text-align:left"; border-bottom:solid 2px #ededed"|History
 
|-  
 
|-  
! style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white" |Issue Date
+
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white"|Version
! style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white" |Notes
+
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white"|Issue Date
 +
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white"|Notes
 
|-
 
|-
| style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000" |{{oldid|14097|2021/07/16}}
+
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|1.0.0
| style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000" |First DESK-MX6-L release
+
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|Oct 2020
 +
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|First DESK release
 
|-
 
|-
| style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000" |{{oldid|16999|2022/03/03}}
 
| style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000" |DESK-MX6-L 3.0.0 release
 
|-
 
! style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#ededed; padding:5px; color:#000000" |2023/04/11
 
! style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#ededed; padding:5px; color:#000000" |DESK -MX6-L4.0.0 release
 
 
|-
 
|-
 
|}
 
|}
<section end="History" />
+
<section end=History/>
<section begin="Body" />
+
<section begin=Body/>
  
 
==Peripheral MIPI ==
 
==Peripheral MIPI ==
Line 66: Line 63:
 
...
 
...
 
...
 
...
[    0.142280] mxc_mipi_csi2 21dc000.mipi: i.MX MIPI CSI2 driver probed
+
[    0.261643] mxc_mipi_csi2 21dc000.mipi_csi: i.MX MIPI CSI2 driver probed
[    0.142301] mxc_mipi_csi2 21dc000.mipi: i.MX MIPI CSI2 dphy version is 0x3130302a
+
[    0.261659] mxc_mipi_csi2 21dc000.mipi_csi: i.MX MIPI CSI2 dphy version is 0x3130302a
[    0.142757] MIPI CSI2 driver module loaded
+
[    0.431259] MIPI CSI2 driver module loaded
 
...
 
...
 
...
 
...
Line 77: Line 74:
 
<pre class="workstation-terminal">
 
<pre class="workstation-terminal">
 
root@desk-mx6:~# dmesg | grep -i camera
 
root@desk-mx6:~# dmesg | grep -i camera
[    4.844134] camera ov5640_mipi is found
+
[    3.373634] camera ov5640_mipi is found
 
root@desk-mx6:~# ls -la /dev/video1*
 
root@desk-mx6:~# ls -la /dev/video1*
crw-rw---- 1 root video 81, 1 Apr  4 06:49 /dev/video1
+
crw-rw---- 1 root video 81, 3 Jun 22 00:33 /dev/video1
crw-rw---- 1 root video 81, 2 Apr  4 06:49 /dev/video16
+
crw-rw---- 1 root video 81, 0 Jun 22 00:33 /dev/video16
crw-rw---- 1 root video 81, 3 Apr  4 06:49 /dev/video17
+
crw-rw---- 1 root video 81, 1 Jun 22 00:33 /dev/video17
crw-rw---- 1 root video 81, 4 Apr  4 06:49 /dev/video18
+
root@desk-mx6:~#
 
</pre>
 
</pre>
  
Line 91: Line 88:
 
<pre class="workstation-terminal">
 
<pre class="workstation-terminal">
 
root@desk-mx6:~# gst-launch-1.0 -v imxv4l2src device=/dev/video1 ! imxv4l2sink
 
root@desk-mx6:~# gst-launch-1.0 -v imxv4l2src device=/dev/video1 ! imxv4l2sink
...
+
 
...
+
[  592.680143] ERROR: v4l2 capture: slave not found!
====== IMXV4L2SRC: 4.7.2 build on Sep  1 2022 09:49:28. ======
+
====== IMXV4L2SRC: 4.4.5 build on Jun 22 2020 02:01:01. ======
====== IMXV4L2SINK: 4.7.2 build on Sep  1 2022 09:49:28. ======
+
====== IMXV4L2SINK: 4.4.5 build on Jun 22 2020 02:01:01. ======
 
Setting pipeline to PAUSED ...
 
Setting pipeline to PAUSED ...
 
display(/dev/fb0) resolution is (800x480).
 
display(/dev/fb0) resolution is (800x480).
 
Pipeline is live and does not need PREROLL ...
 
Pipeline is live and does not need PREROLL ...
Pipeline is PREROLLED ...
 
 
Setting pipeline to PLAYING ...
 
Setting pipeline to PLAYING ...
 
New clock: GstSystemClock
 
New clock: GstSystemClock
 
/GstPipeline:pipeline0/GstImxV4l2Src:imxv4l2src0.GstPad:src: caps = video/x-raw, format=(string)NV12, width=(int)640, height=(int)480, framerate=(fraction)30/1
 
/GstPipeline:pipeline0/GstImxV4l2Src:imxv4l2src0.GstPad:src: caps = video/x-raw, format=(string)NV12, width=(int)640, height=(int)480, framerate=(fraction)30/1
 
/GstPipeline:pipeline0/GstImxV4l2Sink:imxv4l2sink0.GstPad:sink: caps = video/x-raw, format=(string)NV12, width=(int)640, height=(int)480, framerate=(fraction)30/1
 
/GstPipeline:pipeline0/GstImxV4l2Sink:imxv4l2sink0.GstPad:sink: caps = video/x-raw, format=(string)NV12, width=(int)640, height=(int)480, framerate=(fraction)30/1
Redistribute latency...
 
 
v4l2sink need allocate 3 buffers.
 
v4l2sink need allocate 3 buffers.
 
...
 
...

Revision as of 14:22, 16 July 2021

History
Version Issue Date Notes
1.0.0 Oct 2020 First DESK release


Peripheral MIPI[edit | edit source]

Device tree configuration[edit | edit source]

Here below an example of device tree configuration used on standard DAVE's kit for the AXELLite SOM:

From imx6qdl-sbcx-revb-common.dtsi:

&mipi_csi {
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_mipi_csi_axel_sbc>;
    status = "okay";
    ipu_id = <0>;
    csi_id = <1>;
    v_channel = <0>;
    lanes = <2>;
};

From imx6qdl-axelcommon.dtsi:


&iomuxc {
...
...
        pinctrl_mipi_csi_axel_sbc: mipi_csigrp-2 {
            fsl,pins = <
                MX6QDL_PAD_SD3_DAT7__GPIO6_IO17 0x0b0b0 /* ov5640 mipi powerdown */
                MX6QDL_PAD_SD3_DAT6__GPIO6_IO18 0x000b0 /* ov5640 mipi reset */
                MX6QDL_PAD_CSI0_MCLK__CCM_CLKO1 0x000b0 /* ov5640 mclk */
            >;
        };
...
...
};

Accessing the peripheral[edit | edit source]

Linux messages at boot time[edit | edit source]

MIPI CSI-2 driver initialized:

...
...
[    0.261643] mxc_mipi_csi2 21dc000.mipi_csi: i.MX MIPI CSI2 driver probed
[    0.261659] mxc_mipi_csi2 21dc000.mipi_csi: i.MX MIPI CSI2 dphy version is 0x3130302a
[    0.431259] MIPI CSI2 driver module loaded
...
...

and if a MIPI camera is inserted, it has been recognized and its video driver loaded:

root@desk-mx6:~# dmesg | grep -i camera
[    3.373634] camera ov5640_mipi is found
root@desk-mx6:~# ls -la /dev/video1*
crw-rw---- 1 root video 81, 3 Jun 22 00:33 /dev/video1
crw-rw---- 1 root video 81, 0 Jun 22 00:33 /dev/video16
crw-rw---- 1 root video 81, 1 Jun 22 00:33 /dev/video17
root@desk-mx6:~#

Usage with gstreamer[edit | edit source]

Video capture and display using OV5640 MIPI camera:

root@desk-mx6:~# gst-launch-1.0 -v imxv4l2src device=/dev/video1 ! imxv4l2sink

[  592.680143] ERROR: v4l2 capture: slave not found!
====== IMXV4L2SRC: 4.4.5 build on Jun 22 2020 02:01:01. ======
====== IMXV4L2SINK: 4.4.5 build on Jun 22 2020 02:01:01. ======
Setting pipeline to PAUSED ...
display(/dev/fb0) resolution is (800x480).
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
/GstPipeline:pipeline0/GstImxV4l2Src:imxv4l2src0.GstPad:src: caps = video/x-raw, format=(string)NV12, width=(int)640, height=(int)480, framerate=(fraction)30/1
/GstPipeline:pipeline0/GstImxV4l2Sink:imxv4l2sink0.GstPad:sink: caps = video/x-raw, format=(string)NV12, width=(int)640, height=(int)480, framerate=(fraction)30/1
v4l2sink need allocate 3 buffers.
...
...

Additional information[edit | edit source]

More information about gstreamer on its web site.

More information about i.MX gstreamer plugin on the gstreamer-imx web site