This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DS90UB954-Q1: Dual MIPI camera line Line-Concatenate Forwarding, reference code.

Part Number: DS90UB954-Q1
Other Parts Discussed in Thread: DS90UB953-Q1

Dear TI experts. I'm now trying to realize the dual camera display with dual DS90UB953-Q1 + IMX219 and DS90UB954-Q1 in Line concatenate forwarding mode.

The image size is 1024x1088 for the image of 2048x1088.

The MIPI speed from sensor is 768MHz (and 512MHz).

I am referring the code in the datasheet 8.4.28.6.1 and modified(corrected) the address and the value of address 0x72.

I can see the normal images from both ports, however, when line concatenating, the image is corrupted as below.

I think something is missing in the script.

Please show me the example code for the line-concatenate forwarding mode.

Below is the script to set the Tx, Rx, and the sensors.

The slave ID for Rx is changed to 0x3d.

----

#!/bin/bash

sudo i2cset -y 10 0x10 0x01 0x00 0x00 i # IMX219 streaming off

sudo i2cset -y 10 0x10 0x01 0x03 0x01 i # IMX219 SW reset

# sudo i2cset -y 10 0x10 0x01 0x00 b

# sudo i2cset -y 10 0x10 0x01 0x00 b

# sudo i2cset -y 10 0x10 0x00 0x00 b

sudo i2cset -y 10 0x3d 0x01 0x03 b # Rx Reset include registers ID change back to 0x30

sudo i2cset -y 10 0x30 0x01 0x03 b # Rx Reset include registers

sudo i2cset -y 10 0x30 0x00 0x7b b # Set Rx ID to 0x3d

#echo "xxxxx1xxxxx"

sudo i2cset -y 10 0x3d 0x4c 0x03 b       # port0(0x01) + port1(0x03) write to both cameras

sudo i2cset -y 10 0x3d 0x58 0x5a b # BCC_CONFIG 

sudo i2cset -y 10 0x3d 0x5c 0x30 b # SER ID

sudo i2cset -y 10 0x3d 0x02 0x1E b # General configuration

sudo i2cset -y 10 0x3d 0x0f 0x7f b # GPIO INPUT ENABLE

sudo i2cset -y 10 0x3d 0x18 0xe0 b # Frame Sync from GPIO 6

sudo i2cset -y 10 0x3d 0x6f 0xa8 b # BC_GPIO_CTL, GPIO3 for frame sync

#echo "xxxxx2xxxxx"

sudo i2cset -y 10 0x3d 0x1F 0x02 b # CSI_PLL CTL, 02:800MHz 1600MHz:00

sudo i2cset -y 10 0x3d 0x0C 0xff b       # Rx_PORT_CTL, all enable, port0(0xAB) + port1(0x96) bf(OK),be(NG)

# echo " set port 0 I2C enable and VC "

#sudo i2cset -y 10 0x3d 0x72 0xec b       # port0(0xE8) + port1(0xE4)

sudo i2cset -y 10 0x3d 0x4c 0x01 b       # write to port0 

sudo i2cset -y 10 0x3d 0x72 0xe8 b       # port0(0xE8)

# echo " set port 1 I2C enable and VC "

sudo i2cset -y 10 0x3d 0x4c 0x12 b       # write to port1 

sudo i2cset -y 10 0x3d 0x72 0xe8 b       # port0(0xED)

# echo " set port 0 & 1 I2C enable "

sudo i2cset -y 10 0x3d 0x4c 0x03 b       # write to both ports 

sudo i2cset -y 10 0x3d 0x33 0x21 b # 2lane, non continous clock, CSI enable

sudo i2cset -y 10 0x3d 0x21 0x3d b       # CSI0_SYNC_FORWARD, line concatenation 

sudo i2cset -y 10 0x3d 0x20 0x00 b # Forward port0 and port1 

#######

sudo i2cset -y 10 0x3d 0x4c 0x03 b       # port0(0x01) + port1(0x03) write to both cameras

sudo i2cset -y 10 0x3d 0x5d 0x20 b # SlaveID[0] for IMX219

sudo i2cset -y 10 0x3d 0x65 0x20 b # SlaveAlias[0] for IMX219

sudo i2cset -y 10 0x18 0x02 0x12 b # Tx Gneral_CFG, non-continous clock, 2lane, CRC enable

sudo i2cset -y 10 0x18 0x05 0x03 b # PLLCLK_CTRL, default value

echo "xxxxx3xxxxx"

####sudo i2cset -y 10 0x18 0x05 0x0b b # set 4Gbps

echo "xxxxx4xxxxx"

sudo i2cset -y 10 0x18 0x0E 0x87 b # GPIO3 output enable, input disable

echo "xxxxx5xxxxx"

sudo i2cset -y 10 0x18 0x0E 0x87 b # GPIO3 output enable, input disable

#echo "xxxxx6xxxxx"

sudo i2cset -y 10 0x10 0x01 0x00 0x00 i # IMX219 streaming off

sudo i2cset -y 10 0x10 0x01 0x03 0x01 i # IMX219 SW reset 

#sudo i2cset -y 10 0x10 0x01 0x00 b

#echo "xxxxx7xxxxx"

#sudo i2cset -y 10 0x10 0x01 0x00 b

#sudo i2cset -y 10 0x10 0x00 0x00 b

/home/pi/camera_i2c

sleep 1

/home/pi/camera_i2c

#------------------------------------------

#10c10

#< sudo i2cset -y 10 0x3d 0x4c 0x01 b

#---

#> sudo i2cset -y 10 0x3d 0x4c 0x03 b

#18,19c18,19

#< sudo i2cset -y 10 0x3d 0x0C 0xab b

#> sudo i2cset -y 10 0x3d 0x0C 0x96 b

#< sudo i2cset -y 10 0x3d 0x72 0xe8 b

#> sudo i2cset -y 10 0x3d 0x72 0xe4 b

----

I appreciate your kind support in advance.

est Regards,

NOMURA

  • Hi Nomura-san, 

    To help me understand more about your system could you answer some of my questions: 

    1. You have 2x 953's connected to the 954? 

    2. Can you see the images properly when using Round Robin forwarding with both 953's sending data? -> If this works, is it in continuous or non continuous clocking?

    3. What is the data lane speed and the # of lanes for each camera sensor? (e.g. 800 Mbps/lane)

    Thanks

    Sally 

  • Dear Sally-san.

    Thank you for your prompt reply.

    1. I am using 2x 953 connected to 954.

    2. I set concatenating and round robin enable at the same time. This was the critical. After disabling the round robin, I could see the dual camera image correctly.

    3. MIPI 2 lane for each. MIPI clock speed is slower than 800MHz.

    Thank you very much for your adequate advice to solve the problem.

    Best Regards,

    NOMURA

  • Hi Nomura-san, 

    Is it working now? 

    Thanks

    Sally