hi
I have IMX390 GMSL camera that works fine with LT32.6.1. After migrating to JetPack5.1.1 / L4T35.3.1, it gets error as below.
$ v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat=RG12 --set-ctrl bypass_mode=0 --stream-mmap --stream-count=1 --stream-to=imx390.raw -d /dev/video0
---- minicom ----
[ 75.483525] imx390 30-001a: Start streamming …
[ 75.483674] imx390 30-001a: imx390_write_table: channel 0,
[ 78.049569] tegra-camrtc-capture-vi tegra-capture-vi: uncorr_err: request timed out after 2500 ms
[ 78.049847] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: attempting to reset the capture channel
[ 78.050683] (NULL device *): vi_capture_control_message: NULL VI channel received
[ 78.050857] t194-nvcsi 13e10000.host1x:nvcsi@15a00000: csi5_stream_close: Error in closing stream_id=0, csi_port=0
[ 78.051095] (NULL device *): vi_capture_control_message: NULL VI channel received
[ 78.051260] t194-nvcsi 13e10000.host1x:nvcsi@15a00000: csi5_stream_open: VI channel not found for stream- 0 vc- 0
[ 78.051897] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: successfully reset the capture channel
[ 80.609351] tegra-camrtc-capture-vi tegra-capture-vi: uncorr_err: request timed out after 2500 ms
[ 80.609604] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: attempting to reset the capture channel
[ 80.610679] (NULL device *): vi_capture_control_message: NULL VI channel received
I also attched log from
$nvgstcapture-1.0
nvgstcapture.log (5.2 KB)
and
$ v4l2-ctl --all
v4l2-ctl.log (12.0 KB)
Note: when I2C read/write max9295, max9296 and IMX390 registers, it works fine.
Please help to have a look and suggest how to debug.
Thanks
hal.
Check below note for r35.x release.
Skew calibration is required if sensor or deserializer is using DPHY, and the output data rate is > 1.5Gbps.
An initiation deskew signal should be sent by sensor or deserializer to perform the skew calibration. If the deskew signals is not sent, the receiver will stall, and the capture will time out.
You can calculate the output data rate with the following equation:
Output data rate = (sensor or deserializer pixel clock in hertz) * (bits per pixel) / (number of CSI lanes)
hi ShaneCCC,
Below is the setting in dtsi:
mode0 {/mode IMX390_MODE_1920X1080_CROP_30FPS /
mclk_khz = “24000”;
num_lanes = “2”;
tegra_sinterface = “serial_a”;
vc_id = “0”;
discontinuous_clk = “no”;
dpcm_enable = “false”;
cil_settletime = “0”;
dynamic_pixel_bit_depth = “12”;
csi_pixel_bit_depth = “12”;
mode_type = “bayer”;
pixel_phase = “rggb”;
active_w = "1920";
active_h = "1080";
readout_orientation = "0";
line_length = "2200";
inherent_gain = "1";
pix_clk_hz = "74250000";
serdes_pix_clk_hz = "833333333";
gain_factor = "10";
min_gain_val = "0"; /* dB */
max_gain_val = "300"; /* dB */
step_gain_val = "3"; /* 0.1 */
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";
mclk_multiplier = "3.01";
};
the pixel clock is 74250000, 12 bit/pixel, and num_lanes is 2, so
output data rate = 74250000*12/2 = 445500000
which is less than 1.5Gbps.
In this case, is skew calibration still need? If so, how to perform the skew calibration?
Thanks,
Hal.
Remove the serdes_pix_clk_hz that would be higher priority.
lr75021:
serdes_pix_clk_hz
system
Closed
August 16, 2023, 5:19am
7
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.