Post Go back to editing

ADV7610 960p color issue


I don't have one of your evaluation boards and I am using the following set up: 

LAPTOP -> ADV7610 -> FPGA -> ADV7511 -> MONITOR

The configuration of the ADV7610 is shown at the end of the post.

I am trying to show on the monitor different video resolutions coming from my laptop, namely 1080p60Hz, 720p60Hz and 960p60Hz (all VESA). I configured the EDID properly and set PRIM_MODE and VID_STD to 0x06 and 0x02 respectively. The first two resolutions work, but not the last one (960p60Hz), which gives strange dark colors and sometimes dark bands on the monitor. Please see the image in attachment. Observe that the black part should be all green as the first lines at the top of the monitor, while the violet one should be white.

Do you have any suggestion on how to solve this issue?

Thank you in advance for your help,



ADV7610 I2C configuration

Please observe that traditional maps addresses are divided by 2 to make them compatible with Xilinx Microblaze I2C routines.

		// IO Map
		{0x4C, 0xFF, 0x80}, // I2C reset
		{0x4C, 0xF4, 0x80}, // Programmable I2C slave address for CEC map
		{0x4C, 0xF5, 0x7C}, // Programmable I2C slave address for Infoframe map
		{0x4C, 0xF8, 0x4C}, // Programmable I2C slave address for DPLL map (careful since only apparently same IO Map address)
		{0x4C, 0xF9, 0x64}, // Programmable I2C slave address for KSV map
		{0x4C, 0xFA, 0x6C}, // Programmable I2C slave address for EDID map
		{0x4C, 0xFB, 0x68}, // Programmable I2C slave address for HDMI map
		{0x4C, 0xFD, 0x44}, // Programmable I2C slave address for CP map

		{0x4C, 0x00, 0x02}, // Sets input video standard (default value)

		{0x4C, 0x01, 0x06}, // Vertical frequency 60Hz, primary mode HDMI-GR (graphics)

		{0x4C, 0x02, 0xF2}, // Auto CSC mode, no conversion, full 0 to 255 output range, RGB color space output, data saturator disabled

		{0x4C, 0x03, 0x40}, // Data format and pixel bus configuration: 24-bit SDR 4:4:4 mode

		{0x4C, 0x04, 0x62}, // Default pixel pins configuration (P[23:16] R, P[15:8] G, P[7:0] B) and XTAL frequency selection (28.63636 MHz)

		{0x4C, 0x05, 0x28}, // DE output selected, blank data during blanking periods, AV codes off

		{0x4C, 0x06, 0xA2}, // VSYNC output selected, negative DE polarity, negative VSYNC polarity, positive HSYNC polarity, do not invert LLC

		{0x4C, 0x0B, 0x44}, // Power up CP, digital sections of HDMI block, and XTAL buffer to the digital core
		{0x4C, 0x0C, 0x42}, // Chip is operational, power save mode disabled, powers up CP core clock, and digital output pins pads
		{0x4C, 0x14, 0x7F}, // Set max drive strength for output data, LLC, HSYNC, VSYNC, and DE
		{0x4C, 0x15, 0x80}, // Disable tristate of pins

		{0x4C, 0x19, 0x83}, // Enable LLC DLL
		{0x4C, 0x33, 0x40}, // Muxes the DLL output on LLC output

		// CP Map (0x22 is the 7-bit address equivalent of 0x44.
		//         This is due to an endianness conflict between ADV7610 and the Microblaze routines.)
		{0x22, 0x91, 0x00}, // Progressive video mode

		{0x22, 0xBA, 0x00},   // Disable HDMI free run

		{0x22, 0xC9, 0x2D},   // Disable buffering of timing parameters used for free run in HDMI mode
		{0x22, 0xF2, 0x04},   // Enable CRC checking

		// KSV (Repeater) Map (0x32 is the 7-bit address equivalent of 0x64)
		{0x32, 0x40, 0x81}, // Disable HDCP 1.1 features

		// HDMI Map (0x34 is the 7-bit address equivalent of 0x68)
		{0x34, 0x00, 0x00}, // I2C address for HDCP port is 0x74, set HDMI input Port A
		{0x34, 0x83, 0xFE}, // Enable clock termination on port A
		{0x34, 0x8D, 0x04}, // LF gain equalizer settings
		{0x34, 0x8E, 0x1E}, // HF gain equalizer settings
		{0x34, 0x1A, 0x8A}, // Discard audio sample packets with invalid parity bit, unmute audio
		{0x34, 0x96, 0x01}, // Enable HDMI Equalizer Dynamic Control
		// ADI recommends that these register settings are programmed to setup the ADV7610 correctly in HDMI mode
		{0x34, 0x9B, 0x03}, // ADI recommended setting
		{0x34, 0x6F, 0x08}, // ADI recommended setting
		{0x34, 0x85, 0x1F}, // ADI recommended setting
		{0x34, 0x87, 0x70}, // ADI recommended setting
		{0x34, 0x57, 0xDA}, // ADI recommended setting
		{0x34, 0x58, 0x01}, // ADI recommended setting
		// For non-fast switching applications, the following settings are recommended
		{0x34, 0xC1, 0x01}, // ADI recommended setting
		{0x34, 0xC2, 0x01}, // ADI recommended setting
		{0x34, 0xC3, 0x01}, // ADI recommended setting
		{0x34, 0xC4, 0x01}, // ADI recommended setting
		{0x34, 0xC5, 0x01}, // ADI recommended setting
		{0x34, 0xC6, 0x01}, // ADI recommended setting
		{0x34, 0xC7, 0x01}, // ADI recommended setting
		{0x34, 0xC8, 0x01}, // ADI recommended setting
		{0x34, 0xC9, 0x01}, // ADI recommended setting
		{0x34, 0xCA, 0x01}, // ADI recommended setting
		{0x34, 0xCB, 0x01}, // ADI recommended setting
		{0x34, 0xCC, 0x01}, // ADI recommended setting
		{0x34, 0x75, 0x10}, // DDC drive strength

		// KSV (Repeater) Map
		{0x32, 0x74, 0x00}, // Disable internal EDID for port A

// EDID Map

		// KSV (Repeater) Map
		{0x32, 0x74, 0x01}, // Enable internal EDID for port A

		{0x34, 0x6C, 0xA3} // Manual HPA enable (set high by default)