Getting started guide for Auvidea J20 board

From RidgeRun Developer Wiki




Auvidea J20 board introduction

This wiki page provides useful instructions to start using the Auvidea J20 board for Jetson TX1. J20 provides access to the 6 two-lanes CSI ports available on Jetson TX1, this Auvidea board is connected to the camera port available in the Jetson devkit so there is not need of any special carrier board to use it.

Auvidea_TX1_line.JPG


Auvidea J20 board configuration and Setup

TX1

For each of the 6 input ports available in the J20 there is one clock and GPIO pin (reset for some cameras) available. The GPIO line may be controlled with the I2C port extender. We have tested two Pi camera models and both responded to i2cdetect.

Please make sure to run the following commands:

 sudo i2cset -f -y 1 0x77 3 0xfb	  # enable 1.8V power to the J20
 sudo i2cset -f -y 6 0x20 6 0x3e       # configure the outputs of the I2C port expander (low byte) - clock lines remain input, so there is no data collision
 sudo i2cset -f -y 6 0x20 7 0x33       # configure the outputs of the I2C port expander (high byte) 
 sudo i2cset -f -y 6 0x20 2 0xfe	  # write ones to all GPIO outputs and turn on LED (low byte)
 sudo i2cset -f -y 6 0x20 3 0xff	  # write ones to all GPIO outputs  (high byte)

After you have executed all those commands, the Pi camera should respond to I2C accesses.

Note: as R11, R12, R15, R16, R17, and R18 are installed (solder jumpers) do not enable the outputs of the corresponding pins of the I2C port expander. This possible could cause a hardware damage, as outputs drive against each other. So make sure the use the following 2 instructions from the list above.

 i2cset -f -y 6 0x20 6 0x3e		
 i2cset -f -y 6 0x20 7 0x33

If you want to modify the settings of the GPIOs to the 6 connectors just change the data in the following 2 commands:

  • GPIOs all 1:
 i2cset -f -y 6 0x20 2 0xfe
 i2cset -f -y 6 0x20 3 0xff	
  • GPIOs all 0:
 i2cset -f -y 6 0x20 2 0
 i2cset -f -y 6 0x20 3 0

Please note that the port expander does not always show up on i2cdetect. Please read the output register for a test.

i2cget -f -y- 6 0x20 2

I2C address translation:

  • Pi camera 1.3
 normal address: 0x36
 translated address: 0x34
  • Pi camera 2.1
 normal address: 0x64
 translated address: 0x12

Example: PiCamera 1.3 on J1_1

i2cdetect -y -r 0
    0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- 36 -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- —  

To disable the 1.8V power of the J20 run the following command. This will make invisible the J20 I2C expander and any camera connected to J20 board in the I2C bus.

i2cset -f -y 1 0x77 3 0xf9	# Disable 1.8V power to the J20. This command make the I2C expander and cameras connected to J20 invisible in the I2C bus

General observations:

  • The I2C expander is mapped to I2C Bus 6, Address 20.
  • The power LED on the J20 board is always ON. It doesn´t depends on the i2cset -f -y 1 0x77 3 0xfb command.

TX2

The I2C buses order has been changed for TX2, The I2C expander is mapped to I2C Bus 2, Address 20 and J20 power is mapped to I2C Bus 0, Address 77.

Please make sure to run the following commands for TX2:

sudo i2cset -f -y 0 0x77 3 0xfb  # enable 1.8V power to the J20
sudo i2cset -f -y 2 0x20 6 0x3e  # no data collisionrt expander (low byte) - clock lines remain input, so there is is no data collision
sudo i2cset -f -y 2 0x20 7 0x33  # configure the out puts of the I2C port expander (high byte) 
sudo i2cset -f -y 2 0x20 2 0xfe  # write ones to all GPIO outputs and turn on LED (low byte)
sudo i2cset -f -y 2 0x20 3 0xff  # write ones to all GPIO outputs (high byte)


If you want to modify the settings of the GPIOs to the 6 connectors just change the data in the following 2 commands:

  • GPIOs all 1:
 i2cset -f -y 2 0x20 2 0xfe
 i2cset -f -y 2 0x20 3 0xff	
  • GPIOs all 0:
 i2cset -f -y 2 0x20 2 0
 i2cset -f -y 2 0x20 3 0

Please note that the port expander does not always show up on i2cdetect. Please read the output register for a test.

i2cget -f -y- 2 0x20 2

Jetson TX1 I2C mapping on J20

We run a test with the Pi camera V1.3 & V2.1 to generate a map of the I2C bus, Device Address, J20 connector, and Device model. The following chart summarizes it.

J20-I2C-map
J20-I2C-map

Here is a diagram of the J20 expansion board that shows the complete I2C interface between the Jetson TX1 devkit and J20 board.

J20-I2C-diag
J20-I2C-diag

Jetson TX1 CSI inputs mapping on J20

Each block has 2 connectors:

  • J1 is connected to CSI-1
  • J2 is connected to CSI-2

There are 3 instances of J1 and J2.

J1_1: CSI-A : video0
J1_2: CSI-C : video2
J1_3: CSI-E : video4

J2_1: CSI-B : video1
J2_2: CSI-D : video3
J2_3: CSI-F : video5

Jetson Orin

The J20 in the Jetson Orin is found on the bus 2 (3180000.i2c), address 0x20. Even thought it is not shown when doing an i2cdetect on the bus.

You can check if it's there by doing:

~$ i2cget -f -y 2 0x20 2
0xfe

You can configure it with the following commands:

i2cset -f -y 2 0x20 6 0x3e
i2cset -f -y 2 0x20 7 0x33
i2cset -f -y 2 0x20 2 0xfe
i2cset -f -y 2 0x20 3 0xff

The mappings will be the following, for example for a IMX477 with a 0x1a address:

    /* Cameras get mapped as follows:
    +------+-----------------+---------+------------+
    | Port | Bus             | Address |  CSI port  |
    +------+-----------------+---------+------------+
    | J1_1 | 8 (31e0000.i2c) | 0x1a    |  CSI-A / 0 |
    +------+-----------------+---------+------------+
    | J1_2 | 2 (3180000.i2c) | 0x1a    |  CSI-C / 2 |
    +------+-----------------+---------+------------+
    | J1_3 | 1 (c240000.i2c) | 0x1a    |  CSI-E / 4 |
    +------+-----------------+---------+------------+
    | J2_1 | 8 (31e0000.i2c) | 0x18    |  CSI-B / 1 |
    +------+-----------------+---------+------------+
    | J2_2 | 2 (3180000.i2c) | 0x18    |  CSI-D / 3 |
    +------+-----------------+---------+------------+
    | J2_3 | 1 (c240000.i2c) | 0x18    |  CSI-F / 5 |
    +------+-----------------+---------+------------+
    */


For direct inquiries, please refer to the contact information available on our Contact page. Alternatively, you may complete and submit the form provided at the same link. We will respond to your request at our earliest opportunity.


Links to RidgeRun Resources and RidgeRun Artificial Intelligence Solutions can be found in the footer below.