AnsweredAssumed Answered

settings of  adv7612+adv7511,and output of adv7511 not stable

Question asked by gubuyu on Aug 30, 2016
Latest reply on Oct 20, 2016 by gubuyu

Hi,

   I am using an ADV7612 to receive HDMI/DVI signals an ADV7511 to transfer DVI signals. After I configure two devices,ADV7612 works well,but adv7511 works  not well ! Sometimes the video is not being displayed on monitor. the video is not being displayed stably and flash constantly. Video format of Input and output of ADV7612+ adv7511 is 1920*1080p @60Hz  24bit RGB , range 0-255.

  

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

 

    printf("Config ADV7511 to fit: 1080p In - 24-bit RGB 444 Out\n\r");//ADV7511 address is 0x7A

    PSIIC0_Write(0x7A, 0x01, 0x00); //Set N Value(6144)

    PSIIC0_Write(0x7A, 0x02, 0x18); //Set N Value(6144)

    PSIIC0_Write(0x7A, 0x03, 0x00); //Set N Value(6144)

    PSIIC0_Write(0x7A, 0x15, 0x20); //Input 444(RGB or YCrCb) with Separate Syncs,48Khz FS

    PSIIC0_Write(0x7A, 0x16, 0x70); //Output format 444, 24-bit RGB input

    PSIIC0_Write(0x7A, 0x18, 0x46); //CSC disabled

    PSIIC0_Write(0x7A, 0x40, 0x80); //General Control Packet Enable

    PSIIC0_Write(0x7A, 0x41, 0x10); //Power Down control

    PSIIC0_Write(0x7A, 0x49,  0x00); //No truncation

    PSIIC0_Write(0x7A, 0x4C, 0x04); //8bit Output

    PSIIC0_Write(0x7A, 0x55, 0x00); //Set RGB 444 in AVinfo Frame

    PSIIC0_Write(0x7A, 0x56, 0x08); //Set active format Aspect

    PSIIC0_Write(0x7A, 0x96, 0x20); //HPD Interrupt clear

   PSIIC0_Write(0x7A, 0xD6,  0xC0); //HPD always high

    PSIIC0_Write(0x7A, 0x98, 0x03); //ADI reqired write

    PSIIC0_Write(0x7A, 0x99, 0x02); //ADI Required Write

    PSIIC0_Write(0x7A, 0x9C, 0x30); //PLL Filter R1 Value

    PSIIC0_Write(0x7A, 0x9D, 0x61); //Set clock divide

    PSIIC0_Write(0x7A, 0xA2, 0xA4); //ADI Recommended Write

    PSIIC0_Write(0x7A, 0xA3, 0xA4); //ADI Recommended Write

    PSIIC0_Write(0x7A, 0xA5, 0x04); //ADI Recommended Write

    PSIIC0_Write(0x7A, 0xAB, 0x40); //ADI Recommended Write

//    PSIIC0_Write(0x7A, 0xAF, 0x16); //Set HDMI Mode

    PSIIC0_Write(0x7A, 0xAF, 0x04); //Set DVI Mode

    PSIIC0_Write(0x7A, 0xBA, 0x60); //No clock delay

    PSIIC0_Write(0x7A, 0xD1, 0xFF); //ADI Recommended Write

    PSIIC0_Write(0x7A, 0xDE, 0xD8); //ADI Recommended Write

    PSIIC0_Write(0x7A, 0xE4, 0x60); //VCO Swing Reference Voltage

    PSIIC0_Write(0x7A, 0xFA, 0x7D); //Nbr of times to search for good phase

 

I red registers several times after adv7511 configured.

ADV7511 Chip Revision is: 14

register  0x01,value is: 0

register 0x02,value is: 18

register  0x03,value is: 0

register  0x15,value is: 10

register  0x16,value is: 60

register  0x17,value is: 0

register  0x3B,value is: 80

register  0x3D,value is: 10

register  0x3E,value is: 40

register  0x41,value is: 10

register  0x42,value is: f8

register  0x4C,value is: 4

register  0xC6,value is: 6

register  0x55,value is: 0

register  0xC8,value is: 2

register  0x9E,value is: 18

register 0xBA,value is: 60

register  0xA1,value is: 0

register  0xD6,value is: c0

register  0xDE,value is: d8

register  0xC6,value is: 6

 

I use another board of adv7612+adv7511 to receive video transferred by adv7511,and  use Oscilloscope to detect signas of adv7612 output. vclk is 148.5MHz, Hsync and DE are 67.5KHz,Vsync is 60Hz.But only video data is not stable. ADV7511 is as a DVI Transmitter.

 

I have 2 questions:

1.the states of adv7511 's register  shows it is normal. why it does not work well ? 

2.when input is DVI source(RGB ,range 0-255) ,the adv7612 output RGB range is 16-235.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)

 

    PSIIC0_Write(0x98, 0x01, 0x06); //Prim_mode = 110b HDMI-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

 

I set  RGB out,full range(0-255), but actually ,the adv7612  output RGB range 16-235, why is that?

 

Please reply soon, thanks very much!

 

Best Regards,

Attachments

Outcomes