Custom CSI-2 Sensor on TX1 Port-A

Hi,

we have a problem with a custom camera design that uses port-A of the CSI-2 interface of a TX1.
We use L4T-24.2.

We have a custom camera design, where we use Port-A of the CSI-2 interface of the TX1 that does not work properly. The LP-11, LP-01 and LP-00 levels look good. For the HS-0 and HS-1 levels it looks like the HS termination is not active in HS mode.

As an experiment, we have changed the e3326 Camera module to use CSI port-A instead of C and changed the devicetree entries:
/host1x/vi/ports/port@0/endpoint/csi-port to 0,
/host1x/i2c@546c0000/ov5693_c@36/ports/port@0/endpoint/csi-port to 0,
/plugin-manager/fragment-e3326@0/override@6/overlay/csi-port to 0.

With that camera module and the changed devicetree we expect that the HS-termination is enabled once we leave LP mode and enter HS mode, but that is not the case.

We also changed one of our own prototypes to use port-C and changed the device-tree as needed and it looks better. The termination is enabled but it complains about line length and so.

My question is:
What are the steps needed to get the e3326 patched camera module to work.

This is very important to us, as it shows us a symptom and we would like to understand the configuration options for CSI-2 on the Tegra X1 platform.

regards,
Michael

Not clear your question. E3326 is reference sensor and it must work well?

We have a custom camera design, where we use Port-A of the CSI-2 interface of the TX1 that does not work properly.

As an experiment, we have changed the e3326 Camera module to use CSI port-A instead of C and changed the devicetree entries:
/host1x/vi/ports/port@0/endpoint/csi-port to 0,
/host1x/i2c@546c0000/ov5693_c@36/ports/port@0/endpoint/csi-port to 0,
/plugin-manager/fragment-e3326@0/override@6/overlay/csi-port to 0.

What would be the steps needed to get the e3326 patched camera module to work?

regards
Michael

If you want to get e3326 working for the csi port A you need HW wire jump to CSIA from CSIC, and modify the “csi-port” to 0 in device tree the apply the dtb by flash.sh from r28.1

We have a custom camera design, where we use Port-A of the CSI-2 interface of the TX1 that does not work properly.

As an experiment, we have allready changed the e3326 Camera module to use CSI port-A instead of C.
We did this by cutting the connections from the camera to CSI port-C and rewire the camera to CSI port-A.

We also changed the devicetree entries:
/host1x/vi/ports/port@0/endpoint/csi-port to 0,
/host1x/i2c@546c0000/ov5693_c@36/ports/port@0/endpoint/csi-port to 0,
/plugin-manager/fragment-e3326@0/override@6/overlay/csi-port to 0.

On port-A the TX1 does not seem to enable the “high speed termination”, which is important for the hight-speed transfer.

Are there any extra steps necessary to get our modified e3326 camera module to work?

regards
Michael

Why do we need r28.1?
Is the CSI-Interface port-A NOT properly working in r24.2, but is working in r28.1?

The CSI portA are working well both with 24.2 and 28.1, ignore my flash command if you are using 24.2
So your problem is CSI-A not working on customize carrier board, but working if connect to CSI-C?

---- Introduction:
In this post I have linked in some pictures. If you are asked for a password, please enter “password” as the password.

We have created a custom adapter for the NVidia Jetson-TX1 baseboard.

---- Custom camera adapter:
The following picture shows the adapter sitting on the NVidia carrier.
The camera itself is connected via the white flex-cable on the right.
It is intended as a development platform of the camera module you can not see on the picture.
Customers will use this as a reference to use the TX1 or TX2 module and attach the camera(not shown on the picture) to their custom carrier board.

https://owncloud.mycable.de/owncloud/public.php?service=files&t=7ab4607e7acfea2e457903e62a33883e

We have a Version with the csi-lanes routed to csi-A, which does not work and
we have a version with the csi-lanes routed to csi-C, which does work.

---- Modified NVidia E3326 camera module
Here is a picture of the modified NVidia e3326 camera modules bottom side:
https://owncloud.mycable.de/owncloud/public.php?service=files&t=4a9eea9a83e5ad9184ebf162703cc451

