AnsweredAssumed Answered

ADV7842 problem with analog RGB

Question asked by msauer on Mar 13, 2015
Latest reply on Mar 18, 2015 by msauer



in our new design we use the ADV7842 to sample analog RGB and Video signals. We have the following problem with analog RGB signals: Signals with a higher clock rate, about 165MHz, will produce a HSync which isn't stable. I get a stable picture with 1280x1024@85Hz (HTOT = 1744, VTOT = 1075, PClk = 142MHz) if I change the pixel clock to 170MHz on my generator the HSync of ADV7842 isn't stable any more, it changes in polarity and frequency.


This is our init of the ADV7842:


  I2c_byte_write(IIC_ADV7842_ADDRESS_IO,   0x00, 0x07,8); // VID_STD
  I2c_byte_write(IIC_ADV7842_ADDRESS_IO,   0x01, 0x02,8); // Prim Mode
  I2c_byte_write(IIC_ADV7842_ADDRESS_IO,   0x02, 0xF2,8); // Color Conv
  I2c_byte_write(IIC_ADV7842_ADDRESS_IO,   0x03, 0x41,8); // OP Format
  I2c_byte_write(IIC_ADV7842_ADDRESS_IO,   0x05, 0x08,8); //
  I2c_byte_write(IIC_ADV7842_ADDRESS_IO,   0x0C, 0x40,8); // Power UP
  I2c_byte_write(IIC_ADV7842_ADDRESS_IO,   0x15, 0x90,8); // Pins activ
  I2c_byte_write(IIC_ADV7842_ADDRESS_IO,   0x16, 0xC8,8); // manual PLL setting
  I2c_byte_write(IIC_ADV7842_ADDRESS_IO,   0x17, 0x98,8); // manual PLL setting
  I2c_byte_write(IIC_ADV7842_ADDRESS_IO,   0x19, 0x80,8); // enable LLC DLL
  I2c_byte_write(IIC_ADV7842_ADDRESS_IO,   0x33, 0x40,8); // select DLL for LLC Clock
  // SDP
  I2c_byte_write(IIC_ADV7842_ADDRESS_CP,  0x73, 0xEA,8); // all detect
  I2c_byte_write(IIC_ADV7842_ADDRESS_CP,  0x74, 0x8A,8); // no pedestal
  I2c_byte_write(IIC_ADV7842_ADDRESS_CP,  0x75, 0xA2,8); //
  I2c_byte_write(IIC_ADV7842_ADDRESS_CP,  0x76, 0xA8,8); //
  I2c_byte_write(IIC_ADV7842_ADDRESS_CP,  0x7E, 0x00,8); //
  I2c_byte_write(IIC_ADV7842_ADDRESS_CP,  0x7C, 0xC3,8); //
  I2c_byte_write(IIC_ADV7842_ADDRESS_CP,  0x7D, 0xFF,8); //
  I2c_byte_write(IIC_ADV7842_ADDRESS_CP,  0x85, 0x0B,8); //
  I2c_byte_write(IIC_ADV7842_ADDRESS_CP,  0x8B, 0x4F,8); //
  I2c_byte_write(IIC_ADV7842_ADDRESS_CP,  0x8C, 0xED,8); //
  I2c_byte_write(IIC_ADV7842_ADDRESS_CP,  0x8D, 0x20,8); //
  I2c_byte_write(IIC_ADV7842_ADDRESS_CP,  0x8F, 0x41,8); //
  I2c_byte_write(IIC_ADV7842_ADDRESS_CP,  0x90, 0xA8,8); //
  I2c_byte_write(IIC_ADV7842_ADDRESS_CP,  0x91, 0x00,8); //
  I2c_byte_write(IIC_ADV7842_ADDRESS_CP,  0xAB, 0x46,8); //
  I2c_byte_write(IIC_ADV7842_ADDRESS_CP,  0xAC, 0x50,8); //
  I2c_byte_write(IIC_ADV7842_ADDRESS_CP,  0xA5, 0x46,8); //
  I2c_byte_write(IIC_ADV7842_ADDRESS_CP,  0xA6, 0x20,8); //
  I2c_byte_write(IIC_ADV7842_ADDRESS_CP,  0xA7, 0x2A,8); //
  I2c_byte_write(IIC_ADV7842_ADDRESS_CP,  0xBE, 0x02,8); //
  I2c_byte_write(IIC_ADV7842_ADDRESS_CP,  0xBF, 0x32,8); //
  I2c_byte_write(IIC_ADV7842_ADDRESS_CP,  0xC3, 0x39,8); //
  // AFE
  I2c_byte_write(IIC_ADV7842_ADDRESS_AFE, 0x0C, 0x1F,8); //
  I2c_byte_write(IIC_ADV7842_ADDRESS_AFE, 0x12, 0x63,8); //
  I2c_byte_write(IIC_ADV7842_ADDRESS_AFE, 0x00, 0x80,8); //
  I2c_byte_write(IIC_ADV7842_ADDRESS_AFE, 0x02, 0x00,8); //
  I2c_byte_write(IIC_ADV7842_ADDRESS_AFE, 0xC8, 0x33,8); //


Do you have any idea where the problem is?


Thank you for your help.


best regards


martin sauer