Hello,
I am trying to interface Nvidia Jetson Nano with IMX415 image sensor module.
We have made custom carrier board for Nvidia Jetson Nano which is interface with custom IMX415 image sensor module.
For interfacing this module I took reference of IMX274 in Nano source.
I took reference of IMX274 for making driver and dtsi changes for IMX415.
Here I am getting two issue.
-
As we see given default dtsi’s for other sensors like IMX274,IMX219 there they had defined clock at follows
mclk_khz = “24000”;
I am operating IMX415 sensor in 37.125MHz.
because of that I defined clock frequency as follows
mclk_khz = “37125”;
but when I am inserting IMX415 driver its not taking this clock value.
Then I need to add following more declaration before defining mclk_khz.
#clock-cells = <0>;clocks = <&tegra_car TEGRA210_CLK_EXTERN3>,<&tegra_car TEGRA210_CLK_EXTERN3>;
clock-names = “extperiph1”,“pllp_grtba”;
mclk_khz = “extperiph1”;
After adding above lines in dtsi driver takes mclk_khz values of mclk_khz.
-
One more issue I have found out that in driver ,I try to check mclk_khz value as follow
mclk_name = pdata->mclk_name ?
pdata->mclk_name : “mclk_khz”;
pw->mclk = devm_clk_get(dev, mclk_name);
if (IS_ERR(pw->mclk)) {
dev_err(dev, “unable to get clock %s\n”, mclk_name);
return PTR_ERR(pw->mclk);
}
pr_info(“%s INCK %lu Hz supported clock frequency :-)”,func,clk_get_rate(pw->mclk));
But when I trying to print this value I am getting 24MHz clock .
[ 104.967944] tegracam registration start
[ 104.968031] imx415 parse dt
[ 104.968036] imx415_power_get
[ 104.968068] imx415_power_get INCK 24000000 Hz supported clock frequency :-)
[ 104.968282] imx415 6-001a: tegracam sensor driver:imx415_v2.0.6
[ 104.968285] tegracam registration stop
[ 104.968287] imx415 board setup start
[ 104.968289] imx415_board_setup
[ 104.968327] imx415_power_on
I define 37125KHz in dtsi then why I am getting 24000KHz clock ?
Do we need to operate our Image Sensor in 24MHz only ?
Please guide me on this.
It could be your configure been override.
Please dump the device tree to confirm it.
sudo dtc -I fs -O dts -o extracted_proc.dts /proc/device-tree
Hello,
Thanks a lot for reply.
Please check attached dts file of our main dtb.
There its shows mclk_khz = “37125”.
Thanks.
check 12032024_dts.txt (299.0 KB)
Remove below to try. If still have problem, you may need add message in the sensor driver to confirm it.
mclk_khz = “extperiph1”;
Hello,
Sorry for delayed response.
I was doing some trials on IMX415.
I removed above line from dtsi but I am getting same frequency only.
Actually now my IMX415 driver get successfully inserted.
I am getting video0 device.
Please check attached debug document.
15032024debug.txt (3.0 KB)
I can able to read all properties of Image Sensor IMX415 using v4l2 commands.
I can able to start the stream of Image sensor but unfortunately I am getting green screen.
After when I try to check signal of image sensor then I found that sensor is sending CSI data (I can able to observe data pulses on csi data lanes.) but csi clk is not there.
IMX415 is configured to operate in MASTER mode so its sending a data on CSI lanes.
but there CSI CLOCK is not observed.
Now I am not able to understand the CSI clock is suppose to be generated by IMX415 or Nano?
Please guide me on this.
Thanks for support.
The MIPI clock should generated by sensor.
Thanks
Hello,
Actually we are using CSI port4 (4/2lane) and CAM I2C for interfacing with Image sensor.
I currently using 2 lane only for checking purpose. Please check attached dtsi.
tegra210-camera-imx415.txt (9.6 KB)
I am not sure about port indexing of CSI port 4 lanes.
It might cause MIPI clock generation by sensor?
Please guide me on this.
Thanks for support.
Jetson is receiver for the output clocks problem please check with sensor vendor.
Thanks
Hello,
There is one more doubt I had that is as follows,
In Sensor Software Programing Driver guide there is mentioned
Is it related to CSI clock parameter?
If yes in my case IMX415 is master so do I need to set this parameter YES or NO?
Please guide me on this.
Thanks for support.
This setting depend on sensor configuration too.
Most of the sensor can configure as continuous or none-continuous clocks mode.
Thanks
Hello,
Sorry for delayed response.
Actually I was trying understand image sensor interface.
It might be slightly different from currect topic but I tried to few different checking.
I took ready made module of IMX219 image sensor.
Ideally Jetson Nano had default drivers for IMX219 so I was expecting that this module should work as its without any changes in OS.
According to that I flashed Jetson Nano SOM with default configuration from SDK.
Put that SOM in Nvidia Jetson Nano devkit and connect IMX219 module to CAM0 port.
As per expectation I am getting video0 device and it shows all sensor parameters through v4l2 commands.
But when I tried to read stream from that sensor it gives green screen.
As module is new so I am expecting it should be working.
I took default configuration of Jetson Nano OS so it should consist of IMX219 default driver but still with this things I am getting green screen.
Did I missed something while setting up Nano source because of that I am getting green screen from IMX219?
Might be because of this my IMX415 module also not giving proper streaming output?
Please guide me on this.
Please configure the imx219 by jetson-io again to try.
Hello,
I tried jetson-io utility.

but still imx219 module gives green screen output.
Thanks for support.
Please contact to Waveshare to give help.
Thanks
Hello,
Sorry for delayed reply.
Actually I am checking with Waveshare for module interface, that will take some.
Now we come back to our IMX415 interfacing issue.
As I told you I just had one query that when I declare mclk_khz in dtsi , before that I need to declare clock-name and other parameters.
In other reference image sensor dtsi (like IMX219,IMX274) there is no need of this declaration. There they have just define mclk_khz value.
Also I am assigning 37125 (37.125MHz) value to mclk_khz but when I read it while installing driver I am getting 24.0 MHz value for clock.
Please guide me on this.
Thanks for support.
Looks like the TEGRA210_CLK_CLK_OUT_3 unable to generate 37.125MHz.
Hello,
Actually I am not using MCLK which is not generated from SOM.
I am using using external oscillator which generate 37.125MHz clock.
Thanks.
Well, then how do you config it?
Suppose the external clock control by the sensor driver or output fixed clocks.
Thanks
Hello,
Its fixed +1.8V standard oscillator.
Thanks.
1 Like
Hello,
Any clue on query?
Thanks