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: Testpatterngenerator of the DS90UB954-Q1 in RGB888

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

Dear Team,

i read in all the other forum entries about how to fix the issue with the test-patterngenerator for the RGB888.

I didn't found a solution. Neither in the python scripts from the ALP nor here in the forum.

I can generate YUV-422, RAW10 in all resolutions, but if I configure it for the RGB888, the DS90UB954 stop immediately the CSI-output.

Can somebody of the TI-experts provide a valid and tested register setting for a resolution (1920p or 720p or something else) where the RGB-Pattern of the colobar is activated and the output works?

Best Regards and thanks in advance

PG

  • Hi Patric,

    Can you provide the following information? We can provide the register writes for the PatGen config.

    PATGEN Output   
       
    Horizontal Resolution 1920
    Vertical  Resolution 720
    Total Vertical Blanking  182
    Vertical Front Porch 2
    Vertical Back Porch 29
    Vertical Sync  151
    Frame Rate 52
    Video format RGB888
    Forward Channel Rate  4.16 Gbps

    Glenn 

  • Hi Glenn, 

    many thanks for answering.

    Here are my setting:

    Register    Data      Name
    0x33          0x01     CSI_PORT_en
    0x20          0x30     FWD_CTL1
    0x1F          0x00     CSI_PLL_CTL: 1.6 Gbps
    0x6D         0x38      Port_Config = forward anything, ignore errors; Mode CSI
    0x02          0x1C     General Config without parity
    0xB0         0x00      Indirect Pattern Gen Registers
    0x01          0x01     PGEN_CTL
    0x02          0x33     PGEN_CFG
    0x03          0x24     PGEN_CSI_DI
    0x04          0x16     PGEN_LINE_SIZE1
    0x05          0x80     PGEN_LINE_SIZE0
    0x06          0x02     PGEN_BAR_SIZE1
    0x07          0xD0     PGEN_BAR_SIZE0
    0x08          0x02     PGEN_ACT_LPF1
    0x09          0xD0     PGEN_ACT_LPF0
    0x0A          0x03     PGEN_TOT_LPF1
    0x0B         0x86      PGEN_TOT_LPF0
    0x0C         0x08      PGEN_LINE_PD1
    0x0D         0x54      PGEN_LINE_PD0
    0x0E         0x02      PGEN_VBP
    0x0F          0x1D    PGEN_VFP
    0x10          0xAA     PGEN_COLOR0
    0x11          0x33      PGEN_COLOR1
    0x12          0xF0     PGEN_COLOR2
    0x13          0x7F     PGEN_COLOR3
    0x14          0x55     PGEN_COLOR4
    0x15          0xCC    PGEN_COLOR5
    0x16          0x0F     PGEN_COLOR6
    0x17          0x80     PGEN_COLOR7

    I tried a lot of settings. I figured out, that as soon as I set register PGEN_CSI_DI to 0x24, the output stops putting out data.

    Missed I an importenat register?

    If I set the register to YUV (0x1E) or RAW8 I get some testpattern in crazy colors. But I get data!

    I need your help.

    Best regards

    PG

  • Hi Patrick,

    I think the calculations might be off on your patgen but need the exact video you are trying to send. I am assuming you are using you are using 4 Gbps for this set-up.

    You should make changes to the patgen before turning it on. Move register 0x01=0x01 (PGEN_CTL) to the end of the sequence.

    This is what the calculation using the assumption of 4Gbps

    PATGEN Output   
       
    Horizontal Resolution 1920
    Vertical  Resolution 720
    Total Vertical Blanking  182
    Vertical Front Porch 29
    Vertical Back Porch 2
    Vertical Sync  151
    Frame Rate 52
    Video format RGB888

    Is this correct? If not, can you please update the table below?

    PATGEN Output   
       
    Horizontal Resolution
    Vertical  Resolution
    Total Vertical Blanking 
    Vertical Front Porch
    Vertical Back Porch
    Vertical Sync 
    Frame Rate
    Video format
    Forward Channel Rate 
  • Hi Glenn,

    I tried many other resolutiuons. I even enabled the patgen at the end of the setting. I enabled it at the beginning and many other varieants.

    At the moment the resolutuins is for me secondary.

     At the moment I only want to have an active RGB888 output. This IC always disable the mipi output, when I activate the RGB888. In YUV it works in RAW it works, but not in RGB. 

    I would be very happy, if you can provide me a  setting what the IC accept to activate the mipi output (I am so exhausted now, that I do not care aboute the resolution. It is for me unimportant. I only want to have an sctive output in RGB).

    If you can provide 1920x1080p @30Hz it would for me ok. But, as I said, it is secondary. I need a valid setting for the IC, maybe there is some issue in the indirect register of the other setting for 0xB0. 

    Maybe there is some fixing needed or I had to set some hidden divider or multiplier of the clock or something else.

    Maybe in the Main settings go something wrong, but then I ask why YUV are working.

    Best regards and many thanks in advance

    PG

  • Hi Patrick, 

    Glenn asked me to bring this up with our EVMs and I was able to get the following video data from CSI port 0: 

    Below is the script that was used: 

    devAddr = 0x60 #check deserializer address 
    
    board.WriteI2C(devAddr,0x02,0x1C)
    board.WriteI2C(devAddr,0x1F,0x00) # Set timing register to 1600Mbps
    board.WriteI2C(devAddr,0x6D,0x38) 
    # 4 lane mode, discontinuous clock enable CSI  
    board.WriteI2C(devAddr,0x33,0x01)
    board.WriteI2C(devAddr,0x20,0x30)
    
    
    board.WriteI2C(devAddr, 0xB0, 0x02)
    board.WriteI2C(devAddr, 0xB1, 0x02)
    board.WriteI2C(devAddr, 0xB2, 0x33)                # PGEN_CFG 
    board.WriteI2C(devAddr, 0xB2, 0x24)                # PGEN_CSI_DI
    board.WriteI2C(devAddr, 0xB2, 0x16)                # PGEN_LINE_SIZE1
    board.WriteI2C(devAddr, 0xB2, 0x80)                # PGEN_LINE_SIZE0
    board.WriteI2C(devAddr, 0xB2, 0x02)                # PGEN_BAR_SIZE1
    board.WriteI2C(devAddr, 0xB2, 0xD0)                # PGEN_BAR_SIZE0
    board.WriteI2C(devAddr, 0xB2, 0x04)                # PGEN_ACT_LPF1
    board.WriteI2C(devAddr, 0xB2, 0x38)                # PGEN_ACT_LPF0
    board.WriteI2C(devAddr, 0xB2, 0x04)                # PGEN_TOT_LPF1
    board.WriteI2C(devAddr, 0xB2, 0x65)                # PGEN_TOT_LPF0
    board.WriteI2C(devAddr, 0xB2, 0x0B)                # PGEN_LINE_PD1
    board.WriteI2C(devAddr, 0xB2, 0x93)                # PGEN_LINE_PD0
    board.WriteI2C(devAddr, 0xB2, 0x21)                # PGEN_VBP
    board.WriteI2C(devAddr, 0xB2, 0x0A)                # PGEN_VFP
    board.WriteI2C(devAddr, 0xB1, 0x01)
    board.WriteI2C(devAddr, 0xB2, 0x01) #Enable CSI0

    Please let us know if there are any remaining issues regarding pattern generator. 

    Best,

    Zoe