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!