i.MX8MP MIPI CSI2 bandwidth limitation

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

i.MX8MP MIPI CSI2 bandwidth limitation

跳至解决方案
2,800 次查看
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.

 

标记 (2)
0 项奖励
回复
1 解答
2,761 次查看
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

 

在原帖中查看解决方案

8 回复数
2,777 次查看
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 项奖励
回复
2,773 次查看
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 项奖励
回复
2,762 次查看
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,718 次查看
artsiomstaliaro
Contributor IV

value 0x30 works fine for 1.5Gbps/lane

0 项奖励
回复
2,698 次查看
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 项奖励
回复
2,669 次查看
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 项奖励
回复
2,666 次查看
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 项奖励
回复
2,614 次查看
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 项奖励
回复