AnsweredAssumed Answered

ADV7513 - No video output signal

Question asked by SonNguyen on Oct 22, 2015
Latest reply on Jan 22, 2016 by GuenterL

Hello,

I'm facing an issue with ADV7513. Here is my configuration:

INPUT VIDEO (from camera):

-Full HD 1920x1080,  30FPS.

-Video format YCrCb 4:2:2

-20 bits data

 

OUTPUT VIDEO (expectation)

- Full HD, 30FPS

- Video format YCrCb 4:4:4

- 20bits data

 

I saw many threads in this forum and followed all the answers but none of them work for me.

My current configuration for ADV7513 is based on this thread No video output from ADV7513

 

My sequence for configuration (based on bt656-ADV7842_7511-hdmi.txt.zip):

1) "ADV7511 Power up defaults"

2) run scripts 6-1fx (for 1080i@30) to display an image setting the pixel bus to YCbCr 444.

3) run one of the script to put the system into the required sync mode (1080i30 20-bit bus embedded syncs).

 

// ADV7511 Power up defaults
#define IIC_HDMI_OUT_POWER_UP_DEFAULT_LEN       178
unsigned char iic_hdmi_out_power_up_default[IIC_HDMI_OUT_POWER_UP_DEFAULT_LEN][3] = 
{
  {IIC_ADV7513_BASE_ADDR, 0x01, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x02, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x03, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x07, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x08, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x09, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x0A, 0x1},
  {IIC_ADV7513_BASE_ADDR, 0x0B, 0x0E},
  {IIC_ADV7513_BASE_ADDR, 0x0C, 0xBC},
  {IIC_ADV7513_BASE_ADDR, 0x0D, 0x18},
  {IIC_ADV7513_BASE_ADDR, 0x0E, 0x1},
  {IIC_ADV7513_BASE_ADDR, 0x0F, 0x13},
  {IIC_ADV7513_BASE_ADDR, 0x10, 0x25},
  {IIC_ADV7513_BASE_ADDR, 0x11, 0x37},
  {IIC_ADV7513_BASE_ADDR, 0x12, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x13, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x14, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x15, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x16, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x17, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x18, 0x46},
  {IIC_ADV7513_BASE_ADDR, 0x19, 0x62},
  {IIC_ADV7513_BASE_ADDR, 0x1A, 0x4},
  {IIC_ADV7513_BASE_ADDR, 0x1B, 0xA8},
  {IIC_ADV7513_BASE_ADDR, 0x1C, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x1D, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x1E, 0x1C},
  {IIC_ADV7513_BASE_ADDR, 0x1F, 0x84},
  {IIC_ADV7513_BASE_ADDR, 0x20, 0x1C},
  {IIC_ADV7513_BASE_ADDR, 0x21, 0xBF},
  {IIC_ADV7513_BASE_ADDR, 0x22, 0x4},
  {IIC_ADV7513_BASE_ADDR, 0x23, 0xA8},
  {IIC_ADV7513_BASE_ADDR, 0x24, 0x1E},
  {IIC_ADV7513_BASE_ADDR, 0x25, 0x70},
  {IIC_ADV7513_BASE_ADDR, 0x26, 0x2},
  {IIC_ADV7513_BASE_ADDR, 0x27, 0x1E},
  {IIC_ADV7513_BASE_ADDR, 0x28, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x29, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x2A, 0x4},
  {IIC_ADV7513_BASE_ADDR, 0x2B, 0xA8},
  {IIC_ADV7513_BASE_ADDR, 0x2C, 0x8},
  {IIC_ADV7513_BASE_ADDR, 0x2D, 0x12},
  {IIC_ADV7513_BASE_ADDR, 0x2E, 0x1B},
  {IIC_ADV7513_BASE_ADDR, 0x2F, 0xAC},
  {IIC_ADV7513_BASE_ADDR, 0x30, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x31, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x32, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x33, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x34, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x35, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x36, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x37, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x38, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x39, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x3A, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x3B, 0x80},
  {IIC_ADV7513_BASE_ADDR, 0x3C, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x40, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x41, 0x50},
  {IIC_ADV7513_BASE_ADDR, 0x43, 0x7E},
  {IIC_ADV7513_BASE_ADDR, 0x44, 0x79},
  {IIC_ADV7513_BASE_ADDR, 0x45, 0x70},
  {IIC_ADV7513_BASE_ADDR, 0x46, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x47, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x48, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x49, 0xA8},
  {IIC_ADV7513_BASE_ADDR, 0x4A, 0x80},
  {IIC_ADV7513_BASE_ADDR, 0x4B, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x4D, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x4E, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x4F, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x50, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x51, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x52, 0x2},
  {IIC_ADV7513_BASE_ADDR, 0x53, 0xD},
  {IIC_ADV7513_BASE_ADDR, 0x54, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x55, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x56, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x57, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x58, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x59, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x5A, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x5B, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x5C, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x5D, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x5E, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x5F, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x60, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x61, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x62, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x63, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x64, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x65, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x66, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x67, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x68, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x69, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x6A, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x6B, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x6C, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x6D, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x6E, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x6F, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x70, 0x1},
  {IIC_ADV7513_BASE_ADDR, 0x71, 0xA},
  {IIC_ADV7513_BASE_ADDR, 0x72, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x73, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x74, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x75, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x76, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x77, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x78, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x79, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x7A, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x7B, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x7C, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x92, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x93, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x94, 0xC0},
  {IIC_ADV7513_BASE_ADDR, 0x95, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x96, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x97, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x98, 0xB},
  {IIC_ADV7513_BASE_ADDR, 0x99, 0x2},
  {IIC_ADV7513_BASE_ADDR, 0x9A, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0x9B, 0x18},
  {IIC_ADV7513_BASE_ADDR, 0x9C, 0x5A},
  {IIC_ADV7513_BASE_ADDR, 0x9D, 0x60},
  {IIC_ADV7513_BASE_ADDR, 0x9F, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0xA1, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0xA2, 0x80},
  {IIC_ADV7513_BASE_ADDR, 0xA3, 0x80},
  {IIC_ADV7513_BASE_ADDR, 0xA4, 0x8},
  {IIC_ADV7513_BASE_ADDR, 0xA5, 0x4},
  {IIC_ADV7513_BASE_ADDR, 0xA6, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0xA7, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0xA8, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0xA9, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0xAA, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0xAB, 0x40},
  {IIC_ADV7513_BASE_ADDR, 0xAF, 0x14},
  {IIC_ADV7513_BASE_ADDR, 0xB9, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0xBA, 0x10},
  {IIC_ADV7513_BASE_ADDR, 0xBB, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0xC4, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0xC5, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0xC7, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0xC9, 0x3},
  {IIC_ADV7513_BASE_ADDR, 0xCD, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0xCE, 0x1},
  {IIC_ADV7513_BASE_ADDR, 0xCF, 0x4},
  {IIC_ADV7513_BASE_ADDR, 0xD0, 0x30},
  {IIC_ADV7513_BASE_ADDR, 0xD1, 0xFF},
  {IIC_ADV7513_BASE_ADDR, 0xD2, 0x80},
  {IIC_ADV7513_BASE_ADDR, 0xD3, 0x80},
  {IIC_ADV7513_BASE_ADDR, 0xD4, 0x80},
  {IIC_ADV7513_BASE_ADDR, 0xD5, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0xD6, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0xD7, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0xD8, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0xD9, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0xDA, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0xDB, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0xDC, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0xDD, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0xDE, 0x10},
  {IIC_ADV7513_BASE_ADDR, 0xDF, 0x1},
  {IIC_ADV7513_BASE_ADDR, 0xE0, 0x80},
  {IIC_ADV7513_BASE_ADDR, 0xE1, 0x78},
  {IIC_ADV7513_BASE_ADDR, 0xE2, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0xE3, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0xE4, 0x60},
  {IIC_ADV7513_BASE_ADDR, 0xF9, 0x7C},
  {IIC_ADV7513_BASE_ADDR, 0xFA, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0xFB, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0xFC, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0xFD, 0x0},
  {IIC_ADV7513_BASE_ADDR, 0xFE, 0x0}
};


