Virtual Channels

Hello,

I am working on the following setup:

  • 2 cameras 8MPx 30fps RAW12
  • 1 deserializer max9296, sending both RAW12 streams to MIPI CSI PORT A, using 4 lanes and virtual channels (Camera 1 = VC0, Camera 2 = VC1)

I am using Double Pixel mode in SerDes to optimise bandwidth (in serializer, process 12bits as 24bits. In deserializer, unpack 24bit as 12bit)

Processing only one stream is working
But while processing 2 streams at the same time, it seams that we loose some mipi packets

image

Here is my device tree configuration:

					mode0
					{
						mclk_khz = "2500000";
						num_lanes = "4";
						tegra_sinterface = "serial_a";
						vc_id = "0";
						phy_mode = "DPHY";
						discontinuous_clk = "no";
						dpcm_enable = "false";
						cil_settletime = "0";

						dynamic_pixel_bit_depth = "12";
						csi_pixel_bit_depth = "12";
						mode_type = "bayer";
						pixel_phase = "grbg";

						active_w = "3848";
						active_h = "2168";
						readout_orientation = "0";
						line_length = "4440";
						inherent_gain = "1";
						//mclk_multiplier = "9.33";
						pix_clk_hz = "156000000";
						serdes_pix_clk_hz = "500000000";

						gain_factor = "1";
						min_gain_val = "0";
						max_gain_val = "1";
						step_gain_val = "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 = "17";
						max_exp_time = "8333";
						step_exp_time = "1";
						default_exp_time = "3330";

						embedded_metadata_height = "0";
					};

Here is the trace logs when running the 2 streams
trace.log (3.0 MB)

boosting the clocks does not help.
I calculated the bandwidth, and should be okay for 2 cameras.

Do you have any idea ?
Thanks

Hi @Mylou

You are getting a CHANSEL_NOMATCH, looks like the capture subsystem is expecting RAW12, but sometimes it get an unexpected format.

kworker/2:0-25      [002] ....   247.839700: rtcpu_vinotify_event: tstamp:8396028168 cch:-1 vi:0 tag:CHANSEL_NOMATCH channel:0x41 frame:0 vi_tstamp:268667599104 data:0x0000000000000589

Can you make sure that no metadata is enabled from the sensor?
Also, I suggest you to check serdes status registers to see if there’s an error like an overflow or something.

Regards,

Enrique Ramirez
Embedded SW Engineer at RidgeRun
Contact us: support@ridgerun.com
Developers wiki: https://developer.ridgerun.com
Website: www.ridgerun.com

Hello and thanks for the answer!
I found the issue, the data rate on deserializer output was too small. I set it to 2GB and it is working now.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.