Camera routed to csi-A (modified module) does not work,
camera routed to csi-C (UNMODIFIED) does work.

The following picture shows the modified camera module sitting on the NVidia carrier board.
https://owncloud.mycable.de/owncloud/public.php?service=files&t=b0a29c4ccb5a8faecf7f2231795d1114

---- Our Problem:
We now have a custom adapter (see Custom camera adapter) that uses csi-c but as our customers may attach more than one camera, we need a solution that uses csi-ports other than csi-c. That is why I insist so much on using csi-a.

What’s the user name?

I have fixed the links, so that no user is required, just the password.

Hi Michael,

Your twist wires for CSI signals are not suitable for high speed signals. They are too long and the impedance can not be guaranteed. That might be the root cause of failure on HS but pass on LP mode. Can you try fine copper wires as short as possible?

Hi Trumany,

our own adapter design does not work with propper impedance on port-a but does work with a wire patch and no propper impedance on port-c.

Please read my first post, which describes this in detail.

best regards,
Michael Stickel
Senior System Developer
mycable GmbH

OK, got it. Could you share the picture of your custom CSI-A version board schematic so as to confirm no hardware connection issue? Thanks.

Here are the schematics without customer name and frame:

TX1-Adapter with CSI-A used:
https://owncloud.mycable.de/owncloud/public.php?service=files&t=726cb5782993c5366db81819c6029a14

TX1-Adapter with CSI-C used:
https://owncloud.mycable.de/owncloud/public.php?service=files&t=18f2dca6184318dab40f4f5c1470bbe2

We added the eeprom, to be able to use the plugin manager, once it is documented.

best regards,
Michael Stickel
Senior System Developer
mycable GmbH

Here are the schematics without customer name and frame:

TX1-Adapter with CSI-A used:
https://owncloud.mycable.de/owncloud/public.php?service=files&t=726cb5782993c5366db81819c6029a14

TX1-Adapter with CSI-C used:
https://owncloud.mycable.de/owncloud/public.php?service=files&t=18f2dca6184318dab40f4f5c1470bbe2

We added the eeprom, to be able to use the plugin manager, once it is documented.

best regards,
Michael Stickel
Senior System Developer
mycable GmbH

Is your camera 4 lane type? You combined port A and port B together for it, right?

At the moment we use only two lanes,
but in the future we plan to use four lanes.

OK, then your schematic has no problem, it’s strange, seems hardware design is well.

@Michael
Does any kernel error message while failed.

And could you probe the mipi signal like below to compare the PortA with PortC if any different.

You can access the whole directory via:
https://owncloud.mycable.de/owncloud/public.php?service=files&t=565a8ae159cc5798a81f16fd87625aca
password is ‘password’

camera-on-port-a_live.dts and camera-on-port-c_live.dts are the devicetrees for e3326 on port-a and port-c. It is taken via dtc -I fs -O dts /proc/device-tree/.

scope-screens.zip contains the screenshots for four measurements and nvidia-tx1-csi.zip is the Lab-Notebook from the LeCroy Scope for these measurements.
The measurements are:

  • Single ended:
    Clock is measured differential ended(CH1/yellow) DP(CH2/red) and DN(CH3/blue) are measured single
    ended. The pods only support up to 500MHz, this is why the single ended signals do not look well.
    – e3326_port-a: Port-A
    – e3326_port-c: Port-C

  • D0 differntial ended:
    Only D0 is measured differential ended, to see the edges.
    – e3326_port-a_d0_differential: Port-A
    – e3326_port-c_d0_differential: Port-C

You can see that with port-C the edges are much sharper and the signal amplitude is within the correct ranges. With port-a, the signals are no clear 0 or 1 and the amplitude is much to high, maybe due to reflection, because the termination is not switched on. You can also see, that the LP11,LP01,LP00,HS0 sequence is the same in both cases.

This lets us assume, that is has something to do with software configuration. But what do we need to do other than setting csi-port on the vi and the camera endpoints.

If nessesary, I can take these measurements on our SDA 820, but it is currently allocated to another project.