AnsweredAssumed Answered

RGB settings  in ADV7511 Reference design

Question asked by umair0722 on Aug 30, 2013
Latest reply on Sep 4, 2013 by umair0722

Hi all,

 

I am working on ADV7511 Xilinx Evaluation Boards Reference Design for Zedboard. I am able to display it on monitor but the display colors don’t appear to be normal(dull orangish), when displaying the default image.

 

I am using the following configurations as in the example software

//-------------------------------------------------

  while ((iic_read(0x39, 0x96, 0x00) & 0x80) != 0x80) {

  delay_ms(1);

  }

  iic_write(0x39, 0x01, 0x00);

  iic_write(0x39, 0x02, 0x18);

  iic_write(0x39, 0x03, 0x00);

  iic_write(0x39, 0x15, 0x01);//444.1kHz,(16,20,24 bit YCbCr 4:2:2)

  iic_write(0x39, 0x16, 0xb5);//Output 4:2:2, 8 bit, Style 2, falling Edge, YCbCr

  iic_write(0x39, 0x18, 0x46);//CSC Enabled, +/- 4.0, -16384 - 16380

  iic_write(0x39, 0x40, 0x80);//GC Packet Enable,

  iic_write(0x39, 0x41, 0x10);//Power Up

  iic_write(0x39, 0x48, 0x08);

  iic_write(0x39, 0x49, 0xa8);//Truncate

 

  iic_write(0x39, 0x4c, 0x00);

  iic_write(0x39, 0x55, 0x20);//YCbCr 4:2:2

  iic_write(0x39, 0x56, 0x08);

  iic_write(0x39, 0x96, 0x20);

  iic_write(0x39, 0x98, 0x03);

  iic_write(0x39, 0x99, 0x02);

  iic_write(0x39, 0x9a, 0xe0);

  iic_write(0x39, 0x9c, 0x30);

  iic_write(0x39, 0x9d, 0x61);

  iic_write(0x39, 0xa2, 0xa4);

  iic_write(0x39, 0xa3, 0xa4);

  iic_write(0x39, 0xa5, 0x44);

  iic_write(0x39, 0xab, 0x40);

  iic_write(0x39, 0xaf, 0x06);

  iic_write(0x39, 0xba, 0x00);

  iic_write(0x39, 0xd0, 0x3c);

  iic_write(0x39, 0xd1, 0xff);

  iic_write(0x39, 0xde, 0x9c);//

  iic_write(0x39, 0xe0, 0xd0);

  iic_write(0x39, 0xe4, 0x60);

  iic_write(0x39, 0xf9, 0x00);

  iic_write(0x39, 0xfa, 0x00);

  iic_write(0x39, 0x17, 0x02);

 

  iic_write(0x39, 0xd6, 0xc0);

 

  iic_write(0x39, 0x0a, 0x10);

  iic_write(0x39, 0x0b, 0x8e);

  iic_write(0x39, 0x0c, 0x00);

  iic_write(0x39, 0x73, 0x01);

  iic_write(0x39, 0x14, 0x02);

 

  iic_read(0x39, 0x42, 0x01);

  iic_read(0x39, 0xc8, 0x01);

  iic_read(0x39, 0x9e, 0x01);

  iic_read(0x39, 0x96, 0x01);

  iic_read(0x39, 0x3e, 0x01);

  iic_read(0x39, 0x3d, 0x01);

  iic_read(0x39, 0x3c, 0x01);

 

  Xil_Out32((CFV_BASEADDR + 0x18), 0xff); // clear status

 

The functional description on above page states that The reference design reads 24bits of RGB data from DDR and performs color space conversion (RGB to YCbCr) and ... I want to know what RGB settings are expected from the DDR, is it RGB 888 or is it something else?

I also tested it by writing constants at the DDR video image base address, And this is what i see on display

               value                                                                  Color displayed

Xil_Out32((VIDEO_BASEADDR+(dcnt*4)),  0x000000ff);     RED

Xil_Out32((VIDEO_BASEADDR+(dcnt*4)),  0x0000ff00);     GREEN   

Xil_Out32((VIDEO_BASEADDR+(dcnt*4)),  0x00ff0000);     ORANGE ???

Xil_Out32((VIDEO_BASEADDR+(dcnt*4)),  0x00000000);    MAROON(DARK RED)???

 

Now i am not clear what is the RGB setting for this image in DDR that is being read by HDMI core. Why do I see orange instead of blue or Maroon instead of Black? Kindly explain how are RGB values are arranged in this DDR memory, or how does the HDMI reference design expects the input pixels to be?

 

secondly where can I find documentation to above settings of HDMI design that we do over iic interface?

 

Thanks in advance,

Umair

Outcomes