AnsweredAssumed Answered

i.mx8M Mini OV5640 fps limitation

Question asked by raptor8 on Mar 20, 2019
Latest reply on Nov 8, 2019 by Andreas Gustafsson

Hello everyone,

I bought the imx8mmevk with the i.MX8M Mini SoC with the MINISASTOCSI accessory, flashed Linux (L4.14.78_1.0.0_ga_images_MX8MMEVK) and managed to stream from the OV5640 with gstreamer successfully.


But I was expecting to be able to use this sensor at 60fps as the datasheet of the sensor specify and the video encoders VP8/H264 are capable of outputting at least 720p60.



I have done a quick search for the cause of this but I see that's it's using 2 mipi_csi lanes


root@imx8mmevk:~# dmesg | grep "mipi"
[    1.257708] adv7511 1-003d: Probe failed. Remote port '/mipi_dsi@32E10000' disabled
[    1.549094] mxc_mipi-csi 32e30000.mipi_csi: 32e30000.mipi_csi supply mipi-phy not found, using dummy regulator
[    1.559458] mxc_mipi-csi 32e30000.mipi_csi: mipi csi v4l2 device registered
[    1.566436] CSI: Registered sensor subdevice: mxc_mipi-csi.0
[    1.572121] mxc_mipi-csi 32e30000.mipi_csi: lanes: 2, hs_settle: 13, clk_settle: 2, wclk: 1, freq: 333000000
[    1.582387] ov5640_mipi 2-003c: No sensor reset pin available
[    1.588182] ov5640_mipi 2-003c: 2-003c supply DOVDD not found, using dummy regulator
[    1.595981] ov5640_mipi 2-003c: 2-003c supply DVDD not found, using dummy regulator
[    1.603677] ov5640_mipi 2-003c: 2-003c supply AVDD not found, using dummy regulator
[    2.786869] mxc_mipi-csi 32e30000.mipi_csi: Registered sensor subdevice: ov5640_mipi 2-003c
[    2.797202] ov5640_mipi 2-003c: Camera is found


And the capabilities are tied to 30 fps max with V4L2


root@imx8mmevk:~# v4l2-ctl -D -d /dev/video0 --list-formats-ext
Driver Info (not using libv4l2):
        Driver name   : mx6s-csi
        Card type     : i.MX6S_CSI
        Bus info      : platform:32e20000.csi1_bridge
        Driver version: 4.14.78
        Capabilities  : 0x84200001
                Video Capture
                Extended Pix Format
                Device Capabilities
        Device Caps   : 0x04200001
                Video Capture


                Extended Pix Format
        Index       : 0
        Type        : Video Capture
        Pixel Format: 'YUYV'
        Name        : YUYV 4:2:2
                Size: Discrete 640x480
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 720x480
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 1280x720
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 1920x1080
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 2592x1944
                        Interval: Discrete 0.067s (15.000 fps)
                Size: Discrete 0x0


Now I would like to know what is possible to do to get to 60fps with this sensor and from where the limitation is coming.

Is it from some registers in the driver? The clock speed used? Do I need to recompile something with other parameters?



I was also planning on using other sensors in the future, on the MIPI I/F or any other serial or parallel I/F. Are there others drivers included in the default linux image? How is it difficult to implement a new sensor?

I see many sensors listed on the official linux github that can interest me.

linux/drivers/media/i2c at master · torvalds/linux · GitHub 



Thank you for your time.