Post Go back to editing

ADV7610 480p Color Issue

Hello-

I've got an ADV7610 configured to output a 16-bit bus to my i.MX6.  I can take in 720p30, 720p60 and 1080p30 just fine, but for some reason 480p60 (640x480p60) results in strange dark bands of color.  It seems like one or more data bits of color are being lost.

See the attached file.

Is there something peculiar about the 480p input?

Thanks for the help,

-Allan

test.mkv.zip
  • Hi,

    we are looking into the issue.

      Have you looked at all documents and scripts provided at ADV7610 Design Support Files

    Regards

  • Hi Dominic-

    Thank you for looking into it.

    I have seen the design support files, in fact my initialization code leverages it quite a bit.  See the initialization I use attached below:

    //Set the AUTO_EDID to turn on when the internal EDID is enabled

    adv7610_write(adv7610_i2c_clients.hdmi, 0x6C, 0xA0);

    adv7610_write(adv7610_i2c_clients.ksv, 0x77, 0x00); //Disable the Internal EDID

    //Set the EDID value

    for(i=0; i<=0xFF; ++i)

      adv7610_write(adv7610_i2c_clients.edid,i,edid[i]);

    adv7610_write(adv7610_i2c_clients.ksv, 0x77, 0x00); //Set the Most Significant Bit of the SPA location to 0

    adv7610_write(adv7610_i2c_clients.ksv, 0x52, 0x20); //Set the SPA for port B.

    adv7610_write(adv7610_i2c_clients.ksv, 0x53, 0x00); //Set the SPA for port B.

    adv7610_write(adv7610_i2c_clients.ksv, 0x70, 0x9E); //Set the Least Significant Byte of the SPA location

    adv7610_write(adv7610_i2c_clients.hdmi, 0x00, 0x00); //Select port A (shouldn't matter, only 1 port)

    adv7610_write(adv7610_i2c_clients.io, 0x03, 0x80);// 16-bit SDR ITU-656 mode

    adv7610_write(adv7610_i2c_clients.io, 0x19, 0x89);

    adv7610_write(adv7610_i2c_clients.io, 0x14, 0x55); //med-low drive strength (FCC requirements)

    adv7610_write(adv7610_i2c_clients.cp, 0xBA, 0x01); //Set HDMI FreeRun

    adv7610_write(adv7610_i2c_clients.io, 0x0B, 0x44);// Power up part

    adv7610_write(adv7610_i2c_clients.io, 0x0c, 0x42); //Power up part

    adv7610_write(adv7610_i2c_clients.io, 0x15, 0xB8); // Disable Tristate of clock and data

    adv7610_write(adv7610_i2c_clients.ksv, 0x40, 0x81); // Disable HDCP 1.1 features

    adv7610_write(adv7610_i2c_clients.hdmi, 0x9B, 0x03); // ADI recommended setting

    adv7610_write(adv7610_i2c_clients.hdmi, 0xC1, 0x01); // ADI recommended setting

    adv7610_write(adv7610_i2c_clients.hdmi, 0xC2, 0x01); // ADI recommended setting

    adv7610_write(adv7610_i2c_clients.hdmi, 0xC3, 0x01); // ADI recommended setting

    adv7610_write(adv7610_i2c_clients.hdmi, 0xC4, 0x01); // ADI recommended setting

    adv7610_write(adv7610_i2c_clients.hdmi, 0xC5, 0x01); // ADI recommended setting

    adv7610_write(adv7610_i2c_clients.hdmi, 0xC6, 0x01); // ADI recommended setting

    adv7610_write(adv7610_i2c_clients.hdmi, 0xC7, 0x01); // ADI recommended setting

    adv7610_write(adv7610_i2c_clients.hdmi, 0xC8, 0x01); // ADI recommended setting

    adv7610_write(adv7610_i2c_clients.hdmi, 0xC9, 0x01); // ADI recommended setting

    adv7610_write(adv7610_i2c_clients.hdmi, 0xCA, 0x01); // ADI recommended setting

    adv7610_write(adv7610_i2c_clients.hdmi, 0xCB, 0x01); // ADI recommended setting

    adv7610_write(adv7610_i2c_clients.hdmi, 0xCC, 0x01); // ADI recommended setting

    adv7610_write(adv7610_i2c_clients.hdmi, 0x00, 0x00); // Set HDMI Input Port A

    adv7610_write(adv7610_i2c_clients.hdmi, 0x83, 0xFE); // Enable clock terminator for port A

    adv7610_write(adv7610_i2c_clients.hdmi, 0x6F, 0x08); // ADI recommended setting

    adv7610_write(adv7610_i2c_clients.hdmi, 0x85, 0x1F); // ADI recommended setting

    adv7610_write(adv7610_i2c_clients.hdmi, 0x87, 0x70); // ADI recommended setting

    adv7610_write(adv7610_i2c_clients.hdmi, 0x8D, 0x04); // LFG

    adv7610_write(adv7610_i2c_clients.hdmi, 0x8E, 0x1E); // HFG

    adv7610_write(adv7610_i2c_clients.hdmi, 0x1A, 0x8A); // unmute audio

    adv7610_write(adv7610_i2c_clients.hdmi, 0x57, 0xDA); // ADI recommended setting

    adv7610_write(adv7610_i2c_clients.hdmi, 0x58, 0x01); // ADI recommended setting

    adv7610_write(adv7610_i2c_clients.hdmi, 0x75, 0x10); // DDC drive strength

    adv7610_write(adv7610_i2c_clients.io, 0x01, 0x25);   //30fps, HDMI COMP

    adv7610_write(adv7610_i2c_clients.io, 0x00, 0x13);   //720p

    -Allan

  • Hi Matt-

    I do have the eval board for the adv7610, but no HDMI generator.  I've been using a GoPro Hero 4 (it outputs 640x480p60 when recording at 4k, this is tested with another HDMI monitor).

    You're thinking I should set the dev board up to pass through to the HDMI output to a monitor and see what it looks like?  Any particular configuration I need to use?

    -Allan

  • Hi Allan,

    Do you have one of our evaluation boards for ADV7610, ADV7611, or ADV7612?

    Do you have an DVI/HDMI video generator?

    -Matt

  • I'm glad to hear you have the ADV7610 evaluation board. However, I have learned recently that there is no software driver currently released for that board. Our software driver configures the ADV7610 and ADV7511 in a way to provide compatibility with consumer electronic sources and sinks. (For example, it automatically reads the EDID data from the sink and copies it to the ADV7610 so that the source is aware of what video it can output).

    Without the software driver, our only alternative is to configure the ADV7610 and ADV7511 on that evaluation board using the recommended scripts. Furthermore, you will need to see what the EDID of the sink/display and insert these 256 bytes into the following script:

    :ADV7611 EDID 8 bit only NO DSD or HBR Support:

    So to configure the EVAL-ADV7610EBZ appropriately for HDMI input/HDMI output and have correct EDID information, you will need to

    1. Leave the source disconnected from the ADV7610.

    2. Run the script to configure the ADV7610 and ADV7511:

    * for 480i/480p run the script called :6-1d Port A, 480i,576i,240p,288p,480p 576p YPrPb 444 in, RGB 444 out, Through HDMI VIC[1-3,6-14,17,18,21-29,30]:

    * for 720p/1080i run the script called :6-1e Port A, 720p,1080i YPrPb 444 in, RGB 444 out, Through HDMI VIC[4,5,19,20]:

    * for 1080p run the script called :6-1f Port A, 1080p YPrPb 444 in, RGB 444 out, Through HDMI VIC[16,31,32]:

    3. Run the script which configures the ADV7610 EDID with the EDID data of the sink/display

    (this assumes the ADV7610/ADV7511 supports all of the modes listed in the EDID)

    4. Connect the source to the ADV7610.

    I hope this helps. Let me know if you have any questions.

    -Matt

  • Matt-

    Sorry to divert, but I'm having trouble getting the EVAL board up and running.  Its USB is coming up as a Cypress Semiconductor USB dev kit, and I can't find a windows driver for it in any of the FTP packages for the EVAL board.  Any thoughts?

    -Allan

  • Hi Matt-

    Yes, I installed the Install DVP Eval Latest Source... exe installer first.  I'm using Windows 7 64-bit.  But, windows is unable to find a driver for the device and there aren't any drivers in the DVP Eval Latest Source 10-14-11 folder as far as I can tell.

    Do you know of the exact driver I should be using?

    -Allan

  • Hi Allan,

    I think the "USB Dev Kit" is correct, but I've never had trouble finding the drivers.

    Did you install the Windows application (Install DVP Eval Latest Source 10-14-11.exe) before connecting the board to the computer via USB? What OS are you using?

    -Matt

  • I've never had to point Windows to a driver for these evaluation boards. I just tell the driver wizard to bypass searching on Windows update and it finds the driver built into Windows.

    I'll give this a try on a clean install of Windows 7 64-bit tomorrow.

    -Matt

  • Hi Matt-

    Were you able to see what device the board comes up as and what driver is used?

    In the meantime, I'm wondering if my board is bricked, because I don't see anything happening on the RS232 or over any of the HDMI, but I don't recall if it did before.

    -Allan