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: DS90UB954-Q1

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

Hi Team,

We want to verify the pattern from DS90UB954 to our SOC, we have connected CSI-2 x2 lane to DS90UB954 from SOC, below is the setting we are doing for pattern generation and using gstreamer to stream video to HDMI, please confirm the below settings are fine or we need to modify the registers, 

i2cset -y 2 0x38 0x33 0x23

i2cset -y 2 0x38 0x1f 0x02

i2cset -y 2 0x38 0xB0 0x00
i2cset -y 2 0x38 0xB1 0x01
i2cset -y 2 0x38 0xB2 0x01 #enable pattern generator

i2cset -y 2 0x38 0xB1 0x02
i2cset -y 2 0x38 0xB2 0x33 #fixed color pattern, 8 color bars, block size of 5

i2cset -y 2 0x38 0xB1 0x03
i2cset -y 2 0x38 0xB2 0x1E #CSI Data Identifier (0x24 = RGB888, 0x2C = RAW12, 0x2B = RAW10

# 0xA00 = 2560 bytes (= 1280 pixels x2
i2cset -y 2 0x38 0xB1 0x04
i2cset -y 2 0x38 0xB2 0x0A #line size (15:8
i2cset -y 2 0x38 0xB1 0x05
i2cset -y 2 0x38 0xB2 0x00 #line size (7:0

# 0x140 = 320 bytes (= 2560/8
i2cset -y 2 0x38 0xB1 0x06
i2cset -y 2 0x38 0xB2 0x01 #bar size (15:8
i2cset -y 2 0x38 0xB1 0x07
i2cset -y 2 0x38 0xB2 0x40 #bar size (7:0

# 0x320 = 800 lines
i2cset -y 2 0x38 0xB1 0x08
i2cset -y 2 0x38 0xB2 0x03 #active lines per frame (15:8
i2cset -y 2 0x38 0xB1 0x09
i2cset -y 2 0x38 0xB2 0x20 #active lines per frame (7:0

# 0x33F = 831 (VESA Standard
i2cset -y 2 0x38 0xB1 0x0a
i2cset -y 2 0x38 0xB2 0x03 #total lines per frame (15:8
i2cset -y 2 0x38 0xB1 0x0b
i2cset -y 2 0x38 0xB2 0x3F #total lines per frame (7:0

# 10^9/(60x831x10 = 2006 = 0x7D6
i2cset -y 2 0x38 0xB1 0x0c
i2cset -y 2 0x38 0xB2 0x07 #line period (15:8
i2cset -y 2 0x38 0xB1 0x0d
i2cset -y 2 0x38 0xB2 0xD6 #line period (7:0

# 0x21 = 33 (VESA Standard
i2cset -y 2 0x38 0xB1 0x0e
i2cset -y 2 0x38 0xB2 0x21 #vertical back porch

# 0x0A = 10 (VESA Standard
i2cset -y 2 0x38 0xB1 0x0f
i2cset -y 2 0x38 0xB2 0x0A #vertical front porch

i2cset -y 2 0x38 0xB1 0x10
i2cset -y 2 0x38 0xB2 0x00 #1st byte of fixed color

i2cset -y 2 0x38 0xB1 0x11
i2cset -y 2 0x38 0xB2 0x00 #2nd byte of fixed color

i2cset -y 2 0x38 0xB1 0x12
i2cset -y 2 0x38 0xB2 0xFF #3rd byte of fixed color

