Does orin MIPI CSI need to set Hsync and Vsync?

Does orin MIPI CSI need to set Hsync and Vsync?

No suppose don’t need it. Have a check the sensor programing for sensor driver implementation.

https://docs.nvidia.com/jetson/archives/r35.3.1/DeveloperGuide/text/SD/CameraDevelopment/SensorSoftwareDriverProgramming.html

我们目前的现象很奇怪,在 max96712 上接了 4 个摄像头,当使用 vlc 只进入/dev/video0 没有问题;但,当进入 /dev/video1 到 /dev/video3 任意一次,再次进入 /dev/video0 ,就 kernel log提示:
[2023/5/17 15:20:32] [ 337.125457] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_open: VI channel not found for stream- 2 vc- 1,csi_port- 2
[2023/5/17 15:20:32] [ 337.125956] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: successfully reset the capture channel
[2023/5/17 15:20:35] [ 339.647864] tegra-camrtc-capture-vi tegra-capture-vi: uncorr_err: request timed out after 2500 ms
[2023/5/17 15:20:35] [ 339.648178] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: attempting to reset the capture channel
[2023/5/17 15:20:35] [ 339.648713] (NULL device *): vi_capture_control_message: NULL VI channel received
[2023/5/17 15:20:35] [ 339.648965] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_close: Error in closing stream_id=2, csi_port=2
[2023/5/17 15:20:35] [ 339.649304] (NULL device *): vi_capture_control_message: NULL VI channel received
[2023/5/17 15:20:35] [ 339.649542] t194-nvcsi 13e40000.host1x:nvcsi@15a00000: csi5_stream_open: VI channel not found for stream- 2 vc- 1,csi_port- 2
[2023/5/17 15:20:35] [ 339.650088] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: successfully reset the capture channel

这时,进入 /dev/video1~/dev/video3 都没有问题。
请问这个是 mipi csi2 的时序问题吗?

Using below command to check each device.

v4l2-ctl --set-fmt-video=width=1920,height=1080 --set-ctrl bypass_mode=0 --stream-mmap -d /dev/videoX

vlc or v4l2-ctl or gst-launch-1.0 这三种工具,我都用过,都是一样的现象

From the symptom suppose it could be the max96712 didn’t reset well cause the problem.

看现象,有点不像呀;除了 video0 外,其他都正常,另,上面的现象还有一个没有说,就是 video0 不能独立打开时,不关闭该 vlc,再去用另一个实例程序 vlc 去打开 video1~video3 任意一个 摄像头,都能把 video0 的图像带出来,让之前的 vlc video0 同时也正常显示;即,在这时 两个 vlc 实例程序都正常分别显示 video0 以及 另一个 video1~video3 任意的摄像头图像。

I still suspect it could be the max96712 problem cause the problem.

请问,下面的配置有问题吗?
我的配置是:

				mclk_khz = "24000";
				num_lanes = "4";
				tegra_sinterface = TEGRA_SINTERFACE;
				phy_mode = "DPHY";
				discontinuous_clk = "no";
				dpcm_enable = "false";
				cil_settletime = "0";
				dynamic_pixel_bit_depth = "16";
				csi_pixel_bit_depth = "16";
				mode_type = "yuv";
				pixel_phase = "uyvy";  //yuyv uyvy



				active_w = "2480";
				active_h = "1125";
				readout_orientation = "0";
				line_length = "2480";
				inherent_gain = "1";


				pix_clk_hz = "148500000";
				serdes_pix_clk_hz = "594000000";
				                     
				gain_factor = "10";
				min_gain_val = "0"; /* dB */
				max_gain_val = "300"; /* dB */
				step_gain_val = "3"; /* 0.3 */
				default_gain = "0";
				min_hdr_ratio = "1";
				max_hdr_ratio = "1";
				framerate_factor = "1000000";
				min_framerate = "30000000";
				max_framerate = "30000000";
				step_framerate = "1";
				default_framerate = "30000000";
				exposure_factor = "1000000";
				min_exp_time = "59"; /*us, 2 lines*/
				max_exp_time = "33333";
				step_exp_time = "1";
				default_exp_time = "33333";/* us */
				embedded_metadata_height = "0";

时序图:

@ShaneCCC 请问我上面的配置有问题吗?

I don’t see any problem in the dts file.

我更新了 camera firmware,打了 trace log ,请帮分析一下,打不开的原因,谢谢!

在这里
pix_clk_hz = 67777777;
serdes_pix_clk_hz = 333333333;

luk-adu510_2023-06-02_14_49_23.log (1.2 MB)

Below no match tell the package output vc-id = 3 payload. Looks like this sensor output may vc-id frame to NVCSI/VI.
However suppose your design doesn’t virtual channel support?

[2023/6/2 14:49:38]      kworker/0:1-4559    [000] ....   943.912640: rtcpu_vinotify_event: tstamp:30081174997 cch:-1 vi:1 tag:CHANSEL_NOMATCH channel:0xc4 frame:0 vi_tstamp:962582219296 data:0x00000000000003c9

BTW, have confirm the embedded data line to set correct value of embedded_metadata_height

不是的,是有4 个 虚拟通道,对应4个摄像头;

embedded_metadata_height ?

Do you open multiple cameras simultaneously?
Could you check if any CHANSEL_NOMATCH message while open single camera.

Check below link for embedded_metadata_height
https://elinux.org/Jetson/l4t/Camera_BringUp

是的,也有这个消息,下面是可以打开摄像头的log
luk-adu510_2023-06-02_14_48_19.log (984.8 KB)

If this trace log is collect by opening single camera that tell the max9xx output more than one channel data to MIPI that shouldn’t allow.

不是的,开机过程中 kernel 直接配置 串行器跟解串器输出图像数据;之后不在对串行器跟解串器进行操作,一直持续输出图像数据。