AnsweredAssumed Answered

when input is DVI source,adv7612 output RGB 16-235 fixedly

Question asked by gubuyu on Sep 4, 2016
Latest reply on Sep 7, 2016 by gubuyu

  I am using an ADV7612 to receive HDMI/DVI signals an ADV7511 to transfer DVI signals. if  video source is DVI signals(RGB 0-255) ,adv7612  always output RGB 16-235 format image,and it could not been changed by configuration.  


I refer to the script ADV7612-VER.3.0c.txt to set ADV7612 and ADV7511.The settings is as shown below.

    printf("Config ADV7612 to fit: 1080p In - 24-bit RGB 444 Out\n\r");

    PSIIC0_Write(0x98, 0xFF, 0x80); //I2C Reset                                               

    PSIIC0_Write(0x98, 0xF4, 0x80); //Config CEC slave address

    PSIIC0_Write(0x98, 0xF5, 0x7C); //Config INFOFRAME slave address

    PSIIC0_Write(0x98, 0xF8, 0x4C); //Config DPLL slave address

    PSIIC0_Write(0x98, 0xF9, 0x64); //Config KSV slave address                                

    PSIIC0_Write(0x98, 0xFA, 0x6C); //Config EDID slave address                               

    PSIIC0_Write(0x98, 0xFB, 0x68); //Config HDMI slave address                               

    PSIIC0_Write(0x98, 0xFD, 0x44); //Config CP slave address                                                                     

    PSIIC0_Write(0x98, 0x01, 0x06); //Prim_mode = 110b HDI-GR

    PSIIC0_Write(0x98, 0x02, 0xF2); //Auto CSC, RGB out, Set RGB full grade 0-255

    PSIIC0_Write(0x98, 0x03, 0x40); //24 bit SDR 444 Mode 0

    PSIIC0_Write(0x98, 0x05, 0x28); //AV Codes Off                                            

    PSIIC0_Write(0x98, 0x06, 0xA0); //Invert on VS,HS pins

    PSIIC0_Write(0x98, 0x0B, 0x44); //Power up part                                           

    PSIIC0_Write(0x98, 0x0C, 0x42); //Power up part                                           

    PSIIC0_Write(0x98, 0x14, 0x7F); //Max Drive Strength                                      

    PSIIC0_Write(0x98, 0x15, 0x80); //Disable Tristate of Pins                                

    PSIIC0_Write(0x98, 0x19, 0x83); //LLC DLL phase(0-31,set 3)

    PSIIC0_Write(0x98, 0x33, 0x40); //LLD DLL MUX enable

    PSIIC0_Write(0x44, 0xBA, 0x00); //close HDMI freerun

    PSIIC0_Write(0x64, 0x40, 0x81); //Disable HDCP 1.1 features 

    PSIIC0_Write(0x4C, 0xB5, 0x03); //Setting MCLK to 512Fs

    PSIIC0_Write(0x68, 0x9B, 0x03); // ADI recommended setting

    PSIIC0_Write(0x68, 0x00, 0x08); //Set HDMI Input Port A (BG_MEAS_PORT_SEL = 001b)

    PSIIC0_Write(0x68, 0x02, 0x03); //Enable Ports A & B in background mode

    PSIIC0_Write(0x68, 0x83, 0xFC); //Enable clock terminators for port A & B             

    PSIIC0_Write(0x68, 0x6F, 0x0C); //ADI recommended setting                         

    PSIIC0_Write(0x68, 0x85, 0x1F); //ADI recommended setting                         

    PSIIC0_Write(0x68, 0x87, 0x70); //ADI recommended setting                         

    PSIIC0_Write(0x68, 0x8D, 0x04); //LFG Port A                                      

    PSIIC0_Write(0x68, 0x8E, 0x1E); //HFG Port A

    PSIIC0_Write(0x68, 0x1A, 0x8A); //unmute audio                                  

    PSIIC0_Write(0x68, 0x57, 0xDA); //ADI recommended setting                       

    PSIIC0_Write(0x68, 0x58, 0x01); //ADI recommended setting                       

    PSIIC0_Write(0x68, 0x03, 0x98); //DIS_I2C_ZERO_COMPR                            

    PSIIC0_Write(0x68, 0x75, 0x10); //DDC drive strength                            

    PSIIC0_Write(0x68, 0x90, 0x04); //LFG Port B                                    

    PSIIC0_Write(0x68, 0x91, 0x1E); //HFG Port B


  However i do not enable limited RGB range.output RGB range i needed is 0-255.EDID information is 128 byte. I use EEditez tool to generate EDID. How to configure adv7612 when input is DVI source ?  Moreover,I read 2 registers of adv7612.the value of them confuse me ! 

adress 0x44 (CP)   register adress 0xF4   value 0x00      //it showes CSC is bypass

adress 0x68 (HDMI)   register adress 0x53   value 0x00  //it showes RGB limited (16-235)


I tried to change some registers value,but it has no effect.

      INP_COLOR_SPACE = 0001;// forces RGB (0-255) input color space

      RGB_OUT = 1; //sets output to RGB

     OP_656_RANGE = 0; //enable full output range


  I find some information in page 112 of UG-216,as shown below.what does Q[1:0] mean? where could i find it explanation? I tried to setting QZERO_ITC_DIS

and QZERO_RGB_FULL to 1,but it still has no effect.


      I red adress 0x68 (HDMI) ,  register adress 0x53,   value 0x00,it means output format is RGB limited.


In page 110 of UG-216 ,I find the statement "

HDMI Automatic CSC Operation
   In HDMI mode, the ADV7612 provides an automatic CSC function based on the AVI InfoFrame sent from the source. The flowchart in
Figure 33 shows the mechanism of the ADV7612 auto CSC functionality in HDMI mode."

  Q[1:0]] is part of AVI InfoFrame Field.AVI InfoFrame is described in EIA/CEA-861 standard.It is defined in E-EDID. But it is not necessary for DVI video source to describe in EDID information . 128byte information(EDID) is enough for DVI source. Attachments is 128Byte EDID generated by EEditz tool.

  if I use HDMI mode and E-EDID (256Byte),the output is full RGB.

  Need I to add AVI infoframe in DVI  EDID ?  i tried this idea,no effect too,the output brokes down.

what is Q[1:0] default value when input is DVI signals ?


Please give me  any other useful and helpful ideas to output full RGB data, Thanks very much!