AnsweredAssumed Answered

We send slave address to ADV7511W it does not ack. May i know have to do extra other than slave address 

Question asked by Ramanji@567 on Apr 1, 2016
Latest reply on Apr 1, 2016 by GuenterL

Hi,

 

 

I am using custom board, in that we use ADV7511W HDMI transmitter IC.

I am currently working on ADV7511W HDMI transmitter. From Master side just I2C_SLAVE_ADDRESS is enough to transfer to ADV7511W. Some other parameters required include with slave address.

 

Please send the steps to test the ADV7511W.  I have seen the script file. Please the script file what I have followed.

72 01 00 ; Set N Value(6144)

72 02 18 ; Set N Value(6144)

72 03 00 ; Set N Value(6144)

72 15 00 ; 24-bit, 444 YPrPb input

72 16 60 ; YPrPb 444

72 18 46 ; CSC disabled

72 40 80 ; General Control packet enable

72 41 10 ; Power down control

72 48 08 ; Data right justified

72 49 A8 ; Set Dither_mode - 12-to-10 bit

72 4C 00 ; 8 bit Output

72 55 40 ; Set YCrCb 444 in AVinfo Frame

72 56 08 ; Set active format Aspect

72 96 20 ; HPD Interrupt clear

72 98 03 ; ADI Recommended Write

72 99 02 ; ADI Recommended Write

72 9C 30 ; PLL Filter R1 Value

72 9D 61 ; Set clock divide

72 A2 A4 ; ADI Recommended Write

72 A3 A4 ; ADI Recommended Write

72 A5 04 ; ADI Recommended Write

72 AB 40 ; ADI Recommended Write

72 AF 16 ; Set HDMI Mode

72 BA 60 ; No clock delay

72 D1 FF ; ADI Recommended Write

72 DE 9C ; ADI Recommended Write

72 E4 60 ; VCO_Swing_Reference_Voltage

72 FA 7D ; Nbr of times to search for good phase

 

This is the what I have written

#define I2C_BUS_0 0

#define ADV7511W_I2C_ADDRESS 0x72

tx_buf[0] = 0x41;

tx_buf[1] = 0x10;

status = transferData(ADV7511W_I2C_ADDRESS,tx_buf,sizeof(tx_buf),NULL,0);

    if(status != I2C_TransferCompleted)
    {
printf("ADV7511 Write Failed: %d\n",status);
    }

static I2C_TransferStatus transferData(Value i2cAddr,uint8_t *tx_buf,uint8_t tx_len,uint32_t *rx_buf,uint32_t rx_len)
{
    Error rc;
    I2C_TransferStatus status;

    Check(gh_I2C_AsynchronousWriteRead(i2cDevice,tx_buf,tx_len,rx_buf,rx_len));
    Check(gh_I2C_StartTransfer(i2cDevice, i2cAddr));
    Check(gh_I2C_Wait(i2cInterface, 0));
    Check(gh_I2C_GetTransferStatus(i2cInterface, &status));

    return status;
}

 

Please suggest us to over come this problem.

 

 

Thanks,

Ramanjineyulu.

Outcomes