Hi All,
I am using LI IMX415 camera on NVIDIA Jetson Xavier NX production module . I have made the following changes to get the camera working @30fps.
-
Created mode0 node in dtsi file and set the properties .I am little bit skeptical about the mode properties which I set. So I am adding those propeties below.
line_length = 4400 pix_clk_hz = 297000000 framerate_factor = 1000000 min_framerate = 16670000 max_framerate = 31000000 step_framerate = 1 default_framerate = 30000000 num_lanes = 4 //to set 4lane mipi
2.In the driver code ,set register values as follows
reg:301Ch value:0h //All-pixel mode
reg:4001h value:3h //4lane
and set all other registers for 37.125Mhz and 891Mbps
I used gstreamer to validate the stream
Pipeline used :
gst-launch-1.0 -e -v nvarguscamerasrc ! ‘video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)30/1’ ! fakesink silent=false -v
Output:
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain ******* (fakesink0:sink) (1008 bytes, dts: 0:00:00.937064872, pts: 0:00:00.937064872, duration: none, offset: -1, offset_end: -1, freg:301Ch value:0h //all pixel modelags: 00000040 discont , meta: none) 0x7f74009090
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain ******* (fakesink0:sink) (1008 bytes, dts: 0:00:00.979476702, pts: 0:00:00.979476702, duration: none, offset: -1, offset_end: -1, flags: 00000000 , meta: none) 0x7f740091a0
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain ******* (fakesink0:sink) (1008 bytes, dts: 0:00:01.024773962, pts: 0:00:01.024773962, duration: none, offset: -1, offset_end: -1, flags: 00000000 , meta: none) 0x7f740092b0
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain ******* (fakesink0:sink) (1008 bytes, dts: 0:00:01.068995578, pts: 0:00:01.068995578, duration: none, offset: -1, offset_end: -1, flags: 00000000 , meta: none) 0x7f740093c0
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain ******* (fakesink0:sink) (1008 bytes, dts: 0:00:01.115049380, pts: 0:00:01.115049380, duration: none, offset: -1, offset_end: -1, flags: 00000000 , meta: none) 0x7f740094d0
Above Line gets printed only 22 to 23 times every Second and the time stamp difference is approximately ~45ms where it should be ~33ms.This difference remains the same no matter what resolution we set in the pipeline.
camera specs:
Sensor Type: CMOS
Sensor Size: 1/2.8
Sensor Pixels: 8.40MP
Interface : 4-Lane MIPI
Can someone help me in isolating the issue?
Is there any other settings or parameters I need to change in the Driver or Device Tree to get this fixed?
Thanks