AnsweredAssumed Answered

ADV7513 intermittent signal

Question asked by Herman2014 on Nov 27, 2014
Latest reply on Dec 1, 2014 by GuenterL

Hello forum members,

 

I've been playing around with the ADV7513 for over a month now but I cannot get it to work properly.

It will work flawlessly with LG monitors but act up when connected to samsung monitors.

When hooked up to a samsung monitor it will sometimes display image for 2 seconds on power on and

then go blank. Other times on power up it will show "No signal" on the screen and then "No cable connected".

The temporary solution I currently have is to replug the HDMI cable several times until it works after which

everything looks perfect.

 

The ADV7513 is being supplied with a 1920x1080@60Hz image with a pixel clock of 148.5 MHz.

Hsync, Vsync and DE are external.

 

I should note that when I connect the device to a (samsung) television that I'm measuring +2.7V on the +5V HDMI line.

As recommended by the datasheet I'm using the 5 volt line for the 2 kOhm pull ups on DDCSCL and DDCSDA.

The maximum amount of current that could run would be 5 mA which is far below the 55 mA that the HDMI spec demands.

So that's odd.

 

This is the code I have running on a AVR connected to the I2C pins of the ADV7513.

WriteRegister has the following parameter: Address, Register, Value, Bitmask.

(bitmask '1' = Keep original register value, '0' = replace with new value)

 

void loop () {

    delay(200);  // Allow the ADV7513 to settle

    while (ReadRegister(0x72, 0x42) & B01100000 != B01100000) {};  // Wait for Hot Plug Detect and Monitor Sense

 

    WriteRegister(0x72, 0x41, B00000000, B10111111);  // Power up ADV7513

 

    /* Fixed Registers */

    WriteRegister(0x72, 0x98, 0x03);

    WriteRegister(0x72, 0x9A, B11100000, B00000001);

    WriteRegister(0x72, 0x9C, 0x30);

    WriteRegister(0x72, 0x9D, B00000001, B11111100);

    WriteRegister(0x72, 0xA2, 0xA4);

    WriteRegister(0x72, 0xA3, 0xA4);

    WriteRegister(0x72, 0xE0, 0xD0);

    WriteRegister(0x72, 0xF9, 0x00);

 

    /* Video input / output settings */

    WriteRegister(0x72, 0xAF, B00000010, B11111101);        // Select HDMI as opposed to DVI

    WriteRegister(0x72, 0x15, B00000000, B11110000);        // Input format RGB 4:4:4

    WriteRegister(0x72, 0x16, B00110000, B11001111);        // Input color depth 8 bit

    WriteRegister(0x72, 0x48, B01000000, B10111111);        // AVI Packet update (wait)

    WriteRegister(0x72, 0x3B, B01100000, B10011111);        // Pixel repeat on manual mode to force VIC

    WriteRegister(0x72, 0x3C, B00010000, B11000000);        // VIC #16 1080p-60 16:9

    WriteRegister(0x72, 0x56, B00100000, B11001111);        // AVI Infoframe - 16:9 ratio

    WriteRegister(0x72, 0x48, B00000000, B10111111);        // AVI Packet update (send)

 

    while (ReadRegister(0x72, 0x42) & B01100000 == B01100000) {};     // Wait for Hot Plug Detect and Monitor Sense to disappear

}

 

 

Thank you for your time and I look forward to your replies.

 

With kind regards,

Herman

Outcomes