#define IIC_HDMI_OUT_VIDEO_OUTPUT_LEN           20
unsigned char iic_hdmi_out_video_output[IIC_HDMI_OUT_VIDEO_OUTPUT_LEN][3] = 
{
  {IIC_ADV7513_BASE_ADDR, 0x18, 0x46},
                                            //    0x18[  7] = CSC Disable = 0 (CSC enabled)
  {IIC_ADV7513_BASE_ADDR, 0x40, 0x80},
  {IIC_ADV7513_BASE_ADDR, 0x41, 0x10},
                                            //    0x41[  6] = PowerDown = 0 (power-up)
  {IIC_ADV7513_BASE_ADDR, 0x4C, 0x00},    //    Default for proper operation
  {IIC_ADV7513_BASE_ADDR, 0x55, 0x40},
                                            //    0x55[6:5] = 2 : Output format YCrCb 4:4:4
  {IIC_ADV7513_BASE_ADDR, 0x56, 0x08},
                                            //    0x56[3:0] = 8 : Same as Aspect ratio
  {IIC_ADV7513_BASE_ADDR, 0x96, 0x20},    //    HPD Interrupt clear
  {IIC_ADV7513_BASE_ADDR, 0x98, 0x03},    //    For proper operation
  {IIC_ADV7513_BASE_ADDR, 0x99, 0x02},    //    For proper operation
  {IIC_ADV7513_BASE_ADDR, 0x9C, 0x30},    //    For proper operation
  {IIC_ADV7513_BASE_ADDR, 0x9D, 0x61},
                                            //    0x9D[3:2] = 0 : Input clock not divided
  {IIC_ADV7513_BASE_ADDR, 0xA2, 0xA4},    //    For proper operation
  {IIC_ADV7513_BASE_ADDR, 0xA3, 0xA4},    //    For proper operation
  {IIC_ADV7513_BASE_ADDR, 0xA5, 0x44},    //    For proper operation
  {IIC_ADV7513_BASE_ADDR, 0xAB, 0x40},    //    For proper operation
  {IIC_ADV7513_BASE_ADDR, 0xAF, 0x16},
                                            //    0xAF[7] = 0 : HDCP disable
                                            //    0xAF[4] = 1 : Current HDCP frame encrypted
                                            //    0xAF[1] = 1 : HDMI mode
  {IIC_ADV7513_BASE_ADDR, 0xBA, 0xA0},
                                            //    0xBA[7:5] = 5 : Delay for input video clock 0.8ns
  {IIC_ADV7513_BASE_ADDR, 0xD1, 0xFF},    //    For proper operation
  {IIC_ADV7513_BASE_ADDR, 0xDE, 0x9C},    //    For proper operation
  {IIC_ADV7513_BASE_ADDR, 0xE4, 0x60}     //    For proper operation
};


