i.MX8MP MIPI CSI2 bandwidth limitation

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

i.MX8MP MIPI CSI2 bandwidth limitation

Jump to solution
2,795 Views
artsiomstaliaro
Contributor IV

Hi,

Im using LF6.1.1 Yocto code base for my IMX8MPLUS SoC. I am using camera module with 4 lanes MIPI CIS2, 1350Mbps / lane.

With such baud rate - I can't get data. But if I lower it down to 750Mbps - the camera works fine.

HSSettle settings are correct - I tried another settle value for 1350Mbps - it doesn't help.

MIPI_CSI controller reports about ERR_SOT_HS errors. in 750Mbps mode - no errors.

Should I increase input CLK for MIPI PHY or MIPI CSI controller?

Thank you in advance.

 

Tags (2)
0 Kudos
Reply
1 Solution
2,756 Views
joanxie
NXP TechSupport
NXP TechSupport

how about setting hssettle to 29 or 30? and set CLKSETTLECTL to 0 which is depends on what mipi phy version you use, you can try  0 firstly

joanxie_0-1735003940484.png

 

View solution in original post

8 Replies
2,772 Views
joanxie
NXP TechSupport
NXP TechSupport

what lane do you set? and how do you get 1350Mbps / lane? by tools? and what HSSETTLE do you set? ERR_SOT_HS error, need to set HSSETTLE to correct it

0 Kudos
Reply
2,768 Views
artsiomstaliaro
Contributor IV

Lane count set to 4.

1350Mbps steam comes from the sensor. Clock measured by an oscilloscope.

HSSETTLE tried 2, 7, 15 - no luck.

 

 

0 Kudos
Reply
2,757 Views
joanxie
NXP TechSupport
NXP TechSupport

how about setting hssettle to 29 or 30? and set CLKSETTLECTL to 0 which is depends on what mipi phy version you use, you can try  0 firstly

joanxie_0-1735003940484.png

 

2,713 Views
artsiomstaliaro
Contributor IV

value 0x30 works fine for 1.5Gbps/lane

0 Kudos
Reply
2,693 Views
artsiomstaliaro
Contributor IV

After testing, we found that the video still not stable. 

after adding in device tree:

csis-hs-settle = <0x30>;

Still can't get a valid video.

Only way to make it work is to change the HSSETTLE value during streaming.

Correct sequence during streaming:

0x32E40024 w 0x5000001F
0x32E40024 w 0x3000001F

Do I need to enable RX skew calibration?

0 Kudos
Reply
2,664 Views
joanxie
NXP TechSupport
NXP TechSupport

Only way to make it work is to change the HSSETTLE value during streaming.

> what do you mean? do you mean need to set hssettle in the dts to 0x30,when streaming the video, you need change the hssettle to 0x5 and 0x3? 

 

0 Kudos
Reply
2,661 Views
artsiomstaliaro
Contributor IV
I mean that during video streaming (v4l2-ctl application with /dev/video0)
to get a stable FPS I need to do:
devmem2 0x32E40024 w 0x5000001F
devmem2 0x32E40024 w 0x3000001F
0 Kudos
Reply
2,609 Views
joanxie
NXP TechSupport
NXP TechSupport

when you set 0x32E40024 during video streaming, you need measure what clock you can get, then to check the timing settings, and I still don't know how you get stable video, you set 0x30 in the dts, then set 0x32E40024 to 0x5000001F,  after that, you need set 0x32E40024 to 0x3000001F again? 

0 Kudos
Reply