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: Pattern gen (colorbar) 1920x1080 YUV422 10 bit setting

Part Number: DS90UB954-Q1

Hello,

I try to create colorbar for CSI test 

Can anyone tell me  registers setting Example for Pattern Generator on the 954

signal form is 1920x1080p  YUV422 10 bit  

thanks.

  • Hello,

    So I attached a script from the 954 datasheet from section 7.5.11.4.  

    WriteI2C(0x33,0x01) # CSI0 enable
    WriteI2C(0xB0,0x00) # Indirect Pattern Gen Registers
    WriteI2C(0xB1,0x01) # PGEN_CTL
    WriteI2C(0xB2,0x01)
    WriteI2C(0xB1,0x02) # PGEN_CFG
    WriteI2C(0xB2,0x33)
    WriteI2C(0xB1,0x03) # PGEN_CSI_DI
    WriteI2C(0xB2,0x24)
    WriteI2C(0xB1,0x04) # PGEN_LINE_SIZE1
    WriteI2C(0xB2,0x0F)
    WriteI2C(0xB1,0x05) # PGEN_LINE_SIZE0
    WriteI2C(0xB2,0x00)
    WriteI2C(0xB1,0x06) # PGEN_BAR_SIZE1
    WriteI2C(0xB2,0x01)
    WriteI2C(0xB1,0x07) # PGEN_BAR_SIZE0
    WriteI2C(0xB2,0xE0)
    WriteI2C(0xB1,0x08) # PGEN_ACT_LPF1
    WriteI2C(0xB2,0x02)
    WriteI2C(0xB1,0x09) # PGEN_ACT_LPF0
    WriteI2C(0xB2,0xD0)
    WriteI2C(0xB1,0x0A) # PGEN_TOT_LPF1
    WriteI2C(0xB2,0x04)
    WriteI2C(0xB1,0x0B) # PGEN_TOT_LPF0
    WriteI2C(0xB2,0x1A)
    WriteI2C(0xB1,0x0C) # PGEN_LINE_PD1
    WriteI2C(0xB2,0x0C)
    WriteI2C(0xB1,0x0D) # PGEN_LINE_PD0
    WriteI2C(0xB2,0x67)
    WriteI2C(0xB1,0x0E) # PGEN_VBP
    WriteI2C(0xB2,0x21)
    WriteI2C(0xB1,0x0F) # PGEN_VFP
    WriteI2C(0xB2,0x0A)

    In order to get the resolution the below registers will need to be updated.
    • Indirect register 0x03 should be changed to 0x19 which corresponds to the YUV422 data type
    • Indirect registers 0x04 and 0x05 should be changed to give a line length in bytes
    • Indirect registers 0x06 and 0x07 should be programmed to give the bar size in bytes
    • Indirect registers 0x08 and 0x09 should be set to give 1080 active lines per frame
    • Indirect registers 0x0A and 0x0B will need to be set to be greater than 1080 and may need to be set to a value compatible with the SoC
    • Indirect registers 0x0C and 0x0D can be used to set the frame rate
    • Indirect registers 0x0E and 0x0F can be used to set the front and back porch size, the SoC datasheet can give information about what these values should be

    A lot of information on how to program the pattern generator can be found in the 954 datasheet in section 7.5.11.  Be sure to follow the procedure for calculating the blocks per line and blocks per bar.  Also it should be known that YUV422 requires 5 bytes to encode data for 2 pixels.

    Regards,

    Nick

  • Nick ,thanks for your reply

    another question 

    for YUV422 12bit ,what value should be in register 0x03?

  • Hi,

    I apologize, the Data Type for YUV422 10-bit is actually 0x1F not 0x19 as I stated previously.  So assuming the virtual channel identifier being set to 0 is okay, the indirect register 0x03 should be set to 0x1F.

    Regards,

    Nick

  • Hi Nick 

    thank for correction 

    Can you provide RGB RAW 10bit  setting value for IA register 0x03 

    Is the same with default setting 0x24?

  • Hi,

    RAW 10 data type identifier is 0x2B.

    Regards,

    Nick

  • sorry ,Nick

    I'm not familiar with video format.

    in RAW 10bit format ,how many byte  to encode data for  pixels?

  • Packets are 5 bytes of data for 4 pixels.

    Regards,

    Nick

  • hi Nick

    Can you tell me All the data type value in "PGEN_CSI_DT"

    there are few information in the datasheet.

    Thanks.

  • Hi,

    There are quite a few data formats supported, I don't know if giving them all out would really be of any help.  Is there a more specific issue you are still having that I can try to help with?

    Regards,

    Nick