#define IIC_HDMI_OUT_1080i_30_EMBEDDED_SYNC_LEN 24
unsigned char iic_hdmi_out_1080i_30_embedded_sync[IIC_HDMI_OUT_1080i_30_EMBEDDED_SYNC_LEN][3] = 
{
  {IIC_ADV7513_BASE_ADDR, 0x15, 0x02},    // 0x15[3:0]= 2     :Video format 20 bits YCrCb 4:2:2(Embedded syncs)
  {IIC_ADV7513_BASE_ADDR, 0x16, 0x18},    // 0x16[7]  = 0     :Output format 4:4:4
                                            // 0x16[5:4]= 1     :10bit
                                            // 0x16[3:2]= 2     :Style1
                                            // 0x16[0]  = 0     :RGB
  {IIC_ADV7513_BASE_ADDR, 0x17, 0x03},
                                            // 0x17[1]  = 1     :16:9 Ratio
                                            // 0x17[0]  = 1     :DE generator enable
  {IIC_ADV7513_BASE_ADDR, 0x48, 0x00},
                                            // 0x48[4:3]= 0     :Evenly Distributed
    // Register settings for Embedded Sync Processing
    // Table 28 on ADV7513 Programming Guide
    // 1080i - 30
  {IIC_ADV7513_BASE_ADDR, 0x30, 0x16},
  {IIC_ADV7513_BASE_ADDR, 0x31, 0x02},
  {IIC_ADV7513_BASE_ADDR, 0x32, 0xC0},
  {IIC_ADV7513_BASE_ADDR, 0x33, 0x08},
  {IIC_ADV7513_BASE_ADDR, 0x34, 0x05},
    // Register Settings for DE Generation
    // Table 26 on ADV7513 Programming Guide
    // 1080i - 30
  {IIC_ADV7513_BASE_ADDR, 0x35, 0x2F},
  {IIC_ADV7513_BASE_ADDR, 0x36, 0xD4},
  {IIC_ADV7513_BASE_ADDR, 0x37, 0x2F},
  {IIC_ADV7513_BASE_ADDR, 0x38, 0x00},
  {IIC_ADV7513_BASE_ADDR, 0x39, 0x21},
  {IIC_ADV7513_BASE_ADDR, 0x3A, 0xC0},
    // Register Settings for Sync Adjustment
    // Table 27 on ADV7513 Programming Guide
    // 1080i - 30
  {IIC_ADV7513_BASE_ADDR, 0xD7, 0x16},
  {IIC_ADV7513_BASE_ADDR, 0xD8, 0x02},
  {IIC_ADV7513_BASE_ADDR, 0xD9, 0xC0},
  {IIC_ADV7513_BASE_ADDR, 0xDA, 0x08},
  {IIC_ADV7513_BASE_ADDR, 0xDB, 0x05},
    
  {IIC_ADV7513_BASE_ADDR, 0xDC, 0x00},    // Default for proper operation
  {IIC_ADV7513_BASE_ADDR, 0xDD, 0x00},    // Default for proper operation
  {IIC_ADV7513_BASE_ADDR, 0xFA, 0x00},    // Default for proper operation
  {IIC_ADV7513_BASE_ADDR, 0xFB, 0x06}     // 0xFB[2:1]= 3 :Low Refesh rate 30Hz
};

 

 

I'm using PIC24F08KL301 to configure ADV7513 through I2C. Currently, I can read and write data to ADV7513 registers. I can saw the I2C data on oscilloscope.

I checked the input signal on ADV7513 pins, I could see some signal on those pins but when I checked the output pins, there was nothing there.

 

At the beginning I used  only embedded sync mode, then I tried with separate syncs mode, until I read the thread (I mentioned above) I configured ADV7513 with embedded mode with syncs adjustment, but all configuration didn't work for me.

 

I checked the signal on HSYNC, VSYNC and DE pin on my camera module, Here a pic for what I got:

Red is HSYNC

Green is VSYNC

Blue is DE

FullSizeRender.jpg

 

Does my configuration have something wrong?

Or does my hardware need to change something to make it works? (Attached is my schematic)

Outcomes