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.
我们目前的现象很奇怪,在 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";
时序图:
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
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 直接配置 串行器跟解串器输出图像数据;之后不在对串行器跟解串器进行操作,一直持续输出图像数据。