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.
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?
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?
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.
---- 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.
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?
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.