gst-launch-1.0 v4l2src  device=/dev/video12 ! 'video/x-raw,format=(string)YUY2,width=1280,height=720' ! autovideosink

  • Hi Pradeep, 

    Based on what I saw: 1280x720 active resolution, YUV422 8-bit. 

    What is the FPS that you are looking to achieve? 

    Thanks, 

    Sally 

  • Hi Sally,

    We need 30FPS to check pattern.

    Please verify below register configuration for UB954 Deserializer, alias address for serializer is 0x74 and camera alias address is 0x10 in 7bit format

    i2cset -y 2 0x38 0x4C 0x01
    i2cset -y 2 0x38 0x6D 0x7c
    i2cset -y 2 0x38 0x58 0x5E
    i2cset -y 2 0x38 0x33 0x23
    i2cset -y 2 0x38 0x1F 0x02
    i2cset -y 2 0x38 0x5D 0x30
    i2cset -y 2 0x38 0x65 0xe8
    i2cset -y 2 0x38 0x5E 0x20
    i2cset -y 2 0x38 0x66 0x20
    i2cset -y 2 0x38 0x21 0x04
    i2cset -y 2 0x38 0x20 0x20
    i2cset -y 2 0x38 0x0F 0x7F
    i2cset -y 2 0x38 0x6E 0x01
    i2cset -y 2 0x38 0x6F 0x32
    i2cset -y 2 0x38 0x18 0x80
    i2cset -y 2 0x38 0x01 0x00

  • Hi Sally,

    Anyhow now no need of serializer or camera alias address to be set in the register for pattern generation in the deserializer

  • Hi Pradeep, 

    Here are the registers to set for 1280x720 (active), 30 fps, yuv422 8bit, vbp = 33, vfp = 10, vsync = 2, 8 bars with block size 4. (I noticed in your old code you had the total lines set at 800, but that didn't seem to match with the rest of the things you programmed. Let me know if I didn't get the settings right.

    0x01 0x00 PGEN_CTL
    0x02 0x34 PGEN_CFG
    0x03 0x1E PGEN_CSI_DI
    0x04 0x0A PGEN_LINE_SIZE1
    0x05 0x00 PGEN_LINE_SIZE0
    0x06 0x01 PGEN_BAR_SIZE1
    0x07 0x40 PGEN_BAR_SIZE0
    0x08 0x02 PGEN_ACT_LPF1
    0x09 0xD0 PGEN_ACT_LPF0
    0x0A 0x02 PGEN_TOT_LPF1
    0x0B 0xFD PGEN_TOT_LPF0
    0x0C 0x11 PGEN_LINE_PD1
    0x0D 0x05 PGEN_LINE_PD0
    0x0E 0x21 PGEN_VBP
    0x0F 0x0A PGEN_VFP

  • We are getting GRAY color stream but its not proper stream

  • Hi Pradeep, 

    Is it just the wrong color or is something else wrong? Could you be a little more specific.

    Thanks, 
    Sally 

  • Hi Sally,

    It's not just wrong colour it may be something else problem, please check the below deserializer setting

    i2cset -y 2 0x38 0x4C 0x01
    i2cset -y 2 0x38 0x6D 0x7c
    i2cset -y 2 0x38 0x58 0x5E
    i2cset -y 2 0x38 0x33 0x23
    i2cset -y 2 0x38 0x1F 0x02
    i2cset -y 2 0x38 0x5D 0x30
    i2cset -y 2 0x38 0x65 0xe8
    i2cset -y 2 0x38 0x5E 0x20
    i2cset -y 2 0x38 0x66 0x20
    i2cset -y 2 0x38 0x21 0x04
    i2cset -y 2 0x38 0x20 0x20
    i2cset -y 2 0x38 0x0F 0x7F
    i2cset -y 2 0x38 0x6E 0x01
    i2cset -y 2 0x38 0x6F 0x32
    i2cset -y 2 0x38 0x18 0x80
    i2cset -y 2 0x38 0x01 0x00

  • Hi Pradeep, 

    Can you tell me what the issue is or explain what is wrong with the output  so I can check these over? Without really knowing the issue, it's not easy to discern if something is set wrong for your setup. 

  • Hi Sally,

    We have configured Deseriliazer for pattern generation and capturing the frames and displaying the frames over HDMI in our processor, the issue here is we are not able to get the colour pattern with current settings of Deserializer,  We are using GStreamer for streaming the video to hdmi

    gst-launch-1.0 v4l2src  device=/dev/video12 ! 'video/x-raw,format=(string)YUY2,width=1280,height=720' ! autovideosink

    How we can identify the frames are generating in Deserializer, any debug registers are available to check or dump, 

    Issue:

    When we capture the video from deserializer we are getting GRAY video over HDMI, when we dump frames we are not getting any frames in dump 

  • If you are running patgen on the 954, check the port pass status in register 0x35. Are you getting port pass or no? 

  • Hi Sally,

    We are reading 0x35 register in 954 we are getting 0x00 always, i think we are not getting the port pass

  • Hi Pradeep, 

    Do you have local I2C access? Can you connec tthe board to our ALP and run a pattern from the pattern generator tab? 

  • Hi Sally,

    We don't have local I2C connection exposed in board, is APL available in Linux, Can you show us how you connect your board to APL and execute pat gen

  • HI Pradeep, 

    It is not in linux. You can download it on our TI website, but it requires local I2C access. Can you try just these 4 lines and tell me if you get an data output and check 0x36 please. 

    WriteI2C(DES,0x33,0x23) # CSI0 enable

    WriteI2C(DES,0xB0,0x00) # Indirect Pattern Gen Registers

    WriteI2C(DES,0xB1,0x01) # PGEN_CTL

    WriteI2C(DES,0xB2,0x01)