Hardware User Guide UG-438 One Technology Way • P.O. Box 9106 • Norwood, MA 02062-9106, U.S.A. • Tel: 781.329.4700 • Fax: 781.461.3113 • www.analog.com Advantiv ADV7610 HDMI Receiver Functionality and Features SCOPE This user guide provides a detailed description of the Advantiv® ADV7610 HDMI® receiver functionality and features. DISCLAIMER Information furnished by Analog Devices, Inc., is believed to be accurate and reliable. However, no responsibility is assumed by Analog Devices for its use, nor any infringements of patents or other rights of third parties that may result from its use. Specifications are subject to change without notice. No license is granted by implication or otherwise under any patent or patent rights of Analog Devices. Trademarks and registered trademarks are the property of their respective owners. FUNCTIONAL BLOCK DIAGRAM 12 SCL SDA CEC CEC CONTROLLER RXA_5V HPA_A/INT2* 5V DETECT AND HPD CONTROLLER DDCA_SDA DDCA_SCL RXA_C± RXA_0± RXA_1± RXA_2± BACKEND COLOR SPACE CONVERSION CONTROL INTERFACE I2C CONTROL AND DATA 12 12 P0 TO P7 P8 TO P15 P16 TO P23 LLC HS VS/FIELD/ALSB DE INTERRUPT CONTROLLER (INT1, INT2) HDMI PROCESSOR EDID REPEATER CONTROLLER INT1 INT2* COMPONENT PROCESSOR HDCP EEPROM PLL EQUALIZER OUTPUT FORMATTER DPLL EQUALIZER HDCP ENGINE DATA PREPROCESSOR AND COLOR SPACE CONVERSION A B C PACKET/ INFOFRAME MEMORY PACKET PROCESSOR MUTE AUDIO PROCESSOR AUDIO OUTPUT FORMATTER XTALP XTALN I2S0 TO I2S3 LRCLK SCLK/INT2* MCLK/INT2* *INT2 CAN BE ONLY OUTPUT ON ONE OF THE PINS: SCLK/INT2, MCLK/INT2, OR HPA_A/INT2. Figure 1. PLEASE SEE THE LAST PAGE FOR AN IMPORTANT WARNING AND LEGAL TERMS AND CONDITIONS. Rev. 0 | Page 1 of 184 10884-001 ADV7610 UG-438 Hardware User Guide TABLE OF CONTENTS Scope .................................................................................................. 1 Video 3D Detection ................................................................... 32 Disclaimer .......................................................................................... 1 TMDS Measurement.................................................................. 33 Functional Block Diagram .............................................................. 1 Deep Color Mode Support ........................................................ 34 Revision History ............................................................................... 3 Video FIFO.................................................................................. 34 Using the ADV7610 Hardware User Guide .................................. 4 Pixel Repetition .......................................................................... 36 Number Notations ........................................................................ 4 HDCP Support ........................................................................... 37 Register Access Conventions ...................................................... 4 HDMI Synchronization Parameters ........................................ 41 Acronyms and Abbreviations ..................................................... 4 Audio Control and Configuration ........................................... 46 Field Function Descriptions........................................................ 6 Audio FIFO ................................................................................. 48 References ...................................................................................... 6 Audio Packet Type Flags ........................................................... 49 Introduction to the ADV7610 ........................................................ 7 Audio Output Interface ............................................................. 51 HDMI Receiver ............................................................................. 7 MCLKOUT Setting .................................................................... 57 Component Processor ................................................................. 7 Audio Channel Mode ................................................................ 57 Main Features of ADV7610 ........................................................ 7 Audio Muting.............................................................................. 58 Pin Configuration and Function Descriptions......................... 9 Audio Clock Regeneration Parameters ................................... 62 Global Control Registers ............................................................... 11 Channel Status ............................................................................ 63 ADV7610 Revision Identification ............................................ 11 Packets and InfoFrames Registers ............................................ 67 Power-Down Controls ............................................................... 11 Packet Registers .......................................................................... 74 Global Pin Control ..................................................................... 13 Customizing Packet/InfoFrame Storage Registers ................. 78 Primary Mode and Video Standard ............................................. 18 Repeater Support ........................................................................ 79 Primary Mode and Video Standard Controls......................... 18 Interface to DPP Section ........................................................... 86 HDMI Decimation Modes ........................................................ 20 Pass Through Mode ................................................................... 87 Primary Mode and Video Standard Configuration for HDMI Free Run ....................................................................................... 20 Color Space Information Sent to the DPP and CP Sections 88 Recommended Settings for HDMI Inputs .............................. 21 HDMI Section Reset Strategy ................................................... 91 Pixel Port Configuration................................................................ 23 HDMI Packet Detection Flag Reset ......................................... 91 Pixel Port Output Modes ........................................................... 23 LLC Controls ............................................................................... 24 Data Preprocessor and Color Space Conversion and Color Controls ........................................................................................... 92 DLL on LLC Clock Path ............................................................ 24 Color Space Conversion Matrix ............................................... 92 HDMI Receiver ............................................................................... 26 Color Controls .......................................................................... 101 +5 V Cable Detect ...................................................................... 26 Component Processor ................................................................. 103 Hot Plug Assert ........................................................................... 27 Introduction to the Component Processor........................... 103 E-EDID/Repeater Controller .................................................... 29 Clamp Operation ...................................................................... 103 E-EDID Data Configuration ..................................................... 29 CP Gain Operation .................................................................. 105 Transitioning of Power Modes.................................................. 30 CP Offset Block ........................................................................ 109 Structure of Internal E-EDID ................................................... 30 AV Code Block ......................................................................... 110 TMDS Equalization .................................................................... 31 CP Data Path for HDMI Modes ............................................. 112 Port Selection .............................................................................. 31 Sync Processed by CP Section ................................................ 115 TMDS Clock Activity Detection .............................................. 31 CP Output Synchronization Signal Positioning ................... 122 HDMI/DVI Status Bits .............................................................. 32 CP HDMI Controls .................................................................. 134 Status Registers ........................................................................... 88 Rev. 0 | Page 2 of 184 Hardware User Guide UG-438 Free Run Mode ......................................................................... 134 Register Access and Serial Ports Description ............................174 CP Status ................................................................................... 138 Main I2C Port .............................................................................174 CP Core Bypassing .................................................................... 138 DDC Ports..................................................................................177 Consumer Electronics Control ................................................... 139 Appendix A ....................................................................................178 Main Controls ........................................................................... 139 PCB Layout Recommendations ..............................................178 CEC Transmit Section ............................................................. 140 Power Supply Bypassing ...........................................................178 CEC Receive Section................................................................ 142 Digital Outputs (Data and Clocks) .........................................178 Antiglitch Filter Module.......................................................... 147 Digital Inputs .............................................................................179 Typical Operation Flow ........................................................... 148 XTAL and Load Cap Value Selection .....................................179 Low Power CEC Message Monitoring .................................. 151 Appendix B ....................................................................................180 Interrupts ....................................................................................... 153 Recommended Unused Pin Configurations .........................180 Interrupt Architecture Overview ........................................... 153 Appendix C ....................................................................................182 Interrupt Pins ............................................................................ 156 Pixel Output Formats ...............................................................182 Description of Interrupt Bits .................................................. 159 Additional Explanations .......................................................... 160 REVISION HISTORY 2/13—Revision 0: Initial Version Rev. 0 | Page 3 of 184 UG-438 Hardware User Guide USING THE ADV7610 HARDWARE USER GUIDE NUMBER NOTATIONS Table 1. Notation Bit N V[X:Y] 0xNN 0bNN NN Description Bits are numbered in little endian format, that is, the least significant bit of a number is referred to as Bit 0. Bit field representation covering Bit X to Bit Y of a value or a field (V). Hexadecimal (base-16) numbers are preceded by the prefix ‘0x’. Binary (base-2) numbers are preceded by the prefix ‘0b’. Decimal (base-10) are represented using no additional prefixes or suffixes. REGISTER ACCESS CONVENTIONS Table 2. Mode R/W R W Description Memory location has read and write access. Memory location is read access only. A read always returns 0 unless otherwise specified. Memory location is write access only. ACRONYMS AND ABBREVIATIONS Table 3. Acronym/Abbreviation ACP AGC Ainfo AKSV An AP AVI BCAPS BKSV CP CSC DDR DE DLL DPP DVI EAV EMC EQ HD HDCP HDMI HDTV HPA HPD HSync IC ISRC I2 S I2 C Description Audio content protection. Automatic gain control. HDCP register. Refer to digital content protection documentation in the References section. HDCP transmitter key selection vector. Refer to digital content protection documentation in the References section. 64-bit pseudo-random value generated by HDCP cipher function of Device A. Audio output pin. Auxiliary video information. HDCP register. Refer to digital content protection documentation in the References section. HDCP receiver key selection vector. Refer to digital content protection documentation in the References section. Component processor. Color space converter/conversion. Double data rate. Data enable. Delay locked loop. Data preprocessor. Digital visual interface. End of active video. Electromagnetic compatibility. Equalizer. High definition. High bandwidth digital content protection. High bandwidth multimedia interface. High definition television. Hot plug assert. Hot plug detect. Horizontal synchronization. Integrated circuit. International standard recording code. Inter IC sound. Inter integrated circuit. Rev. 0 | Page 4 of 184 Hardware User Guide Acronym/Abbreviation KSV LLC LSB L-PCM Mbps MPEG ms MSB NC OTP Pj’ Ri’ Rx SAV SDR SHA-1 SMPTE SOG SOY SPA SPD STDI TMDS Tx VBI VSync XTAL UG-438 Description Key selection vector. Line locked clock. Least significant bit. Linear pulse coded modulated. Megabit per second. Moving picture expert group. Millisecond. Most significant bit. No connect. One-time programmable. HDCP enhanced link verification response. Refer to digital content protection documentation in the References section. HDCP link verification response. Refer to digital content protection documentation in the References section. Receiver. Start of active video. Single data rate. Refer to HDCP documentation. Society of Motion Picture and Television Engineers. Sync on green. Sync on Y. Source physical address. Source production descriptor. Standard detection and identification. Transition minimized differential signaling. Transmitter. Video blanking interval. Vertical synchronization. Crystal oscillator. Rev. 0 | Page 5 of 184 UG-438 Hardware User Guide FIELD FUNCTION DESCRIPTIONS Throughout this user guide, a series of function tables are provided. The function of a field is described in a table preceded by the bit name, a short function description, the I2C map, the register location within the I2C map, and a detailed description of the field. The detailed description consists of: • • For a readable field, the values the field can take For a writable field, the values the field can be set to Example Field Function Description This section provides an example of a field function table followed by a description of each part of the table. PRIM_MODE[3:0], IO Map, Address 0x01[3:0]. A control to select the primary mode of operation of the decoder. Function PRIM_MODE[3:0] 0000 0001 0010 0011 0100 0101 0110 (default) 0111 to 1111 Description Reserved Reserved Reserved Reserved Reserved HDMI-Comp HDMI-GR Reserved In this example • The name of the field is PRIM_MODE and it is four bit long. • Address 0x01 is the I2C location of the field in big endian format (MSB first, LSB last). • The address is followed by a detailed description of the field. • The first column of the table lists values the field can take or can be set to. These values are in binary format if not preceded by 0x or in hexadecimal format if preceded by 0x. • The second column describes the function of each field for each value the field can take or can be set to. Values are in binary format. REFERENCES CEA, CEA-861-D, A DTV Profile for Uncompressed High Speed Digital Interfaces, Revision D, July 18, 2006. Digital Content Protection (DCP) LLC, High-Bandwidth Digital Content Protection System, Revision 1.4, July 8, 2009. HDMI Licensing and LLC, High-Definition Multimedia Interface, Revision 1.4a, March 4, 2010. ITU, ITU-R BT.656-4, Interface for Digital Component Video Signals in 525-Line and 625-Line Television Systems Operating at the 4:2:2 Level of Recommendation ITU-R BT.601, February 1998. Rev. 0 | Page 6 of 184 Hardware User Guide UG-438 INTRODUCTION TO THE ADV7610 The ADV7610 is a high quality, single input, high definition multimedia interface (HDMI®) receiver. It incorporates an HDMI receiver that supports all mandatory HDMI 1.4a 3D TV formats up to 1080 p60@8-bit. It integrates a CEC controller that supports the capability discovery and control (CDC) feature. The ADV7610 has an audio output port for the audio data extracted from the HDMI stream. The receiver has an advanced mute controller that prevents audible extraneous noise in the audio output. Fabricated in an advanced CMOS process, the ADV7610 is provided in a 6 mm × 6 mm, 76-ball surface-mount chip-scale package BGA, RoHS-compliant package and is specified over the −40°C to +85°C temperature range. HDMI RECEIVER The ADV7610 HDMI receiver incorporates equalization of the HDMI data signals to compensate for the losses inherent in HDMI and DVI cabling, especially at longer lengths and higher frequencies. The equalizer is highly effective and is capable of equalizing for long cables to achieve robust receiver performance. With the inclusion of high-bandwidth digital content protection (HDCP), displays can receive encrypted video content. The HDMI interface of the ADV7610 allows a video receiver to authenticate, decrypt encoded data and renew that authentication during transmission, as specified by the HDCP v1.4 protocol. The ADV7610 offers a flexible audio output port for audio data extraction from the HDMI stream. HDMI audio formats, including super audio CD (SACD) via direct stream digital (DSD and high bit rate (HBR) are supported by the ADV7610. The HDMI receiver has advanced audio functionality, such as a mute controller, that prevents audible extraneous noise in the audio output. COMPONENT PROCESSOR The component processor (CP) is located behind the HDMI receiver. It processes the video data received from the HDMI receiver. The CP section provides color adjustment features, such as brightness, saturation, and hue. The color space conversion (CSC) matrix allows the color space to be changed as required. The standard detection and identification (STDI) block allows the detection of video timings. MAIN FEATURES OF ADV7610 HDMI Receiver • • • • • • • • • HDMI 1.4a features supported • 3D HDMI 1.4a video format support • Full colorimetry, including sYCC601, Adobe RGB, Adobe YCC601, and xvYCC extended gamut color • CEC 1.4-compatible HDCP v1.4-compliant receiver Supports all display resolutions up to UXGA 60 Hz 8-bit Supports multichannel audio with sampling frequency up to 192 kHz Programmable front-end equalization for long cable lengths Audio mute for removing extraneous noise Programmable interrupt generator to detect HDMI packets Internal EDID support Repeater support Component Video Processing • • • • An any-to-any 3 × 3 CSC matrix support YCrCb to RGB and RGB to YCrCb Provides color controls, such as saturation, brightness, hue, and contrast STDI block that enables format detection Free run output mode provides stable timing when no video input is present Rev. 0 | Page 7 of 184 UG-438 Hardware User Guide Video Output Formats • • • • • Double data rate (DDR) 8-/12-bit 4:2:2 YCrCb. • DDR supported only up to 50 MHz (an equivalent to data rate clocked with 100 MHz clock in SDR mode) Pseudo DDR (CCIR-656 type stream) 8-/12-bit 4:2:2 YCrCb for 525i, 625i, 525P, and 625P SDR 16-/24-bit 4:2:2 YCrCb for all standards SDR 24-bit 4:4:4 YCrCb/RGB for all HDMI standards DDR 24-bit 4:4:4 RGB Additional Features • • • • HS, VS, FIELD, and DE output signals with programmable position, polarity, and width Numerous interrupt sources available for the INT1 and INT2 interrupt request output pins, available via one of the selected pins, that is, SCLK/INT2, MCLK/INT2, or HPA_A/INT2 Temperature range of −40°C to +85°C 6 mm × 6 mm, 76-ball surface-mount chip-scale package BGA Rev. 0 | Page 8 of 184 Hardware User Guide UG-438 PIN CONFIGURATION AND FUNCTION DESCRIPTIONS 1 2 3 4 5 6 7 8 9 10 A HPA_A/ INT2 RXA_5V DDCA_SCL PVDD XTALN XTALP INT1 MCLK/ INT2 SCLK/ INT2 DVDD B TVDD TVDD DDCA_SDA CEC CS RESET SDA SCL LRCLK DVDD C RXA_C+ RXA_C– I2S3 I2S1 D RXA_0+ RXA_0– GND DVDD I2S2 I2S0 E RXA_1+ RXA_1– GND DVDD VS/ FIELD/ ALSB DE F RXA_2+ RXA_2– GND DVDDIO HS P0 G CVDD CVDD GND DVDDIO P1 P2 H P23 P22 P3 P4 J P21 P18 P16 P15 P13 P11 P9 P7 P5 DVDDIO K P20 P19 P17 LLC P14 P12 P10 P8 P6 DVDDIO GND GND 10884-100 GND GND Figure 2. Pin Configuration Table 4. Pin Function Descriptions Ball No. D4, D5, D6, E4, F4, G4, G5, G6 A1 Mnemonic GND Type Ground Description Ground. HPA_A/INT2 Miscellaneous digital G1, G2 B1, B2 F7, G7, J10, K10 A10, B10, D7, E7 A4 C2 C1 D2 D1 E2 E1 F2 F1 H1 H2 CVDD TVDD DVDDIO DVDD PVDD RXA_C− RXA_C+ RXA_0− RXA_0+ RXA_1− RXA_1+ RXA_2− RXA_2+ P23 P22 Power Power Power Power Power HDMI input HDMI input HDMI input HDMI input HDMI input HDMI input HDMI input HDMI input Digital video output Digital video output A dual function pin that can be configured to output a hot plug assert signal (for HDMI Port A) or an Interrupt 2 signal. HDMI Analog Block Supply Voltage (1.8 V). Terminator Supply Voltage (3.3 V). Digital I/O Supply Voltage (3.3 V). Digital Core Supply Voltage (1.8 V). PLL Supply Voltage (1.8 V). Digital Input Clock Complement of Port A in the HDMI Interface. Digital Input Clock True of Port A in the HDMI Interface. Digital Input Channel 0 Complement of Port A in the HDMI Interface. Digital Input Channel 0 True of Port A in the HDMI Interface. Digital Input Channel 1 Complement of Port A in the HDMI Interface. Digital Input Channel 1 True of Port A in the HDMI Interface. Digital Input Channel 2 Complement of Port A in the HDMI Interface. Digital Input Channel 2 True of Port A in the HDMI Interface. Video Pixel Output Port. Video Pixel Output Port. Rev. 0 | Page 9 of 184 UG-438 Hardware User Guide Ball No. J1 K1 K2 J2 K3 J3 K4 J4 K5 J5 K6 J6 K7 J7 K8 J8 K9 J9 H10 H9 G10 G9 F10 E10 F9 E9 Mnemonic P21 P20 P19 P18 P17 P16 LLC P15 P14 P13 P12 P11 P10 P9 P8 P7 P6 P5 P4 P3 P2 P1 P0 DE HS VS/FIELD/ALSB Type Digital video output Digital video output Digital video output Digital video output Digital video output Digital video output Digital video output Digital video output Digital video output Digital video output Digital video output Digital video output Digital video output Digital video output Digital video output Digital video output Digital video output Digital video output Digital video output Digital video output Digital video output Digital video output Digital video output Miscellaneous digital Digital video output Digital input/output D10, C10, D9, C9 A9 I2S0 to I2S3 Miscellaneous digital SCLK/INT2 Miscellaneous digital B9 A8 LRCLK MCLK/INT2 Miscellaneous digital Miscellaneous digital B8 B7 A7 SCL SDA INT1 Miscellaneous digital Miscellaneous digital Miscellaneous digital B6 RESET Miscellaneous digital A6 XTALP A5 XTALN B4 B5 A3 B3 A2 CEC CS DDCA_SCL DDCA_SDA RXA_5V Miscellaneous analog Miscellaneous analog Digital input/output Miscellaneous digital HDMI input HDMI input HDMI input Description Video Pixel Output Port. Video Pixel Output Port. Video Pixel Output Port. Video Pixel Output Port. Video Pixel Output Port. Video Pixel Output Port. Line-Locked Output Clock for the Pixel Data (Range = 13.5 MHz to 162.5 MHz). Video Pixel Output Port. Video Pixel Output Port. Video Pixel Output Port. Video Pixel Output Port. Video Pixel Output Port. Video Pixel Output Port. Video Pixel Output Port. Video Pixel Output Port. Video Pixel Output Port. Video Pixel Output Port. Video Pixel Output Port. Video Pixel Output Port. Video Pixel Output Port. Video Pixel Output Port. Video Pixel Output Port. Video Pixel Output Port. Data enable (DE) is a signal that indicates active pixel data. Horizontal Synchronization Output Signal. Vertical Synchronization Output Signal. FIELD is a field synchronization output signal in all interlaced video modes. VS or FIELD can be configured for this pin. The ALSB allows selection of the I2C address. Audio Output Pins. Pins can be configured to output S/PDIF digital audio output (S/PDIF) or I2S. A dual function pin that can be configured to output an audio serial clock or an Interrupt 2 signal. Audio Left/Right Clock. A dual function pin that can be configured to output an audio master clock or an Interrupt 2 signal. I2C Port Serial Clock Input Pin. SCL is the clock line for the control port. I2C Port Serial Data Input/Output Pin. SDA is the data line for the control port. Interrupt. This pin can be active low or active high. When status bits change, this pin is triggered. The events that trigger an interrupt are under user configuration. System Reset Input. Active low. A minimum low reset pulse width of 5 ms is required to reset the ADV7610 circuitry. Input Pin for a 28.63636 MHz Crystal, or an External 1.8 V, 28.63636 MHz Clock Oscillator Source to Clock the ADV7610. Crystal Input. Input pin for 28.63636 MHz crystal. Consumer Electronic Control Channel. Chip Select. Pulling this line up causes I2C state machine to ignore I2C transmission. HDCP Slave Serial Clock Port A. DDCA_SCL is a 3.3 V input that is 5 V tolerant. HDCP Slave Serial Data Port A. DDCA_SDA is a 3.3 V input that is 5 V tolerant. 5 V Detect Pin for Port A in the HDMI Interface. Rev. 0 | Page 10 of 184 Hardware User Guide UG-438 GLOBAL CONTROL REGISTERS The register control bits described in this section deal with the general control of the chip, and the CP and the HDMI receiver sections of the ADV7610. ADV7610 REVISION IDENTIFICATION RD_INFO[15:0], IO, Address 0xEA[7:0]; Address 0xEB[7:0] (Read Only) Chip revision code. Function RD_INFO[15:0] 0x2051 = Final Silicon ADV7610 Description ADV7610 POWER-DOWN CONTROLS Primary Power-Down Controls POWER_DOWN is the main power-down control. It is the main control for power-down Mode 0 and Mode 1. See the Power-Down Modes section for more details. POWER_DOWN, IO, Address 0x0C[5] A control to enable power-down mode. This is the main I2C power-down control. Function POWER_DOWN 0 1 (default) Description Chip operational Enables chip power down Secondary Power-Down Controls The following controls allow various sections of the ADV7610 to be powered down. It is possible to stop the clock to the CP to reduce power for a power-sensitive application. The CP_PWRDN bit enables this power-save mode. The HDMI block is not affected by this power-save mode. This allows the use of limited HDMI, STDI monitoring features while reducing the power consumption. For full processing of the HDMI input, the CP core needs to be powered up. CP_PWRDN, IO, Address 0x0C[2] A power-down control for the CP core. Function CP_PWRDN 0 (default) 1 Description Powers up clock to CP core. Powers down clock to CP core. HDMI block not affected by this bit. XTAL_PDN XTAL_PDN allows the user to power down the XTAL clock in the following sections: • • • • STDI blocks Free run synchronization generation block I2C sequencer block, which is used for the configuration of the gain, clamp, and offset CP and HDMI section The XTAL clock is also provided to the HDCP engine, EDID, and the repeater controller within the HDMI receiver. The XTAL clock within these sections is not affected by XTAL_PDN. XTAL_PDN, IO, Address 0x0B[0] A power-down control for the XTAL in the digital blocks. Function XTAL_PDN 0 (default) 1 Description Powers up XTAL buffer to digital core Powers down XTAL buffer to digital core Rev. 0 | Page 11 of 184 UG-438 Hardware User Guide CORE_PDN CORE_PDN allows the user to power down clocks, with the exception of the XTAL clock, in the following sections: • • CP block Digital section of the HDMI block CORE_PDN, IO, Address 0x0B[1] A power-down control for the DPP, CP core, and digital sections of the HDMI core. Function CORE_PDN 0 (default) 1 Description Powers up CP and digital sections of HDMI block Powers down CP and digital section of HDMI block Power-Down Modes The ADV7610 supports the following power-down modes: • • Power-Down Mode 0 Power-Down Mode 1 Table 5 shows the power-down and normal modes of ADV7610. Table 5. Power-Down Modes POWER_DOWN Bit 0 0 1 1 1 CEC_POWER_UP Bit 0 1 0 1 CEC Disabled Enabled Disabled Enabled EDID Enabled Enabled Enabled1 Enabled1 Power-Down Mode Power-Down Mode 0 Power-Down Mode 1 Normal mode Normal mode Dependent on the values of EDID_X_ENABLE_CPU and EDID_X_ENABLE for the HDMI port (where X is A). Power-Down Mode 0 In Power-Down Mode 0, selected sections and pads are kept active to provide EDID and +5 V antiglitch filter functionality. In Power-Down Mode 0, the sections of the ADV7610 are disabled except for the following blocks: • • • I2C slave section. EDID/repeater controller. EDID ring oscillator. The ring oscillator provides a clock to the EDID/repeater controller (refer to the E-EDID/Repeater Controller section) and the +5 V power supply antiglitch filter. The clock output from the ring oscillator runs at approximately 50 MHz. The following pads only are enabled in Power-Down Mode 0: • • • • I2C pads • SDA • SCL +5 V pads • RXA_5V • HPA_A DDC pads • DDCA_SCL • DDCA_SDA Reset pad RESET Power-Down Mode 0 is initiated through a software (I2C register) configuration. Rev. 0 | Page 12 of 184 Hardware User Guide UG-438 Entering Power-Down Mode 0 via Software The ADV7610 can be put into Power-Down Mode 0 by setting POWER_DOWN to 1 (default value) and CEC_POWER_UP to 0. This method allows an external processor to put the system in which the ADV7610 is integrated into standby mode. In this case, the CP and HDMI cores of the ADV7610 are kept powered up from the main power (for example, ac power) and set in or out of power-down Mode 0 through the POWER_DOWN bit. Power-Down Mode 1 Power-Down Mode 1 is enabled when the following conditions are met: • • POWER_DOWN bit is set to 1 CEC section is enabled by setting CEC_POWER_UP to 1 Power-Down Mode 1 provides the same functionality as Power-Down Mode 0, with the addition of the following sections: • • • XTAL clock CEC section Interrupt controller section The following pads are enabled in Power-Down Mode 1: • • • Same pads as enabled in Power-Down Mode 0 CEC pad INT1 and INT2 interrupt pads The internal EDID is also accessible through the DDC bus for Port A in Power-Down Mode 0 and Power-Down Mode 1. GLOBAL PIN CONTROL Reset Pin The ADV7610 can be reset by a low reset pulse on the reset pin with a minimum width of 5 ms. It is recommended to wait 5 ms after the low pulse before an I2C write is performed to the ADV7610. Reset Controls MAIN_RESET, IO, Address 0xFF[7] (Self-Clearing) Main reset where I2C registers are reset to their default values. Function MAIN_RESET 0 (default) 1 Description Normal operation Applies main I2C reset Tristate Output Drivers PADS_PDN, IO, Address 0x0C[0] A power-down control for pads of the digital output s. When enabled, the pads are tristated and the input path is disabled. This control applies to the DE, HS, VS/FIELD/ALSB, INT1, and LLC pads and to the P0 to P23 pixel pads. Function PADS_PDN 0 (default) 1 Description Powers up pads of digital output pins Powers down pads of digital output pins DDC_PWRDN[7:0], Addr 68 (HDMI), Address 0x73[7:0] A power-down control for DDC pads. Function DDC_PWRDN[7:0] 0 (default) 1 Description Powers up DDC pads Powers down DDC pads Rev. 0 | Page 13 of 184 UG-438 Hardware User Guide TRI_PIX This bit allows the user to tristate the output driver of pixel outputs. Upon setting TRI_PIX, the pixel output P[23:0] is tristated. TRI_PIX, IO, Address 0x15[1] A control to tristate the pixel data on the pixel pins, P[23:0]. Function TRI_PIX 0 1 (default) Description Pixel bus active Tristates pixel bus Tristate LLC Driver TRI_LLC, IO, Address 0x15[2] A control to tristate the output pixel clock on the LLC pin. Function TRI_LLC 0 1 (default) Description LLC pin active Tristates LLC pin Tristate Synchronization Output Drivers The following output synchronization signals are tristated when TRI_SYNCS is set: • • • VS/FIELD/ALSB HS DE The drive strength controls for these signals are provided via the DR_STR_SYNC bits. The ADV7610 does not support tristating via a dedicated pin. TRI_SYNCS, IO, Address 0x15[3] Synchronization output pins tristate control. The synchronization pins under this control are HS, VS/FIELD/ALSB, and DE. Function TRI_SYNCS 0 1 (default) Description Sync output pins active Tristates sync output pins Tristate Audio Output Drivers TRI_AUDIO, IO Map, Address 0x15[4] TRI_AUDIO allows the user to tristate the drivers of the following audio output signals: • • • • AP SCLK/INT2 LRCLK MCLK/INT2 The drive strength for the output pins can be controlled by the DR_STR[1:0] bits. The ADV7610 does not support tristating via a dedicated pin. TRI_AUDIO, IO, Address 0x15[4] A control to tristate the audio output interface pins (AP). Function TRI_AUDIO 0 1 (default) Description Audio output pins active Tristates audio output pins Rev. 0 | Page 14 of 184 Hardware User Guide UG-438 Drive Strength Selection DR_STR It may be desirable to strengthen or weaken the drive strength of the output drivers for electromagnetic compatibility (EMC) and crosstalk reasons. This section describes the controls to adjust the output drivers used by the CP and HDMI modes. The drive strength DR_STR_SYNC[1:0] bits allow the user to select the strength of the following synchronization signals: • • • DE HS VS/FIELD The DR_STR[1:0] drive strength bits affect output drivers for the following output pins: • P[23:0] • AP • SCLK • SDA • SCL The drive strength DR_STR_CLK[1:0] bits affect output driver for LLC line. DR_STR[1:0], IO, Address 0x14[5:4] A control to set the drive strength of the data output drivers. Function DR_STR[1:0] 00 01 10 (default) 11 Description Reserved Medium low (2×) Medium high (3×) High (4×) DR_STR_CLK[1:0], IO, Address 0x14[3:2] A control to set the drive strength control for the output pixel clock out signal on the LLC pin. Function DR_STR_CLK[1:0] 00 01 10 (default) 11 Description Reserved Medium low (2×) for LLC up to 60 MHz Medium high (3×) for LLC from 44 MHz to 105 MHz High (4×) for LLC greater than 100 MHz DR_STR_SYNC[1:0], IO, Address 0x14[1:0] A control to set the drive strength of the synchronization pins, HS, VS/FIELD/ALSB, and DE. Function DR_STR_SYNC[1:0] 00 01 10 (default) 11 Description Reserved Medium low (2×) Medium high (3×) High (4×) Output Synchronization Selection VS_OUT_SEL, IO, Address 0x06[7] A control to select the VSync or FIELD signal to be output on the VS/FIELD/ALSB pin. Function VS_OUT_SEL 0 1 (default) Description Selects FIELD output on VS/FIELD/ALSB pin Selects VSync output on VS/FIELD/ALSB pin Rev. 0 | Page 15 of 184 UG-438 Hardware User Guide F_OUT_SEL, IO, Address 0x05[4] A control to select the DE or FIELD signal to be output on the DE pin. Function F_OUT_SEL 0 (default) 1 Description Selects DE output on DE pin Selects FIELD output on DE pin Output Synchronization Signals Polarity INV_LLC_POL, IO Map, Address 0x06, [0] The polarity of the pixel clock provided by the ADV7610 via the LLC pin can be inverted using the INV_LLC_POL bit. Note that this inversion affects only the LLC output pin. The other output pins are not affected by INV_LLC_POL. Changing the polarity of the LLC clock output may be necessary in order to meet the setup and hold time expectations of the downstream devices processing the output data of the ADV7610. It is expected that these parameters must be matched regardless of the type of video data that is transmitted. Therefore, INV_LLC_POL is designed to be mode independent. INV_LLC_POL, IO, Address 0x06[0] A control to select the polarity of the LLC. Function INV_LLC_POL 0 (default) 1 Description Does not invert LLC Inverts LLC The output synchronization signals HS, VS/FIELD/ALSB, and DE can be inverted using the following control bits: • • • INV_HS_POL INV_VS_POL INV_F_POL INV_HS_POL, IO, Address 0x06[1] A control to select the polarity of the HS signal. Function INV_HS_POL 0 (default) 1 Description Negative polarity HS Positive polarity HS INV_VS_POL, IO, Address 0x06[2] A control to select the polarity of the VS/FIELD/ALSB signal. Function INV_VS_POL 0 (default) 1 Description Negative polarity VS/FIELD/ALSB Positive polarity VS/FIELD/ALSB INV_F_POL, IO, Address 0x06[3] A control to select the polarity of the DE signal. Function INV_F_POL 0 (default) 1 Description Negative FIELD/DE polarity Positive FIELD/DE polarity Rev. 0 | Page 16 of 184 Hardware User Guide UG-438 Digital Synthesizer Controls The ADV7610 features two digital encoder synthesizers that generate the following clocks: • • Video DPLL: this clock synthesizer generates the pixel clock. It undoes the effect of deep color and pixel repetition that are inherent to HDMI streams. The output of the LLC pin is either this pixel clock or a divided down version, depending on the datapath configuration. It takes less than one video frame for this synthesizer to lock. Audio DPLL: this clock synthesizer generates the audio clock. As per HDMI specifications, the incoming HDMI clock is divided down by CTS and then multiplied up by N. This audio clock is used as the main clock in the audio stream section. The output of MCLK represents this clock. It takes less than 5 ms after a valid ACR packet for this synthesizer to lock. Crystal Frequency Selection The ADV7610 supports 27.0, 28.63636, 24.576, and 24.0 MHz frequency crystals. The control described here allows selection of crystal frequency. XTAL_FREQ_SEL[1:0], IO, Address 0x04[2:1] A control to set the XTAL frequency. Function XTAL_FREQ_SEL[1:0] 00 01 (default) 10 11 Description 27 MHz 28.63636 MHz 24.576 MHz 24.0 MHz Rev. 0 | Page 17 of 184 UG-438 Hardware User Guide PRIMARY MODE AND VIDEO STANDARD Setting the primary mode and choosing a video standard are the most fundamental settings when configuring the ADV7610. There are two primary modes for the ADV7610: HDMI-component and HDMI-graphic modes. The appropriate mode should be set with PRIM_MODE[3:0]. In HDMI modes, the ADV7610 can receive and decode HDMI or DVI data throughout the DVI/HDMI receiver front end. Video data from the HDMI receiver is routed to the CP block while audio data is available on the audio interface. One of these modes is enabled by selecting either the HDMI-component or the HDMI-graphics primary mode. Note: The HDMI receiver decodes and processes any applied HDMI stream irrespective of the video resolution. However, many primary mode and video standard combinations can be used to define how the decoded video data routed to the DPP and CP blocks is processed. This allows for free run features and data decimation modes that some systems may require. If free run and decimation are not required, it is recommended to set the following configuration for HDMI mode: • • PRIM_MODE[3:0]: 0x06 VID_STD[5:0]: 0x02 PRIMARY MODE AND VIDEO STANDARD CONTROLS PRIM_MODE[3:0], IO, Address 0x01[3:0] A control to select the primary mode of operation of the decoder. Setting the appropriate HDMI mode is important for free run mode to work properly. This control is used with VID_STD[5:0]. Function PRIM_MODE[3:0] 0000 0001 0010 0011 0100 0101 0110 (default) 0111 to 1111 Description Reserved Reserved Reserved Reserved Reserved HDMI component HDMI graphics Reserved VID_STD[5:0], IO, Address 0x00[5:0] Sets the input video standard mode. Configuration is dependent on PRIM_MODE[3:0]. Setting the appropriate mode is important for free run mode to work properly. Function VID_STD[5:0] 000010 Description Default value PRIM_MODE[3:0] should be used with VID_STD[5:0] to select the required video mode. These controls are set according to Table 6. Table 6. Primary Mode and Video Standard Selection Code 0000 0001 0010 0100 0011 PRIM_MODE[3:0] Description Reserved Reserved Reserved Reserved Reserved Processor Code xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx VID_STD[5:0] Input Video Output Resolution Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Rev. 0 | Page 18 of 184 Comment Hardware User Guide Code 0101 PRIM_MODE[3:0] Description HDMI-COMP (Component video) UG-438 Processor CP CP CP CP CP CP CP CP CP CP CP CP CP 0110 HDMI-GR (Graphics) CP CP CP CP CP CP CP CP CP CP CP CP CP CP CP CP CP CP CP CP CP CP 0111 1000 1001 Reserved Reserved Reserved Code 000000 000001 000010 000011 000100 000101 000110 000111 001000 001001 001010 001011 001100 001101 001110 001111 010000 010001 010010 010011 010100 010101 010110 010111 011000 011001 011010 011011 011100 011101 011110 011111 000000 000001 000010 000011 000100 000101 000110 000111 001000 001001 001010 001011 001100 001101 001110 001111 01xxxx xxxxxx xxxxxx xxxxxx VID_STD[5:0] Input Video Output Resolution SD 1×1 525i 720 × 480 SD 1×1 625i 720 × 576 SD 2×1 525i 720 × 480 SD 2×1 625i 720 × 576 Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved PR 1×1 525p 720 × 480 PR 1×1 625p 720 × 576 PR 2×1 525p 720 × 480 PR 2×1 625p 720 × 576 Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved HD 1×1 1280 × 720 HD 1×1 1920 × 1080 HD 1×1 1920 × 1035 HD 1×1 1920 × 1080 HD 1×1 1920 × 1152 Reserved Reserved HD 2×1 720p 1280 × 720 HD 2×1 1125 1920 × 1080 HD 2×1 1125 1920 × 1035 HD 2×1 1250 1920 × 1080 HD 2×1 1250 1920 × 1152 HD 1×1 1920 × 1080 HD 1×1 1920 × 1080 SVGA 800 × 600 @ 56 SVGA 800 × 600 @ 60 SVGA 800 × 600 @ 72 SVGA 800 × 600 @ 75 SVGA 800 × 600 @ 85 SXGA 1280 × 1024 @ 60 SXGA 1280 × 1024 @ 75 Reserved Reserved VGA 640 × 480 @ 60 VGA 640 × 480 @ 72 VGA 640 × 480 @ 75 VGA 640 × 480 @ 85 XGA 1024 × 768 @ 60 XGA 1024 × 768 @ 70 XGA 1024 × 768 @ 75 XGA 1024 × 768 @ 85 Reserved Reserved Reserved Reserved Reserved Reserved Reserved Rev. 0 | Page 19 of 184 Comment HDMI receiver support HDMI receiver support UG-438 Code 1010 1011 1100 1101 1110 1111 PRIM_MODE[3:0] Description Reserved Reserved Reserved Reserved Reserved Reserved Hardware User Guide Processor Code xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx VID_STD[5:0] Input Video Output Resolution Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Comment V_FREQ This control is set to allow free run to work correctly (refer to Table 7). V_FREQ[2:0], IO, Address 0x01[6:4] A control to set vertical frequency. Function V_FREQ[2:0] 000 (default) 001 010 011 100 101 110 111 Description 60 Hz 50 Hz 30 Hz 25 Hz 24 Hz Reserved Reserved Reserved HDMI DECIMATION MODES Some of the modes defined by VID_STD have an inherent 2×1 decimation. For these modes, the main clock generator and the decimation filters in the DPP block are configured automatically. This ensures the correct data rate at the input to the CP block. Refer to the Data Preprocessor and Color Space Conversion and Color Controls section for more information on the automatic configuration of the DPP block. The ADV7610 correctly decodes and processes any incoming HDMI stream with the required decimation, irrespective of its video resolution: • • In 1×1 mode (that is, without decimation), as long the PRIM_MODE and VID_STD registers are programmed for any HDMI mode without decimation. For example: • Set PRIM_MODE to 0x5 and VID_STD to 0x00 • Set PRIM_MODE to 0x5 and VID_STD to 0x13 • Set PRIM_MODE to 0x6 and VID_STD to 0x02 In 2×1 decimation mode, as long the PRIM_MODE and VID_STD registers are programmed for any HDMI mode with 2×1 decimation. For example: • Set PRIM_MODE to 0x5 and VID_STD to 0x0C • Set PRIM_MODE to 0x5 and VID_STD to 0x19 Note: Decimating the video data from an HDMI stream is optional and should be performed only if it is required by the downstream devices connected to the ADV7610. PRIMARY MODE AND VIDEO STANDARD CONFIGURATION FOR HDMI FREE RUN If free run is enabled in HDMI mode, PRIM_MODE[3:0] and VID_STD[5:0] specify the input resolution expected by the ADV7610 (for free run Mode 1) and/or the output resolution to which the ADV7610 free runs (for free run Mode 0 and Mode 1). Refer to the Free Run Mode section for additional details on the free run feature for HDMI inputs and to HDMI_FRUN_MODE. Rev. 0 | Page 20 of 184 Hardware User Guide UG-438 RECOMMENDED SETTINGS FOR HDMI INPUTS This section provides the recommended settings for an HDMI input encapsulating a video resolution corresponding to a selection Video ID Code described in the 861 specification. Table 7 provides the recommended settings for the following registers: • • • • • PRIM_MODE VID_STD V_FREQ (V_FREQ should be set to 0x0 if not specified in Table 7.) INV_HS_POL = 1 (INV_HS_POL should be set to 1 if not specified in Table 7.) INV_VS_POL = 1 (INV_VS_POL should be set to 1 if not specified in Table 7.) Table 7. Recommended Settings for HDMI Inputs Recommended Settings if Free Run Used and DIS_AUTO_PARAM_BUFF = 0 PRIM_MODE = 0x6 VID_STD = 0x2 PRIM_MODE = 0x6 VID_STD = 0x2 PRIM_MODE = 0x6 VID_STD = 0x2 PRIM_MODE = 0x6 VID_STD = 0x2 PRIM_MODE = 0x6 VID_STD = 0x2 PRIM_MODE = 0x6 VID_STD = 0x2 PRIM_MODE = 0x6 VID_STD = 0x2 PRIM_MODE = 0x6 VID_STD = 0x2 PRIM_MODE = 0x6 VID_STD = 0x2 Video ID Codes (861 Specification) 2, 3 Formats 720 × 480p @ 60 Hz Pixel Repetition 0 4 1280 × 720p @ 60 Hz 0 5 1920 × 1080i @ 60 Hz 0 6, 7 720 (1440) × 480i @ 60 Hz 1 10, 11 2880 × 480i @ 60 Hz 3 14, 15 1440 × 480p @ 60 Hz 1 16 1920 × 1080p @ 60 Hz 0 17, 18 720 × 576p @ 60 Hz 0 19 1280 × 720p @ 50 Hz 0 20 1920 × 1080i @ 50 Hz 0 PRIM_MODE = 0x6 VID_STD = 0x2 21, 22 720 (1440) ×576i @ 60 Hz 1 25, 26 2880 × 480i @ 60 Hz 3 29, 30 144 0× 576p @ 60 Hz 1 31 1920 × 1080p @ 50 Hz 0 PRIM_MODE = 0x6 VID_STD = 0x2 PRIM_MODE = 0x6 VID_STD = 0x2 PRIM_MODE = 0x6 VID_STD = 0x2 PRIM_MODE = 0x6 VID_STD = 0x2 32 1920 × 1080p @ 24 Hz 0 PRIM_MODE = 0x6 VID_STD = 0x2 33 1920 × 1080p @ 25 Hz 0 PRIM_MODE = 0x6 VID_STD = 0x2 35, 36 2880 × 480p @ 60 Hz 3 37, 38 2880 × 576p @ 60 Hz 3 PRIM_MODE = 0x6 VID_STD = 0x2 PRIM_MODE = 0x6 VID_STD = 0x2 Rev. 0 | Page 21 of 184 Recommended Settings if Free Run Not Used or Free Run Used and DIS_AUTO_PARAM_BUFF = 1 PRIM_MODE = 0x5 VID_STD = 0xA PRIM_MODE = 0x5 VID_STD = 0x13 PRIM_MODE = 0x5 VID_STD = 0x14 PRIM_MODE = 0x5 VID_STD = 0x0 PRIM_MODE = 0x5 VID_STD = 0x0 PRIM_MODE=0x5 VID_STD = 0xA PRIM_MODE = 0x5 VID_STD = 0x1E PRIM_MODE = 0x5 VID_STD = 0xB PRIM_MODE = 0x5 VID_STD = 0xA3 V_FREQ = 0x1 PRIM_MODE = 0x5 VID_STD = 0x14 V_FREQ = 0x1 PRIM_MODE = 0x5 VID_STD = 0x1 PRIM_MODE=0x5 VID_STD = 0x1 PRIM_MODE = 0x5 VID_STD = 0xA PRIM_MODE = 0x5 VID_STD = 0x1E V_FREQ = 0x1 PRIM_MODE = 0x5 VID_STD = 0x1E V_FREQ = 0x4 PRIM_MODE = 0x5 VID_STD = 0x1E V_FREQ = 0x3 PRIM_MODE = 0x5 VID_STD = 0xA PRIM_MODE = 0x5 VID_STD = 0xA UG-438 Hardware User Guide Video ID Codes (861 Specification) Not applicable Formats SVGA 800 × 600p @ 56 Pixel Repetition 0 Not applicable SVGA 800 × 600p @ 60 0 Not applicable SVGA 800 × 600p @ 72 0 Not applicable SVGA 800 × 600p @ 75 0 Not applicable SVGA 800 × 600p @ 85 0 Not applicable SXGA 1280 × 1024p @ 60 0 Not applicable SXGA 1280 × 1024p @ 75 0 Not applicable VGA 640 × 480p @ 60 0 Not applicable VGA 640 × 480p @ 72 0 Not applicable VGA 640 × 480p @ 75 0 Not applicable VGA 640 × 480p @ 85 0 Not applicable VGA 1024 × 768p @ 60 0 Not applicable VGA 1024 × 768p @ 70 0 Not applicable VGA 1024 × 768p @ 75 0 Not applicable VGA 1024 × 768p @ 85 0 Recommended Settings if Free Run Used and DIS_AUTO_PARAM_BUFF = 0 PRIM_MODE = 0x6 VID_STD = 0x0 PRIM_MODE = 0x6 VID_STD = 0x0 PRIM_MODE = 0x6 VID_STD = 0x0 PRIM_MODE = 0x6 VID_STD = 0x0 PRIM_MODE = 0x6 VID_STD = 0x0 PRIM_MODE = 0x6 VID_STD = 0x0 PRIM_MODE = 0x6 VID_STD = 0x0 PRIM_MODE = 0x6 VID_STD = 0x0 PRIM_MODE = 0x6 VID_STD = 0x0 PRIM_MODE = 0x6 VID_STD = 0x0 PRIM_MODE = 0x6 VID_STD = 0x0 PRIM_MODE = 0x6 VID_STD = 0x0 PRIM_MODE = 0x6 VID_STD = 0x0 PRIM_MODE = 0x6 VID_STD = 0x0 PRIM_MODE = 0x6 VID_STD = 0x0 Rev. 0 | Page 22 of 184 Recommended Settings if Free Run Not Used or Free Run Used and DIS_AUTO_PARAM_BUFF = 1 PRIM_MODE = 0x6 VID_STD = 0x0 PRIM_MODE = 0x6 VID_STD = 0x1 PRIM_MODE = 0x6 VID_STD = 0x2 PRIM_MODE = 0x6 VID_STD = 0x3 PRIM_MODE = 0x6 VID_STD = 0x04 PRIM_MODE = 0x6 VID_STD = 0x05 PRIM_MODE = 0x6 VID_STD = 0x06 PRIM_MODE = 0x6 VID_STD = 0x08 PRIM_MODE = 0x6 VID_STD = 0x09 PRIM_MODE = 0x6 VID_STD = 0x0A PRIM_MODE = 0x6 VID_STD = 0x0B PRIM_MODE = 0x6 VID_STD = 0x0C PRIM_MODE = 0x6 VID_STD = 0x0D PRIM_MODE = 0x6 VID_STD = 0x0E PRIM_MODE = 0x6 VID_STD = 0x0F Hardware User Guide UG-438 PIXEL PORT CONFIGURATION The ADV7610 has a very flexible pixel port, which can be configured in a variety of formats to accommodate downstream ICs. The ADV7610 can provide output modes up to 24 bits. This section details the controls required to configure the ADV7610 pixel port. Appendix C contains tables describing pixel port configurations. PIXEL PORT OUTPUT MODES OP_FORMAT_SEL[7:0], IO, Address 0x03[7:0] A control to select the data format and pixel bus configuration. Refer to the pixel port configuration for full information on pixel port modes and configuration settings. Function OP_FORMAT_SEL[7:0] 0x00 (default) 1 0x0A1 0x20 0x2A 0x40 0x60 0x80 0x8A 1 Description 8-bit SDR ITU-656 mode 12-bit SDR ITU Mode 2 8-bit 4:2:2 DDR mode 12-bit DDR 4:2:2 Mode 2 24-bit 4:4:4 SDR mode 24-bit 4:4:4 DDR mode 16-bit ITU-656 SDR mode 24-bit ITU-656 SDR Mode 2 Refer to the DLL settings for 656, 8-/10-/12-bit modes in the DLL on LLC Clock Path section. Bus Rotation and Reordering Controls Bus reordering controls are available for ADV7610. OP_CH_SEL[2:0] allows the three output buses to be rearranged, thus providing six different output possibilities. OP_CH_SEL[2:0], IO, Address 0x04[7:5] A control to select the configuration of the pixel data bus on the pixel pins. Refer to the pixel port configuration for full information on pixel port modes and configuration settings. Function OP_CH_SEL[2:0] 000 001 010 011 (default) 100 101 110 111 Description P[23:16] Y/G, P[15:8] U/CrCb/B, P[7:0] V/R P[23:16] Y/G, P[15:8] V/R, P[7:0] U/CrCb/B P[23:16] U/CrCb/B, P[15:8] Y/G, P[7:0] V/R P[23:16] V/R, P[15:8] Y/G, P[7:0] U/CrCb/B P[23:16] U/CrCb/B, P[15:8] V/R, P[7:0]Y/G P[23:16] V/R, P[15:8] U/CrCb/B, P[7:0] Y/G Reserved Reserved Pixel Data and Synchronization Signals Control The polarity of the LLC and synchronization signals can be inverted, and the LLC, the synchronization signals, and the pixel data output can be tristated. Refer to the information on the following controls: • • • • • • INV_F_POL INV_VS_POL INV_HS_POL TRI_PIX TRI_LLC TRI_SYNCS Rev. 0 | Page 23 of 184 UG-438 Hardware User Guide OP_SWAP_CB_CR, IO, Address 0x05[0] A control for the swapping of Cr and Cb data on the pixel buses. Function OP_SWAP_CB_CR 0 (default) 1 Description Outputs Cr and Cb as per OP_FORMAT_SEL Inverts the order of Cb and Cr in the interleaved data stream OP_SWAP_CB_CR swaps the order in which Cb and Cr are interleaved in the output data stream. It caters for cases in which the data on Channels B and C are swapped. It is effective only if OP_FORMAT_SEL[7:0] is set to a 4:2:2 compatible output mode. Note: It has no effect for 24-bit SDR modes and DDR modes. LLC CONTROLS The ADV7610 has a limited number of adjustment features available for the line locked clock (LLC) output. The polarity of the LLC can be inverted and the LLC of the output driver can be tristated. Controls also exist to skew the LLC versus the output data to achieve suitable setup and hold times for any back end device. The LLC controls are as follows: • INV_LLC_POL • TRI_LLC • LLC_DLL_EN • LLC_DLL_MUX • LLC_DLL_PHASE[4:0] DLL ON LLC CLOCK PATH A delay locked loop (DLL) block is implemented on the LLC clock path. This DLL allows the changing of the phase of the output pixel clock on the LLC pin. LLC_DLL_DOUBLE, IO, Address 0x19[6] A control to double LLC frequency. Function LLC_DLL_DOUBLE 0 (default) 1 Description Normal LLC frequency Double LLC frequency Adjusting DLL Phase in All Modes LLC_DLL_EN, IO, Address 0x19[7] A control to enable the DLL for the output pixel clock. Function LLC_DLL_EN 1 0 (default) Description Enables LLC DLL Disables LLC DLL LLC_DLL_MUX, IO, Address 0x33[6] A control to apply the pixel clock DLL to the pixel clock output on the LLC pin. Function LLC_DLL_MUX 0 (default) 1 Description Bypasses the DLL Muxes the DLL output on LLC output Rev. 0 | Page 24 of 184 Hardware User Guide UG-438 LLC_DLL_PHASE[4:0], IO, Address 0x19[4:0] A control to adjust LLC DLL phase in increments of 1/32 of a clock period. Function LLC_DLL_PHASE[4:0] 00000 (default) xxxxx Description Default Sets one of 32 phases of DLL to vary LLC CLK DLL Settings for 656, 8-/10-/12-Bit Modes The following table shows the settings that must be used to enable 8-/10-/12-bit, 656 output. Address IO Map Address 0x19[7] IO Map Address 0x33[6] IO Map Address 0x19[6] Setting 1 1 1 Description Enables LLC DLL Muxes the DLL output on LLC output Doubles the clock Rev. 0 | Page 25 of 184 UG-438 Hardware User Guide HDMI RECEIVER HPA_A/INT2 RXA_5V 5V DETECT AND HPA CONTROLLER TO INTERRUPT CONTROLLER DEEP COLOR CONVERSION CEC CONTROLLER DATA DDCA_SDA/DDCA_SCL TO DPP HS EDID/ REPEATER CONTROLLER 4:2:2 TO 4:4:4 CONVERSION TO DPP VS TO DPP RXA_C± RXA_0± RXA_1± RXA_2± PLL EQUALIZER HDCP BLOCK SAMPLER TO DPP FILTER PACKET/ INFOFRAME MEMORY PACKET PROCESSOR AUDIO PROCESSOR AUDIO OUTPUT FORMATTER HDCP EEPROM HDMI DECODE + PORT MEASUREMENT DE I2S0 TO I2S3 SCLK/INT2 MCLK/INT2 10884-004 CEC Figure 3. Functional Block Diagram of HDMI Core +5 V CABLE DETECT The HDMI receiver in the ADV7610 can monitor the level on the +5 V power signal pin of the HDMI port. The results of this detection can be read back from the following I2C registers. These readbacks are valid even when the part is not configured for HDMI mode. CABLE_DET_A_RAW, IO, Address 0x6F[0] (Read Only) Raw status of Port A +5 V cable detection signal. Function CABLE_DET_A_RAW 0 (default) 1 Description No cable detected on Port A Cable detected on Port A (high level on RXA_5V) The ADV7610 provides a digital glitch filter on the +5 V power signals from the HDMI port. The output of this filter is used to reset the HDMI block (refer to the HDMI Section Reset Strategy section). The +5 V power signal must be constantly high for the duration of the timer (controlled by FILT_5V_DET_TIMER[6:0]), otherwise the output of the filter is low. The output of the filter returns low as soon as any change in the +5 V power signal is detected. FILT_5V_DET_DIS, Addr 68 (HDMI), Address 0x56[7] This control is used to disable the digital glitch filter on the HDMI 5 V detect signals. The filtered signals are used as interrupt flags and used to reset the HDMI section. The filter works from an internal ring oscillator clock and, therefore, is available in power-down mode. The clock frequency of the ring oscillator is 42 MHz ± 10%. Function FILT_5V_DET_DIS 0 (default) 1 Description Enabled Disabled Note: If the +5 V pins are not used and are left unconnected, the +5 V detect circuitry must be disconnected from the HDMI reset signal by setting DIS_CABLE_DET_RST to 1. This avoids holding the HDMI section in reset. Rev. 0 | Page 26 of 184 Hardware User Guide UG-438 FILT_5V_DET_TIMER[6:0], Addr 68 (HDMI), Address 0x56[6:0] This control is used to set the timer for the digital glitch filter on the HDMI +5 V detect inputs. The unit of this parameter is two clock cycles of the ring oscillator (~ 47 ns). The input must be constantly high for the duration of the timer; otherwise, the filter output remains low. The output of the filter returns low as soon as any change in the +5 V power signal is detected. Function FILT_5V_DET_TIMER[6:0] 1011000 (default) xxxxxxx Description Approximately 4.2 µs Time duration of +5 V deglitch filter. Unit of this parameter is 2 clock cycles of the ring oscillator (~47 ns). DIS_CABLE_DET_RST, Addr 68 (HDMI), Address 0x48[6] This control disables the reset effects of cable detection. DIS_CABLE_DET_RST must be set to 1 if the +5 V pins are unused and left unconnected. Function DIS_CABLE_DET_RST 0 (default) 1 Description Resets HDMI section if 5 V input pin corresponding to selected HDMI port (for example, RXA_5V for Port A) is inactive Does not use 5 V input pins as reset signal for HDMI section HOT PLUG ASSERT The ADV7610 features hot plug assert (HPA) control for its HDMI port. The purpose of the control and its corresponding output pin is to communicate to an HDMI transmitter that it is possible to access the enhanced-extended display identification (E-EDID) connected to the DDC bus. HPA_MANUAL, Addr 68 (HDMI), Address 0x6C[0] Manual control enable for the HPA output pins. Automatic control of these pins is disabled by setting this bit. Manual control is determined by the HPA_MAN_VALUE_X (where X = A). Function HPA_MANUAL 0 (default) 1 Description HPA takes its value based on HPA_AUTO_INT_EDID HPA takes its value from HPA_MAN_VALUE_X HPA_MAN_VALUE_A, IO, Address 0x20[7] A manual control for the value of HPA on Port A. Valid only if HPA_MANUAL is set to 1. Function HPA_MAN_VALUE_A 0 1 (default) Description 0 V applied to HPA_A pin High level applied to HPA_A pin Note: The HPA_A pin is open drain. An external pull-up resistor is required to pull it high. Rev. 0 | Page 27 of 184 UG-438 Hardware User Guide HPA_AUTO_INT_EDID[1:0], Addr 68 (HDMI), Address 0x6C[2:1] This control selects the type of automatic control on the HPA output pins. This bit has no effect when HPA_MANUAL is set to 1. Function HPA_AUTO_INT_EDID[1:0] 00 01 (default) 10 11 Description HPA of an HDMI port asserted high immediately after internal EDID activated for that port. HPA of a specific HDMI port deasserted low immediately after internal E-EDID is de-activated for that port. HPA of an HDMI port asserted high following a programmable delay after part detects an HDMI cable plug on that port. HPA of an HDMI port immediately deasserted after part detects a cable disconnect on that HDMI port. HPA of an HDMI port asserted high after two conditions met. 1. Internal EDID is active for that port. 2. Delayed version of cable detect signal CABLE_DET_X_RAW for that port is high. HPA of an HDMI port immediately deasserted after either of these two conditions are met: 1. Internal EDID is de-activated for that port. 2. Cable detect signal CABLE_DET_X_RAW for that port is low. HPA of an HDMI port is asserted high after three conditions met: 1. Internal EDID is active for that port. 2. Delayed version of cable detect signal CABLE_DET_X_RAW for that port is high. 3. User has set manual HPA control for that port to 1 via HPA_MAN_VALUE_X controls. HPA of an HDMI port immediately deasserted after any of these three conditions met: 1. Internal EDID de-activated for that port. 2. Cable detect signal CABLE_DET_X_RAW for that port is low. 3. User sets the manual HPD control for that port to 0 via HPA_MAN_VALUE_X controls Note: The delay is programmable via HPA_DELAY_SEL[3:0]. Refer to EDID_ENABLE for details on enabling the internal E-EDID for an HDMI port. In HPA_MAN_VALUE_X and CABLE_DET_X_RAW, X refers to A. HPA_DELAY_SEL[3:0], Addr 68 (HDMI), Address 0x6C[7:4] Sets a delay between +5 V detection and hot plug assertion on the HPA output pins, in increments of 100 ms per bit. Function HPA_DELAY_SEL[3:0] 0000 0001 0010 1010 (default) 1111 Description No delay 100 ms delay 200 ms delay 1 sec delay 1.5 sec delay HPA_TRISTATE_A, IO, Address 0x20[3] Tristates HPA output pin for Port A. Function HPA_TRISTATE_A 0 (default) 1 Description HPA_A pin active Tristates HPA_A pin HPA_STATUS_PORT_A, IO, Address 0x21[3] (Read Only) Readback of HPA status for Port A. Function HPA_STATUS_PORT_A 0 (default) 1 Description +5 V not applied to HPA_A pin by chip +5 V applied to HPA_A pin by chip Rev. 0 | Page 28 of 184 Hardware User Guide UG-438 HPA_OVR_TERM, Addr 68 (HDMI), Address 0x6C[3] A control to set the termination control to be overridden by the HPA setting. When this bit is set, termination on a specific port is set according to the HPA status of that port. Function HPA_OVR_TERM 0 (default) 1 Description Automatic or manual I2C control of port termination Termination controls disabled and overridden by HPA controls E-EDID/REPEATER CONTROLLER The HDMI section incorporates an E-EDID/repeater controller, which performs the following tasks: • • Computes the E-EDID checksum Performs the repeater routines described in the Repeater Support section The E-EDID/repeater controller is powered from the DVDD supply and clocked by an internal ring oscillator. The controller and the internal DDC bus arbiter are kept active in power-down Mode 0 and power-down Mode 1. This allows the internal E-EDID to be functional and accessible through the DDC port, even when the part is powered down (refer to the Power-Down Modes section). These HDMI transmitters can then read the capabilities of the powered-down application integrating the ADV7610 by accessing its internal E-EDID through the DDC ports. The E-EDID/repeater controller is reset when the DVDD supplies go low or when HDCP_REPT_EDID_RESET is set high. When the E-EDID/repeater controller reboots, it performs the following tasks: • • Clears the internal E-EDID and Key Selection Vector (KSV) RAM (refer to E-EDID Data Configuration section and the Internal HDCP Key OTP ROM section ) Computes a checksum for port HDCP_REPT_EDID_RESET, Addr 68 (HDMI), Address 0x5A[3] (Self-Clearing) A reset control for the E-EDID/repeater controller. When asserted, it resets the E-EDID/repeater controller. Function HDCP_REPT_EDID_RESET 0 (default) 1 Description Normal operation Resets the E-EDID/repeater controller E-EDID DATA CONFIGURATION The ADV7610 features a RAM that can store an E-EDID. This internal E-EDID feature can be used for the HDMI port. It is also possible to use an external device storage for the E-EDID data. The following controls are provided to enable the internal E-EDID for each of the four HDMI ports. EDID_A_ENABLE, Addr 64 (Repeater), Address 0x74[0] Enables I2C access to the internal EDID RAM from DDC Port A. Function EDID_A_ENABLE 0 (default) 1 Description Disables E-EDID for Port A Enables E-EDID for Port A When the internal E-EDID is enabled, the ADV7610 must first calculate the E-EDID checksums for that port before the E-EDID is actually enabled. The following read only flags can be utilized to determine if the E-EDID is actually enabled on the HDMI ports. EDID_A_ENABLE_CPU, Addr 64 (Repeater), Address 0x76[0] (Read Only) Flags internal EDID enabling on Port A. Function EDID_A_ENABLE_CPU 0 (default) 1 Description Disabled Enabled Rev. 0 | Page 29 of 184 UG-438 Hardware User Guide Notes • • • • If the internal E-EDID RAM is enabled, an external E-EDID storage device must not be connected on the DDC bus of that port. The internal E-EDID can be read by current address read sequences on the DDC port. The ADV7610 supports the segment pointer, which is set at Register Address 0x60 through the DDC bus, and used in combination with the internal E-EDID address (0xA0) to access the internal E-EDID. The contents of the EDID RAM are not to be trusted after power-up or hardware reset. Users should write the proper contents to the EDID RAM memory inside the ADV7610 via an external MCU. E-EDID Support for Power-Down Modes The ADV7610 supports E-EDID access in Power-Down Mode 0 and Power-Down Mode 1. Using this feature, an application that integrates the ADV7610 in standby can make its E-EDID available to the HDMI transmitter. This allows support of CEC and provides compatibility with HDMI transmitters that require the E-EDID to be available when the HDMI receiver is powered down. In Power-Down Mode 0, the part operates in a very low power state with only the minimum of internal circuitry enabled for the internal E-EDID. For more details on E-EDID accessibility in power-down modes, refer to the Power-Down Modes section. TRANSITIONING OF POWER MODES If the part starts in Power-Down Mode 0 and then transitions into a different power mode (that is, Power-Down Mode 1 or normal operation mode), the information in the internal E-EDID is not overwritten. The internal E-EDID remains active on the HDMI port for which the E-EDID has been accessed. This prevents disturbing E-EDID read requests from HDMI sources connected to the ADV7610 while it is being powered on, or while the power mode is transitioning. It is possible to disable the automatic enable of internal EDID on the HDMI port when the part comes out of power-down mode, by setting the DISABLE_AUTO_EDID bit. DISABLE_AUTO_EDID, Addr 64 (Repeater), Address 0x7A[1] Disables all automatic enables for internal E-EDID. Function DISABLE_AUTO_EDID 0 (default) 1 Description Automatic enable of internal E-EDID on HDMI port when the part comes out of Power-Down Mode 0 Disable automatic enable of internal E-EDID on HDMI port when the part comes out of Power-Down Mode 0 STRUCTURE OF INTERNAL E-EDID This section describes the structure of the internal E-EDID accessible through the DDC bus. This section describes the structure and configuration for of the internal E-EDID accessed through Port A. The internal E-EDID is enabled for Port A by setting the EDID_A_ENABLE bit to 1. The structure of the internal E-EDID image for Port A is shown in Figure 4. Rev. 0 | Page 30 of 184 Hardware User Guide UG-438 PORT A E-EDID STRUCTURE 0x1FF BLOCK 2 CHECKSUM 0x1FE BLOCK 3 0x180 0x17F BLOCK 2 CHECKSUM 0x17E BLOCK 2 0x100 0xFF BLOCK 1 CHECKSUM 0xFE BLOCK 1 0x80 0x7F BLOCK 0 CHECKSUM 0x7E 10884-005 BLOCK 0 0x00 Figure 4. Port A E-EDID Structure and Mapping for SPA Located in EDID Block 1 Notes • • • • • After EDID_A_ENABLE is set to 1, the ADV7610 EDID/repeater controller computes the checksums and updates the internal RAM address locations 0x7F, 0xFF, 0X17F, and 0x1FF in the internal EDID RAM with the computed checksums. After power up, the ADV7610 E-EDID controller sets all bytes in the internal EDID RAM to 0, this operation takes less than 1 ms. It is recommended to wait for at least 1 ms before initializing the EDID map with E-EDID. When internal E-EDID is enabled on Port A, the hot plug should not be asserted until the EDID map has been completely initialized with E-EDID. The internal E-EDID can be accessed in read-only mode through the DDC interface at the I2C address 0xA0. The internal E-EDID can be accessed in read/write mode through the general I2C interface at the EDID map I2C address. TMDS EQUALIZATION The ADV7610 incorporates active equalization of the HDMI data signals. This equalization compensates for the high frequency losses inherent in HDMI and DVI cabling, especially at long lengths and higher frequencies. The ADV7610 is capable of equalizing for cable lengths up to 30 meters and for pixel clock frequencies up to 225 MHz. PORT SELECTION HDMI_PORT_SELECT allows the selection of the active HDMI port. The only port on ADV7610 is Port A. HDMI_PORT_SELECT[2:0], Addr 68 (HDMI), Address 0x00[2:0] This two bit control is used for HDMI primary port selection. Function HDMI_PORT_SELECT[2:0] 000 (default) Description Port A TMDS CLOCK ACTIVITY DETECTION The ADV7610 provides circuitry to monitor TMDS clock activity on HDMI port. The firmware can poll the appropriate registers for TMDS clock activity detection and configure the ADV7610 as desired. TMDS clock detection control is active as soon as the ADV7610 detects activity above 25 MHz on the TMDS clock input. Rev. 0 | Page 31 of 184 UG-438 Hardware User Guide TMDS_CLK_A_RAW, IO, Address 0x6A[4] (Read Only) Raw status of Port A TMDS clock detection signal. Function TMDS_CLK_A_RAW 0 (default) 1 Description No TMDS clock detected on Port A TMDS clock detected on Port A Important • • The clock detection flag is valid if the part is powered up or in Power Down Mode 1. Refer to the Power-Down Mode 1 section. The clock detection flags is valid, irrespective of the mode the part is set into via the PRIM_MODE[3:0] register. Clock and Data Termination Control The ADV7610 provides controls for the TMDS clock and data termination on the HDMI port. Note: The clock termination of the port by HDMI_PORT_SELECT[2:0] must always be enabled. This part does not support HDMI streams with a clock lower than 25 MHz. TERM_AUTO, Addr 68 (HDMI), Address 0x01[0] This bit allows the user to select automatic or manual control of clock termination. If automatic mode termination is enabled, then the termination on the port selected via HDMI_PORT_SELECT[1:0] is enabled. Function TERM_AUTO 0 (default) 1 Description Disable termination automatic control Enable termination automatic control Note: When manual mode is enabled, the termination for each port is set individually by the CLOCK_TERMA_DISABLE control bits CLOCK_TERMA_DISABLE, Addr 68 (HDMI), Address 0x83[0] Disable clock termination on Port A. Can be used when TERM_AUTO set to 0 Function CLOCK_TERMA_DISABLE 0 1 (default) Description Enable Termination Port A Disable Termination Port A HDMI/DVI STATUS BITS HDMI/DVI status mode is available through HDMI_MODE. HDMI_MODE_RAW, Addr 68 (HDMI), Address 0x65[3] (Read Only) Raw status signal of HDMI mode signal. Function HDMI_MODE_RAW 0 (default) 1 Description DVI mode detected HDMI mode detected HDMI_MODE, Addr 68 (HDMI), Address 0x05[7] (Read Only) A readback to indicate whether the stream processed by the HDMI core is a DVI or an HDMI stream. Function HDMI_MODE 0 (default) 1 Description DVI mode detected HDMI mode detected VIDEO 3D DETECTION Status of 3D video is available through the VIDEO_3D_RAW bit. VIDEO_3D_RAW, Addr 68 (HDMI), Address 0x6A[2] (Read Only) Raw status of the video 3D signal. Rev. 0 | Page 32 of 184 Hardware User Guide Function VIDEO_3D_RAW 0 1 UG-438 Description Video 3D not detected (read only) Video 3D detected TMDS MEASUREMENT The ADV7610 contains logic that measures the frequency of the TMDS clock transmitted. The TMDS frequency can be read back via the TMDSFREQ[8:0] and TMDSFREQ_FRAC[6:0] registers. TMDS Measurement after TMDS PLL The TMDSFREQ measurement is provided by a clock measurement circuit located after the TMDS PLL. The TMDS PLL must, therefore, be locked to the incoming TMDS clock in order for the TMDSFREQ and TMDSFREQ_FRAC registers to return a valid measurement. The TMDS frequency can be obtained using Equation 1, TMDS Frequency in MHz (Measured after TMDS PLL). FTMDS = TMDSFREQ + TMDSFREQ _ FRAC 128 (1) Notes • • • The TMDS PLL lock status can be monitored via TMDS_PLL_LOCKED. The TMDS_PLL_LOCKED flag should be considered valid if a TMDS clock is input on the HDMI port selected via HDMI_PORT_SELECT[2:0]. The NEW_TMDS_FRQ_RAW flag can be used to monitor if the TMDS frequency on the selected HDMI port changes by a programmable threshold. The ADV7610 can be configured to trigger an interrupt when the bit NEW_TMDS_FRQ_RAW changes from 0 to 1. In that configuration, the interrupt status NEW_TMDS_FRQ_ST indicates that NEW_TMDS_FRQ_RAW has changed from 0 to 1. Refer to the Interrupts section for additional information on the configuration of interrupts. TMDSFREQ[8:0], Addr 68 (HDMI), Address 0x51[7:0]; Address 0x52[7] (Read Only) This register provides a full precision integer TMDS frequency measurement. Function TMDSFREQ[8:0] 000000000 (default) xxxxxxxxx Description Outputs 9-bit TMDS frequency measurement in MHz Outputs 9-bit TMDS frequency measurement in MHz TMDSFREQ_FRAC[6:0], Addr 68 (HDMI), Address 0x52[6:0] (Read Only) A readback to indicate the fractional bits of measured frequency of PLL recovered TMDS clock. The unit is 1/128 MHz. Function TMDSFREQ_FRAC[6:0] 0000000 (default) xxxxxxx Description Outputs 7-bit TMDS fractional frequency measurement in 1/128 MHz Outputs 7-bit TMDS fractional frequency measurement in 1/128 MHz TMDS_PLL_LOCKED, Addr 68 (HDMI), Address 0x04[1] (Read Only) A readback to indicate if the TMDS PLL is locked to the TMDS clock input to the selected HDMI port. Function TMDS_PLL_LOCKED 0 (default) 1 Description The TMDS PLL is not locked. The TMDS PLL is locked to the TMDS clock input to the selected HDMI port. TMDSPLL_LCK_A_RAW, IO, Address 0x6A[6] (Read Only) A readback to indicate the raw status of the Port A TMDS PLL lock signal. Function TMDSPLL_LCK_A_RAW 0 (default) 1 Description TMDS PLL on Port A is not locked. TMDS PLL on Port A is locked to the incoming clock. Rev. 0 | Page 33 of 184 UG-438 Hardware User Guide NEW_TMDS_FRQ_RAW, IO, Address 0x83[1] (Read Only) Status of new TMDS frequency interrupt signal. When set to 1, it indicates the TMDS Frequency has changed by more than the tolerance set in FREQTOLERANCE[3:0]. Once set, this bit will remain high until it is cleared via NEW_TMDS_FREQ_CLR. Function NEW_TMDS_FRQ_RAW 0 (default) 1 Description TMDS frequency has not changed by more than tolerance set in FREQTOLERANCE[3:0] in the HDMI map. TMDS frequency has changed by more than tolerance set in FREQTOLERANCE[3:0] in the HDMI map. FREQTOLERANCE[3:0], Addr 68 (HDMI), Address 0x0D[3:0] Sets the tolerance in MHz for new TMDS frequency detection. This tolerance is used for the audio mute mask MT_MSK_VCLK_CHNG and the HDMI status bit NEW_TMDS_FRQ_RAW. Function FREQTOLERANCE[3:0] 0100 (default) xxxx Description Default tolerance in MHz for new TMDS frequency detection Tolerance in MHz for new TMDS frequency detection DEEP COLOR MODE SUPPORT The Deep Color mode information that the ADV7610 extracts from the general control packet can be read back from DEEP_COLOR_MODE[1:0]. DEEP_COLOR_MODE[1:0], Addr 68 (HDMI), Address 0x0B[7:6] (Read Only) A readback of the Deep Color mode information extracted from the general control packet Function DEEP_COLOR_MODE[1:0] 00 (default) 01 10 Description 8-bits per channel 10-bits per channel 12-bits per channel Notes • • Deep Color mode can be monitored via DEEP_COLOR_CHNG_RAW, which indicates if the color depth of the processed HDMI stream has changed. The ADV7610 can be configured to trigger an interrupt when the DEEP_COLOR_CHNG_RAW bit changes from 0 to 1. In that configuration, the interrupt status DEEP_COLOR_CHNG_ST indicates that DEEP_COLOR_CHNG_RAW has changed from 0 to 1. Refer to the Interrupts section for additional information on the configuration of interrupts. DEEP_COLOR_CHNG_RAW, IO, Address 0x83[7] (Read Only) Status of Deep Color mode changed interrupt signal. When set to 1 it indicates a change in the deep color mode has been detected. Once set, this bit will remain high until it is cleared via DEEP_COLOR_CHNG_CLR. Function DEEP_COLOR_CHNG_RAW 0 (default) 1 Description Deep color mode has not changed Change in deep color triggered this interrupt VIDEO FIFO The ADV7610 contains a FIFO located between the incoming TMDS data and the CP core (refer to Figure 5). Data arriving over the HDMI link will be at 1X for non-Deep Color mode (8 bits per channel), and 1.25X, 1.5X, or 2X for deep color modes (30, 36, and 48 bits, respectively). Data unpacking and data rate reduction must be performed on the incoming HDMI data to provide the CP core with the correct data rate and data bit width. The video FIFO is used to pass data safely across the clock domains. The video FIFO also provides extreme robustness to jitter on the TMDS clock. The CP clock is generated by a DPLL running on the incoming TMDS clock, and the CP clock may contain less jitter than the incoming TMDS clock. The video FIFO provides immunity to the incoming jitter and the resultant clock phase mismatch between the CP clock and the TMDS clock. Rev. 0 | Page 34 of 184 Hardware User Guide TMDS PLL DPLL DIVIDER R TMDS CHANNEL 1 R TMDS CH0 TMDS CHANNEL 0 12 TMDS SAMPLING AND DATA RECOVERY B TMDS CH1 TMDS DECODING 10 TMDS CH2 TMDS CHANNEL 2 12 G 10 10 G 12 12 HS B FIFO 12 12 HS VS VS DE DE 10884-009 TMDS CLOCK UG-438 Figure 5. HDMI Video FIFO The video FIFO is designed to operate completely autonomously. It automatically resynchronizes the read and write pointers if they are about to point to the same location. However, it is also possible for the user to observe and control the FIFO operation with a number of FIFO status and control registers. DCFIFO_LEVEL[2:0], Addr 68 (HDMI), Address 0x1C[2:0] (Read Only) A readback that indicates the distance between the read and write pointers. Overflow/underflow would read as Level 0. Ideal centered functionality would read as 0b100. Function DCFIFO_LEVEL[2:0] 000 (default) 001 010 011 100 101 110 111 Description FIFO has underflowed or overflowed. FIFO is about to overflow. FIFO has some margin. FIFO has some margin. FIFO perfectly balanced FIFO has some margin. FIFO has some margin. FIFO is about to underflow. DCFIFO_LOCKED, Addr 68 (HDMI), Address 0x1C[3] (Read Only) A readback to indicate if video FIFO is locked. Function DCFIFO_LOCKED 0 (default) 1 Description Video FIFO is not locked. Video FIFO had to resynchronize between previous two VSyncs. Video FIFO is locked. Video FIFO did not have to resynchronize between previous two VSyncs. DCFIFO_RECENTER, Addr 68 (HDMI), Address 0x5A[2] (Self-Clearing) A reset to recenter the video FIFO. This is a self-clearing bit. Function DCFIFO_RECENTER 0 (default) 1 Description Video FIFO normal operation Video FIFO to recenter Rev. 0 | Page 35 of 184 UG-438 Hardware User Guide DCFIFO_KILL_DIS, Addr 68 (HDMI), Address 0x1B[2] The video FIFO output is zeroed if there is more than one resynchronization of the pointers within two FIFO cycles. This behavior can be disabled with this bit. Function DCFIFO_KILL_DIS 0 (default) 1 Description FIFO output set to zero if more than one resynchronization is necessary during two FIFO cycles FIFO output never set to zero regardless of how many resynchronizations occur DCFIFO_KILL_NOT_LOCKED, Addr 68 (HDMI), Address 0x1B[3] DCFIFO_KILL_NOT_LOCKED controls whether or not the output of the Video FIFO is set to zero when the video PLL is unlocked. Function DCFIFO_KILL_NOT_LOCKED 0 1 (default) Description FIFO data is output regardless of video PLL lock status. FIFO output is zeroed if video PLL is unlocked. The DCFIFO is programmed to reset itself automatically when the video PLL transitions from unlocked to locked. Note that the video PLL transition does not necessarily indicate that the overall system is stable. DCFIFO_RESET_ON_LOCK, Addr 68 (HDMI), Address 0x1B[4] Enables the reset/recentering of video FIFO on video PLL unlock Function DCFIFO_RESET_ON_LOCK 0 1 (default) Description Do not reset on video PLL lock Reset FIFO on video PLL lock PIXEL REPETITION In HDMI mode, video formats with TMDS rates below 25 M pixels/sec require pixel repetition in order to be transmitted over the TMDS link. When the ADV7610 receives this type of video format, it discards repeated pixel data automatically, based on the pixel repetition field available in the AVI InfoFrame. When HDMI_PIXEL_REPETITION is nonzero, video pixel data is discarded and the pixel clock frequency is divided by (HDMI_PIXEL_REPETITION) + 1. HDMI_PIXEL_REPETITION[3:0], Addr 68 (HDMI), Address 0x05[3:0] (Read Only) A readback to provide the current HDMI pixel repetition value decoded from the AVI InfoFrame received. The HDMI receiver automatically discards repeated pixel data and divides the pixel clock frequency appropriately as per the pixel repetition value. Function HDMI_PIXEL_REPETITION[3:0] 0000 (default) 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 to 1111 Description 1× 2× 3× 4× 5× 6× 7× 8× 9× 10× Reserved Rev. 0 | Page 36 of 184 Hardware User Guide UG-438 DEREP_N_OVERRIDE, Addr 68 (HDMI), Address 0x41[4] This control allows the user to override the pixel repetition factor. The ADV7610 then uses DEREP_N instead of HDMI_PIXEL_REPETITION[3:0] to discard video pixel data from the incoming HDMI stream. Function DEREP_N_OVERRIDE 0 (default) 1 Description Automatic detection and processing of procession of pixel repeated modes using the AVI InfoFrame information. Enables manual setting of the pixel repetition factor as per DEREP_N[3:0]. DEREP_N[3:0], Addr 68 (HDMI), Address 0x41[3:0] Sets the derepetition value if derepetition is overridden by setting DEREP_N_OVERRIDE. Function DEREP_N[3:0] 0000 (default) xxxx Description DEREP_N+1 indicates the pixel and clock discard factor DEREP_N+1 indicates the pixel and clock discard factor The following registers allow forcing YCrCb 444 and YCrCb 422 regardless of the AVI Infoframe. This feature is useful when the source switches between YCrCb 444 and YCrCb 422 modes without sending appropriate update in AVI InfoFrame. FORCE_YCRCB_444, Addr 68 (HDMI), Address 0x46[4] Forces a 4:4:4 interpretation of the video contents, regardless of the description in the AVI InfoFrame. This bit carries higher priority than FORCE_YCRCB_422. Function FORCE_YCRCB_444 0 (default) 1 Description Not forced Forced FORCE_YCRCB_422, Addr 68 (HDMI), Address 0x47[4] Forces a 4:2:2 interpretation of the video contents, regardless of the description in the AVI InfoFrame. This bit is only valid if FORCE_YCRCB_444 is zero. Function FORCE_YCRCB_422 0 (default) 1 Description Not forced Forced HDCP SUPPORT HDCP Decryption Engine The HDCP decryption engine allows for the reception and decryption of HDCP content-protected video and audio data. In the HDCP authentication protocol, the transmitter authenticates the receiver by accessing the HDCP registers of the ADV7610 over the DDC bus. Once the authentication is initiated, the HDCP decryption integrated in the ADV7610 computes and updates a decryption mask for every video frame. This mask is applied to the incoming data at every clock cycle to yield decrypted video and audio data. HDCP_A0, Addr 68 (HDMI), Address 0x00[7] A control to set the second LSB of the HDCP port I2C address. Function HDCP_A0 0 (default) 1 Description I2C address for HDCP port is 0x74. Used for single-link mode or 1st Receiver in dual-link mode. I2C address for HDCP port is 0x76. Used only for a second receiver dual-link mode. Rev. 0 | Page 37 of 184 UG-438 Hardware User Guide HDMI_CONTENT_ENCRYPTED, Addr 68 (HDMI), Address 0x05[6] (Read Only) A readback to indicate the use of HDCP encryption. Function HDMI_CONTENT_ENCRYPTED 0 (default) 1 Description The input stream processed by the HDMI core is not HDCP encrypted. The input stream processed by the HDMI core is HDCP encrypted. HDMI_ENCRPT_X_RAW reports the encryption status of the data present on each individual HDMI port (where X = A). Note: These bits are reset to 0 if an HDMI packet detection reset occurs. (Refer to the HDMI Packet Detection Flag Reset section.) HDMI_ENCRPT_A_RAW, IO, Address 0x6F[2] (Read Only) Raw status of Port A encryption detection signal. Function HDMI_ENCRPT_A_RAW 0 (default) 1 Description Current frame in Port A is not encrypted. Current frame in Port A is encrypted. Notes • • The ADV7610 supports the 1.1_FEATURES, FAST_REAUTHENTICATION, and FAST_I2C speed HDCP features. The BCAPS register must be initialized appropriately if these features are to be supported by the application integrating the ADV7610, for example, set BCAPS[0] to 1 to support FAST_REAUTHENTICATION. It is recommended to set BCAPS[7:0] Bit [7] to 1 if the ADV7610 is used as the front end of an HDMI receiver. This bit should be set to 0 for DVI applications. Internal HDCP Key OTP ROM The ADV7610 features an on-chip nonvolatile memory that is preprogrammed with a set of HDCP keys. HDCP Keys Access Flags The ADV7610 accesses the internal HDCP key OTP ROM (also referred to as HDCP ROM) on two different occasions: • • After a power up, the ADV7610 reads the KSV from the internal HDCP ROM (refer to Figure 6). After a KSV update from an HDCP transmitter, the ADV7610 reads the KSV and all keys in order to carry out the link verification response (refer to Figure 7). The host processor can read the HDCP_KEYS_READ and HDCP_KEY_ERROR flags to check that the ADV7610 successfully accessed the HDCP ROM. HDCP_KEYS_READ, Addr 68 (HDMI), Address 0x04[5] (Read Only) A readback to indicate a successful read of the HDCP keys and/or KSV from the internal HDCP Key OTP ROM. A logic high is returned when the read is successful. Function HDCP_KEYS_READ 0 (default) 1 Description HDCP keys and/or KSV not yet read HDCP keys and/or KSV HDCP keys read HDCP_KEY_ERROR, Addr 68 (HDMI), Address 0x04[4] (Read Only) A readback to indicate if a checksum error occurred while reading the HDCP and/or KSV from the HDCP Key ROM Returns 1 when HDCP Key master encounters an error while reading the HDCP Key OTP ROM Function HDCP_KEY_ERROR 0 (default) 1 Description No error occurred while reading HDCP keys HDCP keys read error Rev. 0 | Page 38 of 184 Hardware User Guide UG-438 START (AFTER POWER-UP) HDCP_KEY_READ = 0 HDCP_KEY_ERROR = 0 READ KSV AND CHECKSUM CS1 FROM HDCP OTP ROM DERIVE CHECKSUM CS1' FROM KSV CS1 = CS1' NO HDCP_KEY_ERROR = 1 YES SET BKSV (HDCP REGISTER ADDRESS 0x00 BKSV = KSV 10884-010 HDCP_KEY_READ = 1 HDCP_KEY_ERROR = 0 END Figure 6. HDCP ROM Access After Power-Up Rev. 0 | Page 39 of 184 UG-438 Hardware User Guide START (AKSV UPDATE FROM TRANSMITTER) HDCP_KEY_READ = 0 HDCP_KEY_ERROR = 0 READ KSV, HDCP KEYS AND CHECKSUM CS2 FROM HDCP PROM DERIVE CHECKSUM CS2' FROM KSV AND HDCP KEYS CS1 = CS1' NO HDCP_KEY_ERROR = 1 YES DERIVE LINK VERIFICATION Ri' UPDATE BKSV AND Ri' IN HDCP RESGISTERS 10884-011 HDCP_KEY_READ = 1 END HDCP_KEY_ERROR = 0 END Figure 7. HDCP ROM Access After KSV Update from the Transmitter Notes • • • • • • After the part has powered up, it is recommended to wait for 1 ms before checking the HDCP_KEYS_READ and HDCP_KEY_ERROR flag bits. This ensures that the ADV7610 had sufficient time to access the internal HDCP ROM and set the HDCP_KEYS_READ and HDCP_KEY_ERROR flag bits. After an AKSV update from the transmitter, it is recommended to wait for 2 ms before checking the HDCP_KEYS_READ and HDCP_KEY_ERROR flag bits. This ensures that the ADV7610 had sufficient time to access the internal HDCP ROM, and set the HDCP_KEYS_READ and HDCP_KEY_ERROR flag bits. When the ADV7610 successfully retrieves the HDCP keys and/or KSV from the internal HDCP ROM, the HDCP_KEYS_READ flag bit is set to 1 and the HDCP_KEY_ERROR flag bit is set to 0. The I2C controllers for the main I2C lines and the HDCP lines are independent of each other. It is, therefore, possible to access the internal registers of the ADV7610 while it reads the HDCP keys and/or the KSV from the internal HDCP ROM. A hardware reset (that is, reset via the reset pin) does not lead the ADV7610 to read the KSV or the keys from the HDCP ROM. The ADV7610 takes 1.8 ms to read the keys from the HDCP ROM HDCP Ri Expired Following register allows early detection of HDMI TX failure. Also refer to interrupt status controls RI_EXPIRED_A_ST. HDCP_RI_EXPIRED, Addr 68 (HDMI), Address 0x04[3] (Read Only) Readback high when a calculated Ri has not been read by the source TX, on the active port. It remains high until next Aksv update. Function HDCP_RI_EXPIRED 0 (default) 1 Description Calculated Ri has been read by the source TX Calculated Ri has not been read by the source TX Rev. 0 | Page 40 of 184 Hardware User Guide UG-438 HDMI SYNCHRONIZATION PARAMETERS The ADV7610 contains the logic required to measure the details of the incoming video resolution. The HDMI synchronization parameters readback registers from the HDMI Map can be used, in addition to the STDI registers from the CP (refer to the Standard Detection and Identification section), to estimate the video resolution of the incoming HDMI stream. Notes • • The synchronization parameters are valid if the part is configured in HDMI mode via PRIM_MODE[3:0]. The HDMI synchronization filter readback parameters are valid even while the part free runs (refer to the Free Run Mode section) on the condition that the measurement filters have locked. Horizontal Filter and Measurements The HDMI horizontal filter performs measurements on the DE and HSync of the HDMI stream on the selected port. These measurements are available in the HDMI Map and can be used to determine the resolution of the incoming video data stream. Primary Port Horizontal Filter Measurements The HDMI horizontal filter performs the measurements described in this section on the HDMI port selected by HDMI_PORT_SELECT[2:0]. Notes • • • The horizontal measurements are valid only if DE_REGEN_LCK_RAW is set to 1. The HDMI horizontal filter is used solely to measure the horizontal synchronization signals decoded from the HDMI stream. The HDMI horizontal filter is not in the main path of the synchronization processed by the part and does not delay the overall HDMI data into video data out latency. The unit for horizontal filter measurement is a pixel, that is, the actual element of the picture content encapsulated in the HDMI/DVI stream which the ADV7610 processes. A pixel has a duration TPIXEL, which is provided in Equation 2, unit time of horizontal filter measurements. TPixel = TFTMDS × DEEP_COLOR_RATIO × (PIXEL_REPETITION + 1) (2) where: TFTMDS is the TMDS frequency. DEEP_COLOR_RATIO = 1 for 24-bit deep color. DEEP_COLOR_RATIO = 5/4 for 30-bit deep color. DEEP_COLOR_RATIO = 3/2 for 36-bit deep color. DEEP_COLOR_RATIO = 2 for 48-bit deep color. PIXEL_REPETITION is the number of repeated pixels in the input HDMI stream. DE_REGEN_FILTER_LOCKED, Addr 68 (HDMI), Address 0x07[5] (Read Only) DE regeneration filter lock status. Indicates that the DE regeneration section has locked to the received DE and horizontal synchronization parameter measurements are valid for readback. Function DE_REGEN_FILTER_LOCKED 0 (default) 1 Description DE regeneration not locked DE regeneration locked to incoming DE DE_REGEN_LCK_RAW, IO, Address 0x6A[0] (Read Only) Raw status of the DE regeneration lock signal. Function DE_REGEN_LCK_RAW 0 (default) 1 Description DE regeneration block has not been locked. DE regeneration block has been locked to the incoming DE signal. Rev. 0 | Page 41 of 184 UG-438 Hardware User Guide TOTAL_LINE_WIDTH[13:0], Addr 68 (HDMI), Address 0x1E[5:0]; Address 0x1F[7:0] (Read Only) Total line width is a horizontal synchronization measurement. This gives the total number of pixels per line. This measurement is valid only when the DE regeneration filter has locked. Function TOTAL_LINE_WIDTH[13:0] xxxxxxxxxxxxx Description Total number of pixels per line LINE_WIDTH[12:0], Addr 68 (HDMI), Address 0x07[4:0]; Address 0x08[7:0] (Read Only) Line width is a horizontal synchronization measurement, which gives the number of active pixels in a line. This measurement is only valid when the DE regeneration filter is locked. Function LINE_WIDTH[12:0] 00000000000 (default) xxxxxxxxxxx Description Total number of active pixels per line Total number of active pixels per line HSYNC_FRONT_PORCH[12:0], Addr 68 (HDMI), Address 0x20[4:0]; Address 0x21[7:0] (Read Only) HSync front porch width is a horizontal synchronization measurement. The unit of this measurement is unique pixels. This measurement is valid only when the DE regeneration filter has locked. Function HSYNC_FRONT_PORCH[12:0] xxxxxxxxxxx Description Total number of pixels in the front porch HSYNC_PULSE_WIDTH[12:0], Addr 68 (HDMI), Address 0x22[4:0]; Address 0x23[7:0] (Read Only) HSync pulse width is a horizontal synchronization measurement. The unit of this measurement is unique pixels. This measurement is valid only when the DE regeneration filter has locked. Function HSYNC_PULSE_WIDTH[12:0] xxxxxxxxxxx Description Total number of pixels in the hsync pulse HSYNC_BACK_PORCH[12:0], Addr 68 (HDMI), Address 0x24[4:0]; Address 0x25[7:0] (Read Only) HSync back porch width is a horizontal synchronization measurement. The unit of this measurement is unique pixels. This measurement is valid only when the DE regeneration filter has locked. Function HSYNC_BACK_PORCH[12:0] xxxxxxxxxxx Description Total number of pixels in the back porch DVI_HSYNC_POLARITY, Addr 68 (HDMI), Address 0x05[5] (Read Only) A readback to indicate the polarity of the HSync encoded in the input stream Function DVI_HSYNC_POLARITY 0 (default) 1 Description The HSync is active low. The HSync is active high. Rev. 0 | Page 42 of 184 Hardware User Guide UG-438 A DATA ENABLE B D C E NOTE: A TOTAL NUMBER OF PIXELS PER LINE B ACTIVE NUMBER OF PIXELS PER LINE C HSYNC FRONT PORCH WIDTH IN PIXEL UNIT D HSYNC WIDTH IN PIXEL UNIT E HSYNC BACK PORCH WIDTH IN PIXEL UNIT 10884-012 HSYNC Figure 8. Horizontal Timing Parameters Horizontal Filter Locking Mechanism The locking/unlocking mechanism of the HDMI horizontal filter is as follows: • • The HDMI horizontal filter locks if the following two conditions are met: • The DE transitions occur at the exact same pixel count for eight consecutive video lines • The HSync transitions occur at the exact same pixel count for eight consecutive video lines The HDMI horizontal filter unlocks if either of the two following conditions are met: • The DE transitions occur on different pixels count for 15 consecutive video lines • The HSync transitions occur on different pixels count for 15 consecutive video lines Vertical Filters and Measurements The ADV7610 integrates a HDMI vertical filter, which performs measurements on the VSync of the HDMI stream on the selected port. These measurements are available in the HDMI map and can be used to determine the resolution of the incoming video data stream. Primary Port Vertical Filter Measurements The HDMI vertical filter performs the measurements on the HDMI port selected by HDMI_PORT_SELECT[2:0]. The Field 0 measurements are adequate to determine the standard of incoming progressive modes. A combination of Field 0 and field 1 measurements should be used to determine the standard of interlaced modes. Notes • • The vertical measurements are valid only if V_LOCKED_RAW is set to 1. The HDMI vertical filter is used solely to measure the vertical synchronization signals decoded from the HDMI stream. This filter is not in the main path of the synchronization processed by the part and does not delay the overall HDMI data into video data out latency. VERT_FILTER_LOCKED, Addr 68 (HDMI), Address 0x07[7] (Read Only) Vertical filter lock status. Indicates whether the vertical filter is locked and vertical synchronization parameter measurements are valid for readback. Function VERT_FILTER_LOCKED 0 1 Description Vertical filter has not locked. Vertical filter has locked. V_LOCKED_RAW, IO, Address 0x6A[1] (Read Only) Raw status of the vertical sync filter locked signal. Function V_LOCKED_RAW 0 1 Description Vertical sync filter has not locked and vertical sync parameters are not valid Vertical sync filter has locked and vertical sync parameters are valid Note: Field 0 measurements are used to determine the video modes that are progressive. Rev. 0 | Page 43 of 184 UG-438 Hardware User Guide FIELD0_TOTAL_HEIGHT[13:0], Addr 68 (HDMI), Address 0x26[5:0]; Address 0x27[7:0] (Read Only) Field 0 total height is a vertical synchronization measurement. This readback gives the total number of half lines in Field 0. This measurement is valid only when the vertical filter has locked. Function FIELD0_TOTAL_HEIGHT[13:0] xxxxxxxxxxxxxx Description The total number of half lines in Field 0 (divide readback by 2 to get number of lines) FIELD0_HEIGHT[12:0], Addr 68 (HDMI), Address 0x09[4:0]; Address 0x0A[7:0] (Read Only) Field 0 height is a vertical filter measurement. This readback gives the number of active lines in Field 0. This measurement is valid only when the vertical filter has locked. Function FIELD0_HEIGHT[12:0] xxxxxxxxxxxxx Description The number of active lines in Field 0 FIELD0_VS_FRONT_PORCH[13:0], Addr 68 (HDMI), Address 0x2A[5:0]; Address 0x2B[7:0] (Read Only) Field 0 VSync front porch width is a vertical synchronization measurement. The unit of this measurement is half lines. This measurement is valid only when the vertical filter has locked. Function FIELD0_VS_FRONT_PORCH[13:0] xxxxxxxxxxxxxx Description The total number of half lines in the VSync front porch of Field 0 (divide readback by 2 to get number of lines) FIELD0_VS_PULSE_WIDTH[13:0], Addr 68 (HDMI), Address 0x2E[5:0]; Address 0x2F[7:0] (Read Only) Field 0 VSync width is a vertical synchronization measurement. The unit for this measurement is half lines. This measurement is valid only when the vertical filter has locked. Function FIELD0_VS_PULSE_WIDTH[13:0] xxxxxxxxxxxxxx Description The total number of half lines in the VSync pulse of Field 0 (divide readback by 2 to get number of lines) FIELD0_VS_BACK_PORCH[13:0], Addr 68 (HDMI), Address 0x32[5:0]; Address 0x33[7:0] (Read Only) Field 0 VSync back porch width is a vertical synchronization measurement. The unit for this measurement is half lines. Function FIELD0_VS_BACK_PORCH[13:0] xxxxxxxxxxxxxx Description The total number of half lines in the VSync Back Porch of Field 0 (divide readback by 2 to get number of lines) DVI_VSYNC_POLARITY, Addr 68 (HDMI), Address 0x05[4] (Read Only) A readback to indicate the polarity of the VSync encoded in the input stream Function DVI_VSYNC_POLARITY 0 1 Description The VSync is active low. The VSync is active high. Rev. 0 | Page 44 of 184 Hardware User Guide UG-438 A B DATA ENABLE HSYNC C D E NOTE: A TOTAL NUMBER OF LINES IN FIELD 0. UNIT IS IN HALF LINES. B ACTIVES NUMBER OF LINES IN FIELD 0. UNIT IS IN HALF LINES. C VSYNC FRONT PORCH WIDTH IN FIELD 0. UNIT IS IN HALF LINES. D VSYNC PULSE WIDTH IN FIELD 0. UNIT IS IN HALF LINES. E VSYNC BACK PORCH WIDTH IN FIELD 0. UNIT IS IN HALF LINES. 10884-013 VSYNC Figure 9. Vertical Parameters for FIELD 0 Note: Field 1 measurements should not be used for progressive video modes. FIELD1_TOTAL_HEIGHT[13:0], Addr 68 (HDMI), Address 0x28[5:0]; Address 0x29[7:0] (Read Only) Field 1 total height is a vertical synchronization measurement. This readback gives the total number of half lines in Field 1. This measurement is valid only when the vertical filter has locked. Field 1 measurements are valid when HDMI_INTERLACED is set to 1. Function FIELD1_TOTAL_HEIGHT[13:0] xxxxxxxxxxxxxx Description The total number of half lines in Field 1 (divide readback by 2 to get number of lines) FIELD1_HEIGHT[12:0], Addr 68 (HDMI), Address 0x0B[4:0]; Address 0x0C[7:0] (Read Only) Field 1 height is a vertical filter measurement. This readback gives the number of active lines in field. This measurement is valid only when the vertical filter has locked. Field 1 measurements are only valid when HDMI_INTERLACED is set to 1. Function FIELD1_HEIGHT[12:0] xxxxxxxxxxxxx Description The number of active lines in Field 1 FIELD1_VS_FRONT_PORCH[13:0], Addr 68 (HDMI), Address 0x2C[5:0]; Address 0x2D[7:0] (Read Only) Field 1 VSync front porch width is a vertical synchronization measurement. The unit of this measurement is half lines. This measurement is valid only when the vertical filter has locked. Field 1 measurements are valid when HDMI_INTERLACED is set to 1. Function FIELD1_VS_FRONT_PORCH[13:0] xxxxxxxxxxxxxx Description The total number of half lines in the VSync front porch of Field 1 (divide readback by 2 to get number of lines) FIELD1_VS_PULSE_WIDTH[13:0], Addr 68 (HDMI), Address 0x30[5:0]; Address 0x31[7:0] (Read Only) Field 1 VSync width is a vertical synchronization measurement. The unit for this measurement is half lines. This measurement is valid only when the vertical filter has locked. Field 1 measurements are valid when HDMI_INTERLACED is set to 1. Function FIELD1_VS_PULSE_WIDTH[13:0] xxxxxxxxxxxxxx Description The total number of half lines in the VSync pulse of Field 1 (divide readback by 2 to get number of lines) FIELD1_VS_BACK_PORCH[13:0], Addr 68 (HDMI), Address 0x34[5:0]; Address 0x35[7:0] (Read Only) Field 1 VSync back porch width is a vertical synchronization measurement. The unit for this measurement is half lines. This measurement is valid only when the vertical filter has locked. Field 1 measurements are valid when HDMI_INTERLACED is set to 1. Function FIELD1_VS_BACK_PORCH[13:0] xxxxxxxxxxxxx Description The number of half lines in the VSync back porch of Field 1 (divide readback by 2 to get number of lines) Rev. 0 | Page 45 of 184 UG-438 Hardware User Guide A B DATA ENABLE HSYNC E D C VSYNC 10884-014 NOTE: A TOTAL NUMBER OF LINES IN FIELD 1. UNIT IS IN HALF LINES. B ACTIVES NUMBER OF LINES IN FIELD 1. UNIT IS IN HALF LINES. C VSYNC FRONT PORCH WIDTH IN FIELD 1. UNIT IS IN HALF LINES. D VSYNC PULSE WIDTH IN FIELD 1. UNIT IS IN HALF LINES. E VSYNC BACK PORCH WIDTH IN FIELD 1. UNIT IS IN HALF LINES. Figure 10. Vertical Parameters for FIELD 1 The vertical filter provides the interlaced status of the video stream. The interlaced status INTERLACED_HDMI is valid only if the vertical filter is locked and V_LOCKED_RAW is set to 1. HDMI_INTERLACED, Addr 68 (HDMI), Address 0x0B[5] (Read Only) HDMI input Interlace status, a vertical filter measurement. Function HDMI_INTERLACED 0 1 Description Progressive Input Interlaced Input Vertical Filter Locking Mechanism The HDMI vertical filter locks if the input VSync comes at exactly the same line count for two consecutive frames. The HDMI vertical filter unlocks if the VSync comes at a different pixels count for two consecutive frames. AUDIO CONTROL AND CONFIGURATION The ADV7610 extracts an L-PCM, IEC 61937 compressed or DST audio data stream from their corresponding audio packets (that is, audio sample or DST) encapsulated inside the HDMI data stream. The ADV7610 also regenerates an audio master clock along with the extraction of the audio data. The clock regeneration is performed by an integrated DPLL. The regenerated clock is used to output audio data from the 64 stereo sample depth FIFO to the audio interface configuration pins. Important • • The ADV7610 supports the extraction of stereo audio data (noncompressed or compressed) at audio sampling frequency up to 192 kHz. The ADV7610 supports the extraction of multichannel audio data. TMDS CLOCK N AUDIO DPLL MCLK/INT2 CTS 128fs ACR PACKET DATA AUDIO FIFO AUDIO DATA DELAY LINE RAMPED MUTE/UNMUTE PACKET PROCESSOR (DISPATCH BLOCK) DATA FROM HDCP ENGINE/MASK VIDEO DATA AUDIO RECONSTRUCTION, SERIALIZATION AND MUXING I2S0 TO I2S3 SCLK/ INT2 TO DPP BLOCK CHANNEL STATUS BITS COLLECTION Figure 11. Audio Processor Block Diagram Rev. 0 | Page 46 of 184 10884-015 TMDS CLOCK Hardware User Guide UG-438 Audio DPLL The audio DPLL generates an internal audio master clock with a frequency of 128 times the audio sampling frequency, usually called fs. The audio master clock is used to clock the audio processing section. Locking Mechanism When the upstream HDMI transmitter outputs a stable TMDS frequency and consistent audio clock regeneration values, the audio DPLL locks within two cycles of the audio master clock after the following two conditions are met: • • TMDS PLL is locked (refer to TMDS_PLL_LOCKED) ADV7610 has received an ACR packet with N and CTS parameters within a valid range The audio DPLL lock status can be monitored via AUDIO_PLL_LOCKED. AUDIO_PLL_LOCKED, Addr 68 (HDMI), Address 0x04[0] (Read Only) A readback to indicate the Audio DPLL lock status. Function AUDIO_PLL_LOCKED 0 (default) 1 Description The audio DPLL is not locked. The audio DPLL is locked. ACR Parameters Loading Method The N and CTS parameters from the ACR packets are used to regenerate the audio clock and are reloaded into the DPLL anytime they change. The self-clearing bit FORCE_N_UPDATE provides a means to reset the audio DPLL by forcing a reload of the N and CTS parameters from the ACR packet into the audio DPLL. FORCE_N_UPDATE, Addr 68 (HDMI), Address 0x5A[0] (Self-Clearing) A control to force an N and CTS value update to the audio DPLL. The audio DPLL regenerates the audio clock. Function FORCE_N_UPDATE 0 (default) 1 Description No effect Forces an update on the N and CTS values for audio clock regeneration Audio DPLL Coast Feature The audio DPLL incorporates a coast feature that allows it to indefinitely output a stable audio master clock when selectable events occur. The coast feature allows the audio DPLL to provide an audio master clock when the audio processor mutes the audio following a mute condition (refer to the Audio Muting section). The events that cause the audio DPLL to coast are selected via the coasts masks listed in Table 8. Table 8. Selectable Coast Conditions Bit Name AC_MSK_VCLK_CHNG HDMI Map Address 0x13[6] AC_MSK_VPLL_UNLOCK AC_MSK_NEW_CTS 0x13[5] 0x13[3] AC_MSK_NEW_N AC_MSK_CHNG_PORT AC_MSK_VCLK_DET 0x13[2] 0x13[1] 0x13[0] Description When set to 1, audio DPLL coasts if TMDS clock has any irregular/missing pulses When set to 1, audio DPLL coasts if TMDS PLL unlocks When set to 1, audio DPLL coasts if CTS changes by more than threshold set in CTS_CHANGE_THRESHOLD[5:0] When set to 1, audio DPLL coasts if N changes When set to 1, audio DPLL coasts if active port is changed When set to 1, audio DPLL coasts if no TMDS clock is detected on the active port Rev. 0 | Page 47 of 184 Corresponding Status Register(s) VCLK_CHNG_RAW TMDS_PLL_LOCKED CTS_PASS_THRSH_RAW CHANGE_N_RAW HDMI_PORT_SELECT[2:0] TMDS_CLK_A_RAW UG-438 Hardware User Guide AUDIO FIFO The audio FIFO can store up to 128 audio stereo data from the audio sample or DST packets. Stereo audio data are added into the FIFO from the audio packet received. Stereo audio data are retrieved from the FIFO at a rate corresponding to 128 times the audio sampling frequency, fs. The status of the audio FIFO can be monitored through the status flags FIFO_UNDERFLO_RAW, FIFO_OVERFLO_RAW, FIFO_NEAR_OVFL_RAW, and FIFO_NEAR_UFLO_RAW. ADDRESS ORDER EMPTY ADDRESS 63 … … … WRITE POINTER EMPTY ADDRESS N + 2 STEREO DATA N – 1 STEREO DATA N – 2 ADDRESS N + 1 ADDRESS N … … … STEREO DATA 1 ADDRESS 3 STEREO DATA 0 ADDRESS 2 EMPTY ADDRESS 1 EMPTY ADDRESS 0 10884-016 READ POINTER Figure 12. Audio FIFO FIFO_UNDERFLO_RAW, IO, Address 0x7E[6] (Read Only) Status of audio FIFO underflow interrupt signal. When set to 1, it indicates the audio FIFO read pointer has reached the write pointer causing the audio FIFO to underflow. Once set, this bit will remain high until it is cleared via AUDIO_FIFO_UNDERFLO_CLR. Function FIFO_UNDERFLO_RAW 0 (default) 1 Description Audio FIFO has not underflowed. Audio FIFO has underflowed. FIFO_OVERFLO_RAW, IO, Address 0x7E[5] (Read Only) Status of audio FIFO overflow interrupt signal. When set to 1, it indicates audio FIFO write pointer has reached the read pointer causing the audio FIFO to overflow. Once set, this bit will remain high until it is cleared via AUDIO_FIFO_OVERFLO_CLR. Function FIFO_OVERFLO_RAW 0 (default) 1 Description Audio FIFO has not overflowed. Audio FIFO has overflowed. FIFO_NEAR_UFLO_RAW, IO, Address 0x83[0] (Read Only) Status of audio FIFO near underflow interrupt signal. When set to 1, it indicates the audio FIFO is near underflow as the number of FIFO registers containing stereo data is less or equal to value set in AUDIO_FIFO_ALMOST_EMPTY_THRESHOLD. Once set, this bit will remain high until it is cleared via FIFO_NEAR_UFLO_CLR. Function FIFO_NEAR_UFLO_RAW 0 (default) 1 Description Audio FIFO has not reached low threshold defined in AUDIO_FIFO_ALMOST_EMPTY_THRESHOLD [5:0]. Audio FIFO has reached low threshold defined in AUDIO_FIFO_ALMOST_EMPTY_THRESHOLD [5:0]. Rev. 0 | Page 48 of 184 Hardware User Guide UG-438 FIFO_NEAR_OVFL_RAW, IO, Address 0x7E[7] (Read Only) Status of audio FIFO near overflow interrupt signal. When set to 1, it indicates the audio FIFO is near overflow as the number FIFO registers containing stereo data is greater or equal to value set in AUDIO_FIFO_ALMOST_FULL_THRESHOLD. Once set, this bit will remain high until it is cleared via FIFO_NEAR_OVFL_CLR. Function FIFO_NEAR_OVFL_RAW 0 (default) 1 Description Audio FIFO has not reached high threshold defined in AUDIO_FIFO_ALMOST_FULL_THRESHOLD [5:0] Audio FIFO has reached high threshold defined in AUDIO_FIFO_ALMOST_FULL_THRESHOLD [5:0] AUDIO_FIFO_ALMOST_EMPTY_THRESHOLD[6:0], Addr 68 (HDMI), Address 0x12[6:0] Sets the threshold used for FIFO_NEAR_UFLO_RAW. FIFO_NEAR_UFLO_ST interrupt is triggered if audio FIFO goes below this level. Function AUDIO_FIFO_ALMOST_EMPTY_THRESHOLD[6:0] 0x02 (default) Description Default value AUDIO_FIFO_ALMOST_FULL_THRESHOLD[6:0], Addr 68 (HDMI), Address 0x11[6:0] Sets the threshold used for FIFO_NEAR_OVRFL_RAW. FIFO_NEAR_OVRFL_ST interrupt is triggered if audio FIFO reaches this level. Function AUDIO_FIFO_ALMOST_FULL_THRESHOLD[6:0] 0x7D (default) Description Default value AUDIO PACKET TYPE FLAGS The ADV7610 can receive the following audio packets: • • • • Audio sample packets HBR packets DSD packets DST packets The following flags are provided to monitor the type of audio packets received by the ADV7610. Figure 13 shows the algorithm that can be implemented to monitor the type of audio packet processed by the ADV7610. AUDIO_MODE_CHNG_RAW, IO, Address 0x83[5] (Read Only) Status of audio mode change interrupt signal. When set to 1, it indicates that the type of audio packet received has changed. The following are considered audio modes, no audio packets, audio sample packet, DSD packet, HBR packet or DST packet. Once set, this bit remains high until it is cleared via AUDIO_MODE_CHNG_CLR. Function AUDIO_MODE_CHNG_RAW 0 (default) 1 Description Audio mode has not changed. Audio mode has changed. AUDIO_SAMPLE_PCKT_DET, Addr 68 (HDMI), Address 0x18[0] (Read Only) Audio sample packet detection bit. This bit resets to zero on the 11th HSync leading edge following an audio packet if a subsequent audio sample packet has not been received or if a DSD, DST, or HBR audio packet sample packet has been received. Function AUDIO_SAMPLE_PCKT_DET 0 (default) 1 Description No L_PCM or IEC 61937 compressed audio sample packet received within the last 10 HSyncs L_PCM or IEC 61937 compressed audio sample packet received within the last 10 HSyncs Rev. 0 | Page 49 of 184 UG-438 Hardware User Guide DSD_PACKET_DET, Addr 68 (HDMI), Address 0x18[1] (Read Only) DSD audio packet detection bit. This bit resets to zero on the 11th HSync leading edge following a DSD packet or if an audio, DST, or HBR packet sample packet has been received or after an HDMI reset condition. Function DSD_PACKET_DET 0 (default) 1 Description No DSD packet received within the last 10 HSync DSD packet received within the last 10 HSync DST_AUDIO_PCKT_DET, Addr 68 (HDMI), Address 0x18[2] (Read Only) DST audio packet detection bit. This bit resets to zero on the 11th HSync leading edge following a DST packet if a subsequent DST has not been received. Or, if an audio, DSD, or HBR packet sample packet has been received or after an HDMI reset condition. Function DST_AUDIO_PCKT_DET 0 (default) 1 Description No DST packet received within the last 10 HSync DST packet received within the last 10 HSync HBR_AUDIO_PCKT_DET, Addr 68 (HDMI), Address 0x18[3] (Read Only) HBR Packet detection bit. This bit resets to zero on the 11th HSync leading edge following an HBR packet if a subsequent HBR packet has not been detected. It also resets if an Audio, DSD or DST packet sample packet has been received and after an HDMI reset condition. Function HBR_AUDIO_PCKT_DET 0 (default) 1 Description No HBR audio packet received within the last 10 HSync HBR audio packet received within the last 10 HSync Notes • • • • The ADV7610 processes only one type of audio packet at a time. The ADV7610 processes the latest type of audio packet that it received. AUDIO_SAMPL_PCKT_DET, DSD_PACKET_DET, DST_AUDIO_PCKT_DET, and HBR_AUDIO_PCKT_DET are reset to 0 when a HDMI packet detect reset condition occurs. A corresponding interrupt can be enabled for AUDIO_MODE_CHNG_RAW by setting the mask AUDIO_MODE_CHNG_MB1 or AUDIO_MODE_CHNG_MB2. Refer to the Interrupts section for additional information on the interrupt feature. Rev. 0 | Page 50 of 184 Hardware User Guide UG-438 START ENABLE THE AUDIO_MODE_CHNG_ST INTERRUPT YES AUDIO_MODE_CH NG_ST INTERRUPT? NO AUDIO SAMPLE PACKETS ARE BEING RECEIVED NO IS AUDIO_SAMPLE PCKT_DET? YES AUDIO SAMPLE PACKETS ARE BEING RECEIVED NO DSD PACKETS ARE BEING RECEIVED NO IS DSD_PACKET_DET? YES DSD PACKETS ARE BEING RECEIVED NO DST PACKETS ARE BEING RECEIVED NO IS DST_PACKET_DET? YES DST PACKETS ARE BEING RECEIVED NO HBR PACKETS ARE BEING RECEIVED NO IS HBR_PACKET_DET? YES HBR PACKETS ARE BEING RECEIVED Figure 13. Monitoring Audio Packet Type Processed by ADV7610 AUDIO OUTPUT INTERFACE The ADV7610 has a dedicated 3-pin audio output interface. The output pin names and descriptions are shown in Table 9. Table 9. Audio Outputs and Clocks Output Pixel Port I2S0 I2S1 I2S2 I2S3 SCLK/INT2 MCLK/INT2 LRCLK Description Audio Output Port 0 Audio Output Port 1 Audio Output Port 2 Audio Output Port 2 Bit Clock Audio Master Clock LRCLK Rev. 0 | Page 51 of 184 10884-017 SET AUDIO_MODE_CHNG_CLR TO 1 UG-438 Hardware User Guide Table 10 shows the default configurations for the various possible output interfaces. Table 10. Default Audio Output Pixel Port Mapping Output Pixel Port I2S0 I2S1 I2S2 I2S3 I2S /SPDIF Interface I2S 0/SDPIF0 I2S 1/SDPIF1 I2S 2/SDPIF2 I2S 3/SDPIF3 Note: It is possible to tristate the audio pins using the global controls, as described in the Tristate Audio Output Drivers section. It is possible to output SPDIF signal to the I2S pins (AP) using MUX_SPDIF_TO_I2S_ENABLE. MUX_SPDIF_TO_I2S_ENABLE, Addr 68 (HDMI), Address 0x6E[3] Enables muxing SPDF data into I2S pins (AP) Function MUX_SPDIF_TO_I2S_ENABLE 0 (default) 1 Description Don’t modify I2S outputs Mux SPDIF into I2S pins I2S/SPDIF Audio Interface and Output Controls Two controls are provided to change the mapping between the audio output ports and the I2S and SPDIF (IEC60958) signals. I2S_SPDIF_MAP_ROT[1:0], Addr 68 (HDMI), Address 0x6D[5:4] A control to select the arrangement of the I2S/SPDIF interface on the audio output port pins. Function I2S_SPDIF_MAP_ROT[1:0] 00 (default) 01 10 11 Description I2S0/SPDIF0 on I2S0, I2S1/SPDIF1 on I2S1, I2S2/SPDIF2 on I2S2, I2S3/SPDIF3 on I2S3 I2S3/SPDIF3 on I2S0, I2S0/SPDIF0 on I2S1, I2S1/SPDIF1 on I2S2, I2S2/SPDIF2 on I2S3 I2S2/SPDIF2 on I2S0, I2S3/SPDIF3 on I2S1, I2S0/SPDIF0 on I2S2, I2S1/SPDIF1 on I2S3 I2S1/SPDIF1 on I2S0, I2S2/SPDIF2 on I2S1, I2S3/SPDIF3 on I2S2, I2S0/SPDIF0 on I2S3 I2SBITWIDTH[4:0], Addr 68 (HDMI), Address 0x03[4:0] A control to adjust the bit width for right justified mode on the I2S interface. Function I2SBITWIDTH[4:0] 00000 00001 00010 … 11000 (default) 11110 11111 Description 0 bit 1 bit 2 bits … 24 bits 30 bits 31 bits I2SOUTMODE[1:0], Addr 68 (HDMI), Address 0x03[6:5] A control to configure the I2S output interface. Function I2SOUTMODE[1:0] 00 (default) 01 10 11 Description I2S mode Right justified Left justified Raw SPDIF (IEC60958) mode Rev. 0 | Page 52 of 184 Hardware User Guide UG-438 Notes • I2SOUTMODE is effective when the ADV7610 is configured to output I2S streams or AES3 streams. This is the case in the situation where the ADV7610 receives audio sample packets • The ADV7610 receives HBR packets, OVR_MUX_HBR is set to 1, and MUX_HBR_OUT is set to 2’b00, 2’b01, 2’b10 or 2’b11. • In HBR mode, it is required that the part outputs four SPDIF, I2S, or raw IEC60958 streams encapsulating a 24-bit audio sample word. Therefore, 12SBITWIDTH[4:0] must always be set to 0b11000. The following audio formats can be output when the ADV7610 receives audio sample packets: • • • • • • L-PCM audio data is output on the audio output pins if the part receives the audio sample packets with L-PCM encoded audio data. Each audio output pin carries stereo data that can be output in I2S, right justified, or left justified mode (see Figure 14, Figure 15, and Figure 16). The I2SOUTMODE[1:0] control must be set to 0x0, 0x01, or 0x2 to output I2S, right justified, and left justified respectively, on the audio output pins. A stream conforming to the IEC60958 specification when the part receives audio sample packets with L-PCM encoded data (refer to Figure 17). An AES3 stream if the I2SOUTMODE[1:0] control is set to 0x3 (refer to Figure 18 and Figure 19). Note that AES3 is also referred to as raw SPDIF. Each AES3 stream may encapsulate stereo L-PCM audio data or multichannel non L-PCM audio data (for example, 5.1 Dolby Digital). Binary stream on the audio output pins when the part receives audio sample packets with non L-PCM encoded audio data (that is, AC-3 compressed audio) and if the following configuration is used: I2SOUTMODE must be set to 0x0, 0x01, or 0x2 for I2S, right justified, and left justified format, respectively (see Figure 14, Figure 15, and Figure 16). MT_MSK_COMPRS_AUD is set to 0. Note that no audio flags are output by the part in that configuration. Each binary stream output by the part may encapsulate stereo LPCM audio data or multichannel non L-PCM audio data (for example, 5.1 Dolby Digital). Table 11. I2S/SPDIF Interface Description I2S/SPDIF Interface IO I2S0/SDPIF0 I2S1/SDPIF1 I2S2/SDPIF2 I2S3/SDPIF3 SCLK LRCLK MCLKOUT LRCLK Function I2S audio (Channel 1, Channel 2)/SPDIF0 I2S audio (Channel 3, Channel 4)/SPDIF1 I2S audio (Channel 5, Channel 6)/SPDIF2 I2S audio (Channel 7, Channel 8)/SPDIF3 Bit clock Data output clock for left and right channel Audio master clock output LEFT RIGHT SCLK MSB LSB MSB LSB 32 CLOCK SLOTS 32 CLOCK SLOTS 2 Figure 14. Timing Audio Data Output in I S Mode Rev. 0 | Page 53 of 184 10884-018 ISx UG-438 Hardware User Guide LEFT RIGHT MSB MSB MSB MSB – 1 LSB MSB MSB MSB MSB LSB MSB – 1 MSB EXTENDED MSB EXTENDED 32 CLOCK SLOTS 10884-019 MSB 32 CLOCK SLOTS Figure 15. Timing Audio Data Output in Right Justified Mode RIGHT MSB LSB MSB LSB 32 CLOCK SLOTS 10884-020 LEFT 32 CLOCK SLOTS Figure 16. Timing Audio Data Output in Left Justified Mode 0 3 4 SYNC PREAMBLE 27 28 L S B M S B AUDIO SAMPLE WORD V 31 U C P VALIDITY FLAG USER DATA 10884-021 CHANNEL STATUS PARITY BIT Figure 17. IEC60958 Subframe Timing Diagram 0 23 24 L S B M S B V DATA VALIDITY FLAG 27 U C B 31 0 0 0 0 ZERO PADDING CHANNEL STATUS BLOCK START FLAG Figure 18. AES3 Subframe Timing Diagram Rev. 0 | Page 54 of 184 10884-022 USER DATA Hardware User Guide UG-438 CHANNEL A MSB V U C B LSB 32 CLOCK SLOTS MSB V U C B 32 CLOCK SLOTS FRAME N FRAME N + 1 10884-023 LSB CHANNEL B Figure 19. AES3 Stream Timing Diagram DSD Audio Interface and Output Controls The ADV7610 incorporates a four DSD channel interface used to output the audio stream extracted from DSD packets. Each of the DSD channels carries an oversampled 1-bit representation of the audio signal as delivered on SACDs. Table 12. DSD Interface Description DSD Interface IO DSD0A DSD0B DSD1A DSD1B SCLK MCLKOUT Function First DSD data channel Second DSD data channel Third DSD data channel Fourth DSD data channel Bit clock Audio master clock output Two controls are provided to change the mapping between the audio output ports and DSD signals. DSD_MAP_ROT[2:0], Addr 68 (HDMI), Address 0x6D[2:0] A control to select the arrangement of the DSD interface on the audio output port pins. Function DSD_MAP_ROT[2:0] 000 (default) 001 010 011 to 111 Description Reserved DSD0A on I2S0, DSD0B on I2S1, DSD1A on I2S2, DSD1B on I2S3 DSD0A on I2S1, DSD0B on I2S2, DSD1A on I2S3, DSD1B on LRCLK Reserved DSD_MAP_INV, Addr 68 (HDMI), Address 0x6D[3] A control to invert the arrangement of the DSD interface on the audio output port pins. Note the arrangement of the DSD interface on the audio output port pins is determined by DSD_MAP_ROT[2:0]. Function DSD_MAP_INV 0 (default) 1 Description Do not invert arrangement of the DSD channels on the audio output port pins Invert arrangement of the DSD channels on the audio output port pins Note that DSD0A and DSD0B output must be used when in stereo mode only. DSD0A and DSD0B always carry the main 2-channel audio data. DSD1A and DSD1B are the surround channels where: xx is the channel, for example, 0A, 0B. 10884-101 SCLK DSDxx Figure 20. DSD Timing Diagram By default, the ADV7610 automatically enables the DSD interface if it receives DSD packets. The ADV7610 also automatically enables the I2S interface if it receives audio sample packets or if it does not receive any audio packets. However, it is possible to override the audio interface that is used via the OVR_AUTO_MUX_DSD_OUT and MUX_DSD_OUT controls. Rev. 0 | Page 55 of 184 UG-438 Hardware User Guide OVR_AUTO_MUX_DSD_OUT, Addr 68 (HDMI), Address 0x01[3] DSD/DST override control. In automatic control, DSD or I2S interface is selected according to the type of packet received. DSD/DST interface is enabled if the part receives DSD or DST audio sample packet. I2S interface is enabled when part receives audio sample packets or when no packet is received. In manual mode, MUX_DSD_OUT selects the output interface. Function OVR_AUTO_MUX_DSD_OUT 0 (default) 1 Description Automatic DSD/DST output control Override DSD/DST output control MUX_DSD_OUT, Addr 68 (HDMI), Address 0x01[4] An override control for the DSD output. Function MUX_DSD_OUT 0 (default) 1 Description Override by outputting I2S data Override by outputting DSD/DST data HBR Interface and Output Controls The ADV7610 can receive HBR audio stream packets. The ADV7610 outputs HBR data over four of the audio output pins in any of the following formats: • • • An SDPIF stream conforming to the IEC60958 specification (refer to Figure 17). The following configuration is required to output an SPDIF stream on the HBR output pins: • OVR_MUX_HBR is set to 0 or • OVR_MUX_HBR is set to 1 and MUX_HBR_OUT is set to 1. A binary stream if one of the following configurations is used: • OVR_MUX_HBR is set to 1, MUX_HBR_OUT is set to 0, and I2SOUTMODE[1:0] is set to 0x0 for an I2S mode binary stream (refer to Figure 14). • OVR_MUX_HBR is set to 1, MUX_HBR_OUT is set to 0, and I2SOUTMODE[1:0] is set to 0x1 for a right justified stream (refer to Figure 15). • OVR_MUX_HBR is set to 1, MUX_HBR_OUT is set to 0, and I2SOUTMODE[1:0] is set to 0x2 for a left justified stream (refer to Figure 16). • No audio flags are output by the part in these configuration. An AES3 stream on each HBR interface output pin (refer to Figure 18 and Figure 19). The following configuration is required to output AES3 streams: • OVR_MUX_HBR is set to 1. • I2SOUTMODE[1:0] is set to 0b11. It is important to note that: • • Each of the four HBR outputs carry one of four consecutive blocks of the HBR stream. The four streams on the four HBR pin are output at one quarter of the audio sample rate, fS. Table 13. HBR Interface Description HBR Interface IO I2S0 I2S1 I2S2 I2S3 SCLK LRCLK MCLKOUT Function First block of HBR stream. Second block of HBR stream Third block of HBR stream Fourth block of HBR stream Bit clock Data output clock for left and right channel Audio master clock output Note that the audio output mapping controls I2S_SPDIF_MAP_ROT[1:0] also apply to the HBR output signals. Rev. 0 | Page 56 of 184 Hardware User Guide UG-438 OVR_MUX_HBR, Addr 68 (HDMI), Address 0x01[2] A control to select automatic or manual configuration for HBR outputs. Automatically, HBR outputs are encoded as SPDIF streams. In manual mode, MUX_HBR_OUT selects the audio output interface. Function OVR_MUX_HBR 0 (default) 1 Description Automatic HBR output control Manual HBR output control MUX_HBR_OUT, Addr 68 (HDMI), Address 0x01[1] A control to manually select the audio output interface for HBR data. Valid when OVR_MUX_HBR is set to 1. Function MUX_HBR_OUT 0 (default) 1 Description Override by outputting I2S data Override by outputting SPDIF data MCLKOUT SETTING The frequency of audio master clock MCLKOUT is set using the MCLK_FS_N[2:0] register, as shown in Equation 3, relationship between MCLKOUT, MCLKFS_N, and fs. MCLKOUT = (MCLKFS_N[2:0] + 1) × 128 × fS (3) MCLK_FS_N[2:0], Addr 4C (DPLL), Address 0xB5[2:0] Selects the frequency of MCLK out as multiple of 128 fs. Function MCLK_FS_N[2:0] 000 001 (default) 010 011 100 101 110 111 Description 128 fs 256 fs 384 fs 512 fs 640 fs 768 fs Not valid Not valid AUDIO CHANNEL MODE AUDIO_CH_MD_RAW indicates if 2-channel audio data or multichannel audio data is received. AUDIO_CH_MD_RAW, IO, Address 0x65[4] (Read Only) Raw status signal indicating the layout value of the audio packets that were last received. Function AUDIO_CH_MD_RAW 0 1 Description The last audio packets received have a layout value of 1. (For example, Layout-1 corresponds to 2-channel audio when audio sample packets are received). The last audio packets received have a layout value of 0. (For example, Layout-0 corresponds to 8-channel audio when audio sample packets are received.) Note that the audio CH_MD_RAW flag is valid for audio sample packets and DSD packets. AUDIO_CHANNEL_MODE, Addr 68 (HDMI), Address 0x07[6] (Read Only) Flags stereo or multichannel audio packets. Note stereo packets may carry compressed multichannel audio. Function AUDIO_CHANNEL_MODE 0 1 Description Stereo audio (may be compressed multichannel) Multichannel uncompressed audio detected (Channel 3 to Channel 8). Rev. 0 | Page 57 of 184 UG-438 Hardware User Guide AUDIO MUTING The ADV7610 integrates an advanced audio mute function that is designed to remove all extraneous noise and pops from a 2-channel L-PCM audio stream at sample frequencies up to 48 kHz. The hardware for audio mute function is composed of the following three blocks: • • • Audio delay line that delays Channel 1 and Channel 2 by 512 stereo samples. Audio mute controller takes in event detection signals that can be used to determine when an audio mute is needed. The controller generates a mute signal to the ramped audio block and a coast signal to the digital PLL generating the audio clock. Ramped audio mute block that can mute the audio over the course of 512 stereo samples. Note that the ADV7610 mutes only the noncompressed data from the audio sample packets output through the I2S and the SPDIF interface. Delay Line Control The audio delay line should be enabled when the ADV7610 is configured for automatic mute. The audio delay line is controlled by the MAN_AUDIO_DL_BYPASS and AUDIO_DELAY_LINE_BYPASS bits. MAN_AUDIO_DL_BYPASS, Addr 68 (HDMI), Address 0x0F[7] Audio delay bypass manual enable. The audio delay line is automatically active for stereo samples and bypassed for multichannel samples. By setting MAN_AUDIO_DL_BYPASS to 1, the audio delay bypass configuration can be set by the user with the AUDIO_DELAY_ LINE_BYPASS control. Function MAN_AUDIO_DL_BYPASS 0 (default) 1 Description Audio delay line is automatically bypassed if multichannel audio is received. The audio delay line is automatically enabled if stereo audio is received. Overrides automatic bypass of audio delay line. Audio delay line is applied depending on the AUDIO_DELAY_LINE_BYPASS control. AUDIO_DELAY_LINE_BYPASS, Addr 68 (HDMI), Address 0x0F[6] Manual bypass control for the audio delay line. Only valid if MAN_AUDIO_DL_BYPASS is set to 1. Function AUDIO_DELAY_LINE_BYPASS 0 (default) 1 Description Enables the audio delay line Bypasses the audio delay line Audio Mute Configuration The ADV7610 can be configured to automatically mute an L-PCM audio stream when selectable mute conditions occur. The audio muting is configured as follows: • • • • Set the audio muting speed via AUDIO_MUTE_SPEED[4:0]. Set NOT_AUTO_UNMUTE, as follows: • Set AUDIO_UNMUTE[2:0] to 0 if the audio must be unmuted automatically after a delay set in WAIT_UNMUTE[2:0] after all selected mute conditions have become inactive. • Set NOT_AUTO_UNMUTE to 1 if the audio must be unmuted manually (for example, by an external controller) when all selected mute conditions have become inactive. • Select the mute conditions that trigger an audio mute (refer to Table 14). Select the Audio PLL coast conditions (refer to the Audio DPLL Coast Feature section). Set WAIT_UNMUTE[2:0] to configure the audio counter that triggers the audio unmute when it has timed out after all selected mute conditions have become inactive. The ADV7610 internally unmutes the audio if the following three conditions (listed in order of priority) are met: • • • Mute conditions are inactive. NOT_AUTO_UNMUTE is set to 0. Audio unmute counter has finished counting down or is disabled. Rev. 0 | Page 58 of 184 Hardware User Guide UG-438 Notes • • • • • Both Table 8 and Table 14 provide a column with the heading ‘Corresponding Status Register(s)’. This column lists the status registers that convey information related to their corresponding audio mute masks or coast masks. The ADV7610 mute works differently for compressed audio data. In the case of compressed audio, mute outputs a constant stream of 0. For the best audio muting performance, the following setting is recommended when the ADV7610 receives multichannel sample packets: • Set AUDIO_MUTE_SPEED to 1 For best audio muting performance, the following settings are recommended when the audio sampling frequency of the audio stream is greater than 48 kHz: • Set AUDIO_MUTE_SPEED to 1 • Set MAN_AUDIO_DL_BYPASS to 1 • Set AUDIO_DELAY_LINE_BYPASS to 1 For best audio muting performance, the following settings are recommended when the audio sampling frequency of the audio stream is equal to or lower than 48 kHz: • Set AUDIO_MUTE_SPEED to 0x1F • Set MAN_AUDIO_DL_BYPASS to 0 MUTE_AUDIO, Addr 68 (HDMI), Address 0x1A[4] A control to force an internal mute independently of the mute mask conditions. Function MUTE_AUDIO 0 (default) 1 Description Audio in normal operation Force audio mute AUDIO_MUTE_SPEED[4:0], Addr 68 (HDMI), Address 0x0F[4:0] Number of samples between each volume change of 1.5 dB when muting and unmuting. Function AUDIO_MUTE_SPEED[4:0] 0x1F (default) Description Default value NOT_AUTO_UNMUTE, Addr 68 (HDMI), Address 0x1A[0] A control to disable the auto unmute feature. When set to 1, audio can be unmuted manually if all mute conditions are inactive by setting NOT_AUTO_UNMUTE to 0 and then back to 1. Function NOT_AUTO_UNMUTE 0 (default) 1 Description Audio unmutes following a delay set by WAIT_UNMUTE after all mute conditions have become inactive Prevents audio from unmuting automatically WAIT_UNMUTE[2:0], Addr 68 (HDMI), Address 0x1A[3:1] A control to delay audio unmute. Once all mute conditions are inactive WAIT_UNMUTE[2:0] can specify a further delay time before unmuting. NOT_AUTO_UNMUTE must be set to 0 for this control to be effective. Function WAIT_UNMUTE[2:0] 000 (default) 001 010 011 100 Description Disables/cancels delayed unmute. Audio unmutes directly after all mute conditions become inactive. Unmutes 250 ms after all mute conditions become inactive. Unmutes 500 ms after all mute conditions become inactive. Unmutes 750 ms after all mute conditions become inactive. Unmutes 1 sec after all mute conditions become inactive. Rev. 0 | Page 59 of 184 UG-438 Hardware User Guide Table 14. Selectable Mute Conditions Bit Name MT_MSK_COMPRS_AUD MT_MSK_AUD_MODE_CHNG HDMI Map Address 0x14[5] 0x14[4] MT_MSK_PARITY_ERR 0x14[1] MT_MSK_VCLK_CHNG 0x14[0] MT_MSK_APLL_UNLOCK MT_MSK_VPLL_UNLOCK MT_MSK_ACR_NOT_DET 0x15[7] 0x15[6] 0x15[5] MT_MSK_FLATLINE_DET MT_MSK_FIFO_UNDERFLOW MT_MSK_FIFO_OVERFLOW MT_MSK_AVMUTE 0x15[3] 0x15[1] 0x15[0] 0x16[7] MT_MSK_NOT_HDMIMODE MT_MSK_NEW_CTS 0x16[6] 0x16[5] MT_MSK_NEW_N MT_MSK_CHMODE_CHNG 0x16[4] 0x16[3] MT_MSK_APCKT_ECC_ERR 0x16[2] MT_MSK_CHNG_PORT MT_MSK_VCLK_DET 0x16[1] 0x16[0] Description Causes audio mute if audio is compressed Causes audio mute if audio mode changes between PCM, DSD, DST, or HBR formats Causes audio mute if parity bits in audio samples are not correct Causes audio mute if TMDS clock has irregular/missing pulses Causes audio mute if audio PLL unlocks Causes audio mute if TMDS PLL unlocks Causes audio mute if ACR packets are not received within one VSync Causes audio mute if flatline bit in audio packets is set Causes audio mute if audio FIFO underflows Causes audio mute if audio FIFO overflows Causes audio mute if AVMute is set in the general control packet Causes audio mute if HDMI_MODE bit goes low Causes audio mute if CTS changes by more than the threshold set in CTS_CHANGE_THRESHOLD[5:0] Causes audio mute if N changes Causes audio mute if the channel mode changes from stereo to multichannel, or vice versa Causes audio mute if uncorrectable error is detected in the audio packets by the ECC block Causes audio mute if HDMI port is changed Causes audio mute if TMDS clock is not detected Rev. 0 | Page 60 of 184 Corresponding Status Register(s) CS_DATA[1] AUDIO_SAMPLE_PCKT_DET PARITY_ERROR_RAW VCLK_CHNG_RAW AUDIO_PLL_LOCKED TMDS_PLL_LOCKED AUDIO_C_PCKT_RAW AUDIO_FLT_LINE_RAW FIFO_UNDERFLO_RAW FIFO_OVERFLO_RAW AV_MUTE_RAW HDMI_MODE CTS_PASS_THRSH_RAW CHANGE_N_RAW AUDIO_MODE_CHNG_RAW AUDIO_PCKT_ERR_RAW HDMI_PORT_SELECT[2:0] TMDS_CLK_A_RAW Hardware User Guide UG-438 Internal Mute Status The internal mute status is provided through the INTERNAL_MUTE_RAW bit. INTERNAL_MUTE_RAW, IO, Address 0x65[6] (Read Only) Raw status signal of internal mute signal. Function INTERNAL_MUTE_RAW 0 (default) 1 Description Audio is not muted Audio is muted AV Mute Status AV_MUTE, Addr 68 (HDMI), Address 0x04[6] (Read Only) Readback of AVMUTE status received in the last general control packet received. Function AV_MUTE 0 (default) 1 Description AVMUTE not set AVMUTE set Audio Mute Signal The ADV7610 can output an audio mute signal that can be used to control the muting in a back end audio device processing the audio data output by the ADV7610 (for example, DSP). The audio mute signal is output on the INT1 pin by setting EN_MUTE_RAW_INTRQ to 1. The active level of the mute signal on INT1 and INT2 is set via the INTRQ_OP_SEL[1:0] and INT2_POL controls, respectively. The audio mute signal can also be output on the INT2 signal (via one of the following pins: SCLK/INT2, HPA_A/INT2 or MCLK/INT2) by setting INTRQ2_MUX_SEL[1:0] to 1 and EN_MUTE_OUT_INTRQ2 to 1. The active level of the mute signal output on the INT2 pin is set via INT2_POL. Important The ADV7610 may interface with an audio processor (for example, DSP) in which the muting of the audio is implemented. In this case, the audio processor typically features a delay line followed by a mute block for audio mute and unmuting purposes. The following hardware and software configuration is recommended for optimum muting performance of the ADV7610 and audio processor system: • • Connect the mute signal of the ADV7610 to the audio processor mute input. The ADV7610 mute signal can now drive the muting/unmuting of the audio data inside the audio processor. Bypass the audio delay line of the ADV7610 with the following settings: • Set MAN_AUDIO_DL_BYPASS to 1. • Set AUDIO_DELAY_LINE_BYPASS to 1. • Configure the ADV7610 to mute the audio over one audio sample clock as follows: • Set AUDIO_MUTE_SPEED[4:0] to 1. This ensures that the ADV7610 never outputs invalid audio data out to the audio processor. EN_MUTE_RAW_INTRQ, IO Map, Address 0x40[3] A control to apply the internal audio mute signal on INT1 interrupt pin. Function EN_MUTE_RAW_INTRQ 0 (default) 1 Description Does not output audio mute signal on INT1 Outputs audio mute signal on INT1 EN_MUTE_RAW_INTRQ2, IO Map, Address 0x41[3] A control to apply the internal audio mute signal on INT2 interrupt pin. Function EN_MUTE_RAW_INTRQ2 0 (default) 1 Description Does not output audio mute signal on INT2 Outputs audio mute signal on INT2 Rev. 0 | Page 61 of 184 UG-438 Hardware User Guide Audio Stream with Incorrect Parity Error The ADV7610 discards audio sample packets that have an incorrect parity bit. When these samples are received, the ADV7610 repeats the previous audio sample with a valid parity bit. The audio stream out of the ADV7610 can be muted in this situation if the audio mute mask MT_MSK_PARITY_ERR is set. It is possible to configure the ADV7610 so that it processes audio sample packets that have an incorrect parity bit and corrects the parity bit. The ADV7610 can then output an audio stream even when the parity bits from the audio sample packet are invalid. This configuration is activated by setting MT_MSK_PARITY_ERR to 0 and IGNORE_PARITY_ERR to 1. IGNORE_PARITY_ERR, Addr 68 (HDMI), Address 0x1A[6] A control to select the processing of audio samples even when they have a parity error. Function IGNORE_PARITY_ERR 0 (default) 1 Description Discard audio sample packets that have an invalid parity bit Process audio sample packets that have an invalid parity bit MT_MSK_PARITY_ERR, Addr 68 (HDMI), Address 0x14[1] Audio mute mask for a parity error. It sets the audio mutes if an audio sample packet is received with an incorrect parity bit. Function MT_MSK_PARITY_ERR 1 (default) Description Audio mute occurs if an audio sample packet is received with an incorrect parity bit AUDIO CLOCK REGENERATION PARAMETERS The ADV7610 recreates an internal audio master clock using audio clock regeneration (ACR) values transmitted by the HDMI source. ACR Parameters Readbacks The registers N and CTS can be read back from the HDMI map. CTS[19:0], Addr 68 (HDMI), Address 0x5B[7:0]; Address 0x5C[7:0]; Address 0x5D[7:4] (Read Only) A readback for the CTS value received in the HDMI data stream. Function CTS[19:0] 00000000000000000000 (default) xxxxxxxxxxxxxxxxxxxx Description Default CTS value readback from HDMI stream CTS value readback from HDMI stream N[19:0], Addr 68 (HDMI), Address 0x5D[3:0]; Address 0x5E[7:0]; Address 0x5F[7:0] (Read Only) A readback for the N value received in the HDMI data stream. Function N[19:0] 00000000000000000000 (default) xxxxxxxxxxxxxxxxxxxx Description Default N value readback from HDMI stream N value readback from HDMI stream Note: A buffer has been implemented for the N and CTS readback registers. A read of the HDMI map, Address 0x5B register updates the buffer that stores the N and CTS readback registers. The buffer implemented for N and CTS readback allows the reading of both N and CTS registers within an I2C block read. Monitoring ACR Parameters The reception of ACR packets can be notified via the AUDIO_C_PCKT_RAW flag. Changes in N and CTS can be monitored via the CHANGE_N_RAW and CTS_PASS_THRSH_RAW flags, as described in this section. AUDIO_C_PCKT_RAW, IO, Address 0x65[1] (Read Only) Raw status signal of audio clock regeneration packet detection signal. Function AUDIO_C_PCKT_RAW 0 (default) 1 Description No audio clock regeneration packets received since the last HDMI reset condition Audio clock regeneration packets received Rev. 0 | Page 62 of 184 Hardware User Guide UG-438 CHANGE_N_RAW, IO, Address 0x7E[3] (Read Only) Status of the ACR N Value changed interrupt signal. When set to 1 it indicates the N Value of the ACR packets has changed. Once set, this bit will remain high until it is cleared via CHANGE_N_CLR. Function CHANGE_N_RAW 0 (default) 1 Description Audio clock regeneration N value has not changed. Audio clock regeneration N value has changed. CTS_PASS_THRSH_RAW, IO, Address 0x7E[4] (Read Only) Status of the ACR CTS value exceed threshold interrupt signal. When set to 1, it indicates the CTS Value of the ACR packets has exceeded the threshold set by CTS_CHANGE_THRESHOLD. Once set, this bit will remain high until it is cleared via CTS_PASS_THRSH_CLR. Function CTS_PASS_THRSH_RAW 0 (default) 1 Description Audio clock regeneration CTS value has not passed the threshold. Audio clock regeneration CTS value has changed more than threshold. CTS_CHANGE_THRESHOLD[5:0], Addr 68 (HDMI), Address 0x10[5:0] Sets the tolerance for change in the CTS value. This tolerance is used for the audio mute mask MT_MSK_NEW_CTS and the HDMI status bit CTS_PASS_THRSH_RAW and the HDMI interrupt status bit CTS_PASS_THRSH_ST. This register controls the amounts of LSBs that the CTS can change before an audio mute, status change or interrupt is triggered. Function CTS_CHANGE_THRESHOLD[5:0] 100101 (default) xxxxxx Description Tolerance of CTS value for CTS_PASS_THRSH_RAW and MT_MSK_NEW_CTS Tolerance of CTS value for CTS_PASS_THRSH_RAW and MT_MSK_NEW_CTS CHANNEL STATUS Channel status bits are extracted from the HDMI audio packets of the first audio channel (that is, Channel 0) and stored in registers CHANNEL_STATUS_DATA_X of the HDMI Map (where X = 1, 2, 3, 4, and 5). Validity Status Flag The channel status readback described in the Channel Status section should be considered valid if CS_DATA_VALID_RAW is set to 1. Figure 21 shows the algorithm that can be implemented to monitor the read valid channel status bit using the CS_DATA_VALID_RAW flag. CS_DATA_VALID_RAW, IO, Address 0x65[7] (Read Only) Raw status signal of channel status data valid signal. Function CS_DATA_VALID_RAW 0 (default) 1 Description Channel status data is not valid. Channel status data is valid. Rev. 0 | Page 63 of 184 UG-438 Hardware User Guide START ENABLE THE CS_DATA_VALID_ST INTERRUPT INITIALIZATION NO CHECK IF THE CS_DATA_VALID INTERRUPT HAS TRIGGERED IS CS_DATA_VALID_S T SET TO 1? NO SET CS_DATA_VALID_CLR TO 1 IS CS_DATA_VALID_R AW SET TO 1? YES READ THE CHANNEL STATUS BITS IN HDMI MAP 0x36 TO 0x3A THE CHANNEL STATUS BITS PREVIOUSLY READ ARE NOT VALID IS CS_DATA_VALID_S T SET TO 1? YES READ THE CHANNEL STATUS BITS AND DECIDE IF THEY ARE VALID THE CHANNEL STATUS BITS PREVIOUSLY READ ARE VALID 10884-027 NO Figure 21. Reading Valid Channel Status Flags Notes • • CS_DATA_VALID_RAW indicates that the first 40 of the channel status bits sent by the upstream transmitter have been correctly collected. This bit does not indicate if the content of the channel status bit is corrupted because this is indeterminable. A corresponding interrupt can be enabled for CS_DATA_VALID_RAW by setting the mask CS_DATA_VALID_MB1 or CS_DATA_VALID_MB2. Refer to the Interrupts section for additional information on the interrupt feature. General Control and Mode Information The general control and mode information are specified in Byte 0 of the channel status. For more information, refer to the IEC60958 standards. CS_DATA[0], Consumer/Professional Application, HDMI Map, Address 0x36[0] Function CS_DATA[0] 0 (default) 1 Description Consumer application Professional application Rev. 0 | Page 64 of 184 Hardware User Guide UG-438 CS_DATA[1], PCM/non-PCM Audio Sample, HDMI Map, Address 0x36[1] Function CS_DATA[1] 0 (default) 1 Description Audio sample word represents linear PCM samples Audio sample word used for other purposes CS_DATA[2], Copyright, HDMI Map, Address 0x36[2] Function CS_DATA[2] 0 (default) 1 Description Software for which copyright is asserted Software for which no copyright is asserted CS_DATA[5:3], Emphasis, HDMI Map, Address 0x36[5:3] Function CS_DATA[5:3]1 000 (default) 001 1 Description Two audio channels without pre-emphasis Two audio channels with 50/15 pre-emphasis Unspecified values are reserved. CS_DATA[7:6], Channel Status Mode, HDMI Map, Address 0x36[7:6] Function CS_DATA[7:6]1 00 (default) 1 Description Mode 0 Unspecified values are reserved. Category Code The category code is specified in Byte 1 of the channel status. The category code indicates the type of equipment that generates the digital audio interface signal. For more information, refer to the IEC60958 standards. CS_DATA[15:8], Category Code, HDMI Map, Address 0x37[7:0] Function CS_DATA[15:8] xxxx xxxx 0000 0000 (default) 1 Description Category code1 Reset value Refer to IEC60958-3 standards. Source Number and Channel Number CS_DATA[19:16], Source Number, HDMI Map, Address 0x38[3:0] Function CS_DATA[19:16] xxxx 0000 (default) 1 Description Source number1 Reset value Refer to IEC60958-3 standards. CS_DATA[23:20], Channel Number, HDMI Map, Address 0x38[7:4] Function CS_DATA[23:20] xxxxx 00000 (default) 1 Description Channel number1 Reset value Refer to IEC60958-3 standards. Rev. 0 | Page 65 of 184 UG-438 Hardware User Guide Sampling and Frequency Accuracy The sampling frequency and clock accuracy are specified by Byte 3 of the channel status. For additional information, refer to the IEC60958 standards. CS_DATA[27:24], Sampling Frequency, HDMI Map, Address 0x39[3:0] Function CS_DATA[27:24]1 0000 (default) 0010 0011 1000 1001 1010 1100 1110 1 Description 44.1 kHz 48 kHz 32 kHz 88.2 kHz 768 kHz 96 kHz 176 kHz 192 kHz Unspecified values are reserved. CS_DATA[29:28], Clock Accuracy, HDMI Map, Address 0x39[5:4] Function CS_DATA[29:28] 00 (default) 01 10 11 Description Level II, ±1000 ppm Level I, ±50 ppm Level III, variable pitch shifted Reserved CS_DATA[31:30], Reserved Register, HDMI Map, Address 0x39[7:6] Function CS_DATA[31:30] XX 00 (default) Description Reserved Reset value Word Length Word length information is specified in Byte 4 of the channel status bit. For more information, refer to the IEC60958 standards. CS_DATA[32], Maximum Word Length Size, HDMI Map, Address 0x3A, [0] Function CS_DATA[32] 0 (default) 1 Description Maximum audio sample word length is 20 bits. Maximum audio sample word length is 24 bits. CS_DATA[35:33], Word Length, HDMI Map, Address 0x3A, [3:1] Function CS_DATA[35:33]1 000 (default) 001 010 100 101 110 1 Description Audio sample word length if maximum length is 24 as indicated by CS_DATA_[32] Word length not indicated 20 bits 22 bits 23 bits 24 bits 21 bits Unspecified values are reserved. Rev. 0 | Page 66 of 184 Audio sample word length if maximum length is 20 as indicated by CS_DATA_[32] Word length not indicated 16 bits 18 bits 19 bits 20 bits 21 bits Hardware User Guide UG-438 Channel Status Copyright Value Assertion It is possible to overwrite the copyright value of the channel status bit that is passed to the SPDIF output. This is done via the CS_COPYRIGHT_MANUAL and CS_COPYRIGHT_VALUE controls. CS_COPYRIGHT_MANUAL, Addr 68 (HDMI), Address 0x50[1] A control to select automatic or manual setting of the copyright value of the channel status bit that is passed to the SPDIF output. Manual control is set with the CS_COPYRIGHT_VALUE bit. Function CS_COPYRIGHT_MANUAL 0 (default) 1 Description Automatic CS copyright control. Manual CS copyright control. Manual value is set by CS_COPYRIGHT_VALUE. CS_COPYRIGHT_VALUE, Addr 68 (HDMI), Address 0x50[0] A control to set the CS copyright value when in manual configuration of the CS copyright bit that is passed to the SPDIF output. Function CS_COPYRIGHT_VALUE 0 (default) 1 Description Copyright value of channel status bit is 0. Valid only if CS_COPYRIGHT_MANUAL is set to 1. Copyright value of channel status bit is 1. Valid only if CS_COPYRIGHT_MANUAL is set to 1. Monitoring Change of Audio Sampling Frequency The ADV7610 features the NEW_SAMP_RT_RAW flag to monitor changes in the audio sampling frequency field of the channel status bits. NEW_SAMP_RT_RAW, IO, Address 0x83[3] (Read Only) Status of new sampling rate interrupt signal. When set to 1, it indicates that audio sampling frequency field in channel status data has changed. Once set, this bit will remain high until it is cleared via NEW_SAMP_RT _CLR. Function NEW_SAMP_RT_RAW 0 (default) 1 Description Sampling rate bits of the channel status data on audio Channel 0 have not changed. Sampling rate bits of the channel status data on audio Channel 0 have changed. Important The NEW_SAMP_RT_RAW flag does not trigger if CS_DATA_VALID_RAW is set to 0. This prevents the notification of a change from a valid to an invalid audio sampling frequency readback in the channel status bits, and vice versa. PACKETS AND INFOFRAMES REGISTERS In HDMI, auxiliary data is carried across the digital link using a series of packets. The ADV7610 automatically detects and stores the following HDMI packets: • • • • InfoFrames Audio content protection (ACP) International standard recording code (ISRC) Gamut metadata When the ADV7610 receives one of these packets, it computes the packet checksum and compares it with the checksum available in the packet. If these checksums are the same, the packets are stored in the corresponding registers. If the checksums are not the same, the packets are discarded. Refer to the EIA/CEA-861D specifications for more information on the packets fields. InfoFrames Registers The ADV7610 can store the following InfoFrames: • • • • Auxiliary video information (AVI) InfoFrame Source production descriptor (SPD) InfoFrame Audio InfoFrame Moving picture expert group (MPEG) source InfoFrame Rev. 0 | Page 67 of 184 UG-438 Hardware User Guide InfoFrame Collection Mode The ADV7610 has two modes for storing the InfoFrame packet sent from the source into the internal memory. By default, the ADV7610 only stores the InfoFrame packets received if the checksum is correct for each InfoFrame. The ADV7610 also provides a mode to store every InfoFrame sent from the source, regardless of a InfoFrame packet checksum error. ALWAYS_STORE_INF, Addr 68 (HDMI), Address 0x47[0] A control to force InfoFrames with checksum errors to be stored. Function ALWAYS_STORE_INF 0 (default) 1 Description Stores data from received InfoFrames only if their checksum is correct Always store the data from received InfoFrame regardless of their checksum InfoFrame Checksum Error Flags The following checksum error status registers flag when the last InfoFrame received has a checksum error. Once set, these bits remain high until the interrupt is cleared via their corresponding clear bits. AVI_INF_CKS_ERR_RAW, IO, Address 0x88[4] (Read Only) Status of AVI InfoFrame checksum error interrupt signal. When set to 1, it indicates that a checksum error has been detected for an AVI InfoFrame. Once set, this bit remains high until it is cleared via AVI_INF_CKS_ERR_CLR. Function AVI_INF_CKS_ERR_RAW 0 (default) 1 Description No AVI InfoFrame checksum error has occurred. An AVI InfoFrame checksum error has occurred. AUD_INF_CKS_ERR_RAW, IO, Address 0x88[5] (Read Only) Status of audio InfoFrame checksum error interrupt signal. When set to 1, it indicates that a checksum error has been detected for an audio InfoFrame. Once set, this bit remains high until it is cleared via AUDIO_INF_CKS_ERR_CLR. Function AUD_INF_CKS_ERR_RAW 0 (default) 1 Description No audio InfoFrame checksum error has occurred. An audio InfoFrame checksum error has occurred. SPD_INF_CKS_ERR_RAW, IO, Address 0x88[6] (Read Only) Status of SPD InfoFrame checksum error interrupt signal. When set to 1, it indicates that a checksum error has been detected for an SPD InfoFrame. Once set, this bit remains high until it is cleared via ASPD_INF_CKS_ERR_CLR. Function SPD_INF_CKS_ERR_RAW 0 (default) 1 Description No SPD InfoFrame checksum error has occurred. An SPD InfoFrame checksum error has occurred. MS_INF_CKS_ERR_RAW, IO, Address 0x88[7] (Read Only) Status of MPEG source InfoFrame checksum error interrupt signal. When set to 1. it indicates that a checksum error has been detected for an MPEG source InfoFrame. Once set, this bit remains high until it is cleared via MS_INF_CKS_ERR_CLR. Function MS_INF_CKS_ERR_RAW 0 (default) 1 Description No MPEG source InfoFrame checksum error has occurred. An MPEG source InfoFrame checksum error has occurred. Rev. 0 | Page 68 of 184 Hardware User Guide UG-438 VS_INF_CKS_ERR_RAW, IO, Address 0x8D[0] (Read Only) Status of vendor specific InfoFrame checksum error interrupt signal. When set to 1, it indicates that a checksum error has been detected for an Vendor Specific InfoFrame. Once set, this bit will remain high until it is cleared via VS_INF_CKS_ERR_CLR. Function VS_INF_CKS_ERR_RAW 0 (default) 1 Description No VS InfoFrame checksum error has occurred A VS InfoFrame checksum error has occurred AVI InfoFrame Registers Table 15 provides a list of readback registers for the AVI InfoFrame data. Refer to the EIA/CEA-861D specifications for a detailed explanation of the AVI InfoFrame fields. Table 15. AVI InfoFrame Registers InfoFrame Map Address 0xE0 0xE1 0xE2 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 1 Access Type R/W R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R Register Name AVI_PACKET_ID[7:0] AVI_INF_VER AVI_INF_LEN AVI_INF_PB_0_1 AVI_INF_PB_0_2 AVI_INF_PB_0_3 AVI_INF_PB_0_4 AVI_INF_PB_0_5 AVI_INF_PB_0_6 AVI_INF_PB_0_7 AVI_INF_PB_0_8 AVI_INF_PB_0_9 AVI_INF_PB_0_10 AVI_INF_PB_0_11 AVI_INF_PB_0_12 AVI_INF_PB_0_13 AVI_INF_PB_0_14 AVI_INF_PB_0_15 AVI_INF_PB_0_16 AVI_INF_PB_0_17 AVI_INF_PB_0_18 AVI_INF_PB_0_19 AVI_INF_PB_0_20 AVI_INF_PB_0_21 AVI_INF_PB_0_22 AVI_INF_PB_0_23 AVI_INF_PB_0_24 AVI_INF_PB_0_25 AVI_INF_PB_0_26 AVI_INF_PB_0_27 AVI_INF_PB_0_28 Byte Name1 Packet type value InfoFrame version number InfoFrame length Checksum Data Byte 1 Data Byte 2 Data Byte 3 Data Byte 4 Data Byte 5 Data Byte 6 Data Byte 7 Data Byte 8 Data Byte 9 Data Byte 10 Data Byte 11 Data Byte 12 Data Byte 13 Data Byte 14 Data Byte 15 Data Byte 16 Data Byte 17 Data Byte 18 Data Byte 19 Data Byte 20 Data Byte 21 Data Byte 22 Data Byte 23 Data Byte 24 Data Byte 25 Data Byte 26 Data Byte 27 As defined by the EIA/CEA-861D specifications. The AVI InfoFrame registers are considered valid if the following two conditions are met: • • AVI_INFO_RAW is 1. AVI_INF_CKS_ERR_RAW is 0. This condition applies only if ALWAYS_STORE_INF is set to 1. AVI_INFO_RAW is described in the Interrupt Architecture Overview section. Rev. 0 | Page 69 of 184 UG-438 Hardware User Guide Audio InfoFrame Registers Table 16 provides the list of readback registers available for the Audio InfoFrame. Refer to the EIA/CEA-861D specifications for a detailed explanation of the audio InfoFrame fields. Table 16. Audio InfoFrame Registers InfoFrame Map Address 0xE3 0xE4 0xE5 0x1C 0x1D 0x1E 0x1F 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 1 Access Type R/W R R R R R R R R R R R R R R R R Register Name AUD_PACKET_ID[7:0] AUD_INF_VERS AUD_INF_LEN AUD_INF_PB_0_1 AUD_INF_PB_0_2 AUD_INF_PB_0_3 AUD_INF_PB_0_4 AUD_INF_PB_0_5 AUD_INF_PB_0_6 AUD_INF_PB_0_7 AUD_INF_PB_0_8 AUD_INF_PB_0_9 AUD_INF_PB_0_10 AUD_INF_PB_0_11 AUD_INF_PB_0_12 AUD_INF_PB_0_13 AUD_INF_PB_0_14 Byte Name1 Packet type value InfoFrame version number InfoFrame length Checksum Data Byte 1 Data Byte 2 Data Byte 3 Data Byte 4 Data Byte 5 Data Byte 6 Data Byte 7 Data Byte 8 Data Byte 9 Data Byte 10 Data Byte 11 Data Byte 12 Data Byte 13 As defined by the EIA/CEA-861D specifications. The audio InfoFrame registers are considered valid if the following two conditions are met: • • AUDIO_INFO_RAW is 1. AUD_INF_CKS_ERR_RAW is 0. This condition applies only if ALWAYS_STORE_INF is set to 1. AUDIO_INFO_RAW, IO, Address 0x60[1] (Read Only) Raw status of audio InfoFrame detected signal. Function AUDIO_INFO_RAW 0 (default) 1 Description No AVI InfoFrame has been received within the last three VSyncs or since the last HDMI packet detection reset. An Audio InfoFrame has been received within the last three VSyncs. This bit will reset to zero on the fourth VSync leading edge following an Audio InfoFrame, after an HDMI packet detection reset or upon writing to AUD_PACKET_ID. Rev. 0 | Page 70 of 184 Hardware User Guide UG-438 SPD InfoFrame Registers Table 17 provides a list of readback registers available for the SPD InfoFrame. Refer to the EIA/CEA-861D specifications for a detailed explanation of the SPD InfoFrame fields. Table 17. SPD InfoFrame Registers InfoFrame Map Address 0xE6 0xE7 0xE8 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F 0x40 0x41 0x42 0x43 0x44 0x45 1 Access Type R/W R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R Register Name SPD_PACKET_ID[7:0] SPD_INF_VER SPD_INF_LEN SPD_INF_PB_0_1 SPD_INF_PB_0_2 SPD_INF_PB_0_3 SPD_INF_PB_0_4 SPD_INF_PB_0_5 SPD_INF_PB_0_6 SPD_INF_PB_0_7 SPD_INF_PB_0_8 SPD_INF_PB_0_9 SPD_INF_PB_0_10 SPD_INF_PB_0_11 SPD_INF_PB_0_12 SPD_INF_PB_0_13 SPD_INF_PB_0_14 SPD_INF_PB_0_15 SPD_INF_PB_0_16 SPD_INF_PB_0_17 SPD_INF_PB_0_18 SPD_INF_PB_0_19 SPD_INF_PB_0_20 SPD_INF_PB_0_21 SPD_INF_PB_0_22 SPD_INF_PB_0_23 SPD_INF_PB_0_24 SPD_INF_PB_0_25 SPD_INF_PB_0_26 SPD_INF_PB_0_27 SPD_INF_PB_0_28 Byte Name1 Packet type value InfoFrame version number InfoFrame length Checksum Data Byte 1 Data Byte 2 Data Byte 3 Data Byte 4 Data Byte 5 Data Byte 6 Data Byte 7 Data Byte 8 Data Byte 9 Data Byte 10 Data Byte 11 Data Byte 12 Data Byte 13 Data Byte 14 Data Byte 15 Data Byte 16 Data Byte 17 Data Byte 18 Data Byte 19 Data Byte 20 Data Byte 21 Data Byte 22 Data Byte 23 Data Byte 24 Data Byte 25 Data Byte 26 Data Byte 27 As defined by the EIA/CEA-861D specifications. The Source Product Descriptor InfoFrame registers are considered valid if the following two conditions are met: • • SPD_INFO_RAW is 1. SPD_INF_CKS_ERR_RAW is 0. This condition only applies if ALWAYS_STORE_INF is set to 1. SPD_INFO_RAW, IO, Address 0x60[2] (Read Only) Raw status of SPD InfoFrame detected signal. Function SPD_INFO_RAW 0 (default) 1 Description No source product description InfoFrame received since the last HDMI packet detection reset. Source product description InfoFrame received. This bit resets to zero after an HDMI packet detection reset or upon writing to SPD_PACKET_ID. Rev. 0 | Page 71 of 184 UG-438 Hardware User Guide MPEG Source InfoFrame Registers Table 18 provides a list of readback registers available for the MPEG InfoFrame. Refer to the EIA/CEA-861D specifications for a detailed explanation of the MPEG InfoFrame fields. Table 18. MPEG InfoFrame Registers InfoFrame Map Address 0xE9 0xEA 0xEB 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F 0x50 0x51 0x52 0x53 1 Access Type R/W R R R R R R R R R R R R R R R R Register Name MS_PACKET_ID[7:0] MS_INF_VERS MS_INF_LEN MS_INF_PB_0_1 MS_INF_PB_0_2 MS_INF_PB_0_3 MS_INF_PB_0_4 MS_INF_PB_0_5 MS_INF_PB_0_6 MS_INF_PB_0_7 MS_INF_PB_0_8 MS_INF_PB_0_9 MS_INF_PB_0_10 MS_INF_PB_0_11 MS_INF_PB_0_12 MS_INF_PB_0_13 MS_INF_PB_0_14 Byte Name1 Packet type value InfoFrame version number InfoFrame length Checksum Data Byte 1 Data Byte 2 Data Byte 3 Data Byte 4 Data Byte 5 Data Byte 6 Data Byte 7 Data Byte 8 Data Byte 9 Data Byte 10 Data Byte 11 Data Byte 12 Data Byte 13 As defined by the EIA/CEA-861D specifications. The MPEG InfoFrame registers are considered valid if the following two conditions are met: • • MS_INFO_RAW is 1. MS_INF_CKS_ERR_RAW is 0. This condition applies only if ALWAYS_STORE_INF is set to 1. MS_INFO_RAW, IO, Address 0x60[3] (Read Only) Raw status signal of MPEG source InfoFrame detection signal. Function MS_INFO_RAW 0 (default) 1 Description No source product description InfoFrame received within the last three VSyncs or since the last HDMI packet detection reset. MPEG Source InfoFrame received. This bit resets to zero after an HDMI packet detection reset or upon writing to MS_PACKET_ID. Rev. 0 | Page 72 of 184 Hardware User Guide UG-438 Vendor Specific InfoFrame Registers Table 19 provides a list of readback registers available for the vendor specific InfoFrame. Table 19. VS InfoFrame Registers InfoFrame Map Address 0xEC 0xED 0xEE 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F R/W R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R Register Name VS_PACKET_ID[7:0] VS_INF_VERS VS_INF_LEN VS_INF_PB_0_1 VS_INF_PB_0_2 VS_INF_PB_0_3 VS_INF_PB_0_4 VS_INF_PB_0_5 VS_INF_PB_0_6 VS_INF_PB_0_7 VS_INF_PB_0_8 VS_INF_PB_0_9 VS_INF_PB_0_10 VS_INF_PB_0_11 VS_INF_PB_0_12 VS_INF_PB_0_13 VS_INF_PB_0_14 VS_INF_PB_0_15 VS_INF_PB_0_16 VS_INF_PB_0_17 VS_INF_PB_0_18 VS_INF_PB_0_19 VS_INF_PB_0_20 VS_INF_PB_0_21 VS_INF_PB_0_22 VS_INF_PB_0_23 VS_INF_PB_0_24 VS_INF_PB_0_25 VS_INF_PB_0_26 VS_INF_PB_0_27 VS_INF_PB_0_28 Byte Name Packet type value InfoFrame version number InfoFrame length Checksum Data Byte 1 Data Byte 2 Data Byte 3 Data Byte 4 Data Byte 5 Data Byte 6 Data Byte 7 Data Byte 8 Data Byte 9 Data Byte 10 Data Byte 11 Data Byte 12 Data Byte 13 Data Byte 14 Data Byte 15 Data Byte 16 Data Byte 17 Data Byte 18 Data Byte 19 Data Byte 20 Data Byte 21 Data Byte 22 Data Byte 23 Data Byte 24 Data Byte 25 Data Byte 26 Data Byte 27 The vendor specific InfoFrame registers are considered valid if the following two conditions are met: • • VS_INFO_RAW is 1. VS_INF_CKS_ERR_RAW is 0. This condition applies only if ALWAYS_STORE_INF is set to 1. VS_INFO_RAW, IO, Address 0x60[4] (Read Only) Raw status signal of vendor specific InfoFrame detection signal. Function VS_INFO_RAW 0 (default) 1 Description No new VS InfoFrame has been received since the last HDMI packet detection reset. A new VS InfoFrame has been received. This bit resets to zero after an HDMI packet detection reset or upon writing to VS_PACKET_ID. Rev. 0 | Page 73 of 184 UG-438 Hardware User Guide PACKET REGISTERS ACP Packet Registers Table 20 provides the list of readback registers available for the ACP packets. Refer to the HDMI specifications for a detailed explanation of the ACP packet fields. Table 20. ACP Packet Registers InfoFrame Map Address 0xEF 0xF0 0xF1 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F 0x80 0x81 0x82 0x83 0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B 1 R/W R/W R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R Register Name ACP_PACKET_ID[7:0] ACP_TYPE ACP_HEADER2 ACP_PB_0_1 ACP_PB_0_2 ACP_PB_0_3 ACP_PB_0_4 ACP_PB_0_5 ACP_PB_0_6 ACP_PB_0_7 ACP_PB_0_8 ACP_PB_0_9 ACP_PB_0_10 ACP_PB_0_11 ACP_PB_0_12 ACP_PB_0_13 ACP_PB_0_14 ACP_PB_0_15 ACP_PB_0_16 ACP_PB_0_17 ACP_PB_0_18 ACP_PB_0_19 ACP_PB_0_20 ACP_PB_0_21 ACP_PB_0_22 ACP_PB_0_23 ACP_PB_0_24 ACP_PB_0_25 ACP_PB_0_26 ACP_PB_0_27 ACP_PB_0_28 Packet Byte No.1 Packet type value HB1 HB2 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PB8 PB9 PB10 PB11 PB12 PB13 PB14 PB15 PB16 PB17 PB18 PB19 PB20 PB21 PB22 PB23 PB24 PB25 PB26 PB27 As defined by the HDMI specifications. The ACP InfoFrame registers are considered valid if ACP_PCKT_RAW is set to 1. ACP_PCKT_RAW, IO, Address 0x60[5] (Read Only) Raw status signal of audio content protection packet detection signal. Function ACP_PCKT_RAW 0 (default) 1 Description No ACP packet received within the last 600 ms or since the last HDMI packet detection reset. ACP packets have been received within the last 600 ms. This bit resets to zero after an HDMI packet detection reset or upon writing to ACP_PACKET_ID. Rev. 0 | Page 74 of 184 Hardware User Guide UG-438 ISRC Packet Registers Table 21 and Table 22 provide lists of readback registers available for the ISRC packets. Refer to the HDMI specifications for a detailed explanation of the ISRC packet fields. Table 21. ISRC1 Packet Registers InfoFrame Map Address 0xF2 0xF3 0xF4 0x8C 0x8D 0x8E 0x8F 0x90 0x91 0x92 0x93 0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B 0x9C 0x9D 0x9E 0x9F 0xA0 0xA1 0xA2 0xA3 0xA4 0xA5 0xA6 0xA7 1 R/W R/W R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R Register Name ISRC1_PACKET_ID[7:0] ISRC1_HEADER1 ISRC1_HEADER2 ISRC1_PB_0_1 ISRC1_PB_0_2 ISRC1_PB_0_3 ISRC1_PB_0_4 ISRC1_PB_0_5 ISRC1_PB_0_6 ISRC1_PB_0_7 ISRC1_PB_0_8 ISRC1_PB_0_9 ISRC1_PB_0_10 ISRC1_PB_0_11 ISRC1_PB_0_12 ISRC1_PB_0_13 ISRC1_PB_0_14 ISRC1_PB_0_15 ISRC1_PB_0_16 ISRC1_PB_0_17 ISRC1_PB_0_18 ISRC1_PB_0_19 ISRC1_PB_0_20 ISRC1_PB_0_21 ISRC1_PB_0_22 ISRC1_PB_0_23 ISRC1_PB_0_24 ISRC1_PB_0_25 ISRC1_PB_0_26 ISRC1_PB_0_27 ISRC1_PB_0_28 As defined by the HDMI specifications. Rev. 0 | Page 75 of 184 Packet Byte No.1 Packet type value HB1 HB2 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PB8 PB9 PB10 PB11 PB12 PB13 PB14 PB15 PB16 PB17 PB18 PB19 PB20 PB21 PB22 PB23 PB24 PB25 PB26 PB27 UG-438 Hardware User Guide The ISRC1 packet registers are considered valid if ISRC1_PCKT_RAW is set to 1. ISRC1_PCKT_RAW, IO, Address 0x60[6] (Read Only) Raw status signal of International Standard Recording Code 1 (ISRC1) packet detection signal. Function ISRC1_PCKT_RAW 0 (default) 1 Description No ISRC1 packets received since the last HDMI packet detection reset. ISRC1 packets have been received. This bit resets to zero after an HDMI packet detection reset or upon writing to ISRC1_PACKET_ID. Table 22. ISRC2 Packet Registers InfoFrame Map Address 0xF5 0xF6 0xF7 0xA8 0xA9 0xAA 0xAB 0xAC 0xAD 0xAE 0xAF 0xB0 0xB1 0xB2 0xB3 0xB4 0xB5 0xB6 0xB7 0xB8 0xB9 0xBA 0xBB 0xBC 0xBD 0xBE 0xBF 0xC0 0xC1 0xC2 0xC3 1 R/W R/W R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R Register Name ISRC2_PACKET_ID[7:0] ISRC2_HEADER1 ISRC2_HEADER2 ISRC2_PB_0_1 ISRC2_PB_0_2 ISRC2_PB_0_3 ISRC2_PB_0_4 ISRC2_PB_0_5 ISRC2_PB_0_6 ISRC2_PB_0_7 ISRC2_PB_0_8 ISRC2_PB_0_9 ISRC2_PB_0_10 ISRC2_PB_0_11 ISRC2_PB_0_12 ISRC2_PB_0_13 ISRC2_PB_0_14 ISRC2_PB_0_15 ISRC2_PB_0_16 ISRC2_PB_0_17 ISRC2_PB_0_18 ISRC2_PB_0_19 ISRC2_PB_0_20 ISRC2_PB_0_21 ISRC2_PB_0_22 ISRC2_PB_0_23 ISRC2_PB_0_24 ISRC2_PB_0_25 ISRC2_PB_0_26 ISRC2_PB_0_27 ISRC2_PB_0_28 Packet Byte No.1 Packet type value HB1 HB2 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PB8 PB9 PB10 PB11 PB12 PB13 PB14 PB15 PB16 PB17 PB18 PB19 PB20 PB21 PB22 PB23 PB24 PB25 PB26 PB27 As defined by the HDMI specifications. The ISRC2 packet registers are considered valid if, and only, if ISRC1_PCKT_RAW is set to 1. ISRC2_PCKT_RAW, IO, Address 0x60[7] (Read Only) Raw status signal of International Standard Recording Code 2 (ISRC2) packet detection signal. Function ISRC2_PCKT_RAW 0 (default) 1 Description No ISRC2 packets received since the last HDMI packet detection reset. ISRC2 packets have been received. This bit resets to zero after an HDMI packet detection reset or upon writing to ISRC2_PACKET_ID. Rev. 0 | Page 76 of 184 Hardware User Guide UG-438 Gamut Metadata Packets Refer to the HDMI specifications for a detailed explanation of the gamut metadata packet fields. Table 23. Gamut Metadata Packet Registers HDMI Map Address 0xF8 0xF9 0xFA 0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB 0xCC 0xCD 0xCE 0xCF 0xD0 0xD1 0xD2 0xD3 0xD4 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB 0xDC 0xDD 0xDE 0xDF 1 R/W R/W R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R Register Name GAMUT_PACKET_ID[7:0] GAMUT_HEADER1 GAMUT_HEADER2 GAMUT_MDATA_PB_0_1 GAMUT_MDATA_PB_0_2 GAMUT_MDATA_PB_0_3 GAMUT_MDATA_PB_0_4 GAMUT_MDATA_PB_0_5 GAMUT_MDATA_PB_0_6 GAMUT_MDATA_PB_0_7 GAMUT_MDATA_PB_0_8 GAMUT_MDATA_PB_0_9 GAMUT_MDATA_PB_0_10 GAMUT_MDATA_PB_0_11 GAMUT_MDATA_PB_0_12 GAMUT_MDATA_PB_0_13 GAMUT_MDATA_PB_0_14 GAMUT_MDATA_PB_0_15 GAMUT_MDATA_PB_0_16 GAMUT_MDATA_PB_0_17 GAMUT_MDATA_PB_0_18 GAMUT_MDATA_PB_0_19 GAMUT_MDATA_PB_0_20 GAMUT_MDATA_PB_0_21 GAMUT_MDATA_PB_0_22 GAMUT_MDATA_PB_0_23 GAMUT_MDATA_PB_0_24 GAMUT_MDATA_PB_0_25 GAMUT_MDATA_PB_0_26 GAMUT_MDATA_PB_0_27 GAMUT_MDATA_PB_0_28 Packet Byte No.1 Packet type value HB1 HB2 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PB8 PB9 PB10 PB11 PB12 PB13 PB14 PB15 PB16 PB17 PB18 PB19 PB20 PB21 PB22 PB23 PB24 PB25 PB26 PB27 As defined by the HDMI specifications. The gamut metadata packet registers are considered valid if GAMUT_MDATA_RAW is set to 1. GAMUT_MDATA_RAW, IO, Address 0x65[0] (Read Only) Raw status signal of gamut metadata packet detection signal. Function GAMUT_MDATA_RAW 0 (default) 1 Description No gamut metadata packet has been received in the last video frame or since the last HDMI packet detection reset. A gamut metadata packet has been received in the last video frame. This bit resets to zero after an HDMI packet detection reset or upon writing to GAMUT_PACKET_ID. GAMUT_IRQ_NEXT_FIELD, Addr 68 (HDMI), Address 0x50[4] A control set the NEW_GAMUT_MDATA_RAW interrupt to detect when the new contents are applicable to next field or to indicate that the gamut packet is new. This is done using header information of the gamut packet. Function GAMUT_IRQ_NEXT_FIELD 0 (default) 1 Description Interrupt flag indicates that gamut packet is new. Interrupt flag indicates that gamut packet is to be applied next field. Rev. 0 | Page 77 of 184 UG-438 Hardware User Guide CUSTOMIZING PACKET/INFOFRAME STORAGE REGISTERS The packet type value of each set of packet and InfoFrame registers in the InfoFrame Map is programmable. This allows the user to configure the ADV7610 to store the payload data of any packet and InfoFrames sent by the transmitter connected on the selected HDMI port. Note: Writing to any of the nine following packet ID registers also clears the corresponding raw InfoFrame/Packet detection bit. For example, writing 0x82, or any other value, to AVI_PACKET_ID clears AVI_INFO_RAW. AVI_PACKET_ID[7:0], Addr 7C (InfoFrame), Address 0xE0[7:0] AVI InfoFrame ID. Function AVI_PACKET_ID[7:0] 0xxxxxxx 1xxxxxxx Description Packet type value of packet stored in InfoFrame map, Address 0x00 to 0x1B Packet type value of InfoFrame stored in InfoFrame map, Address 0x00 to 0x1B AUD_PACKET_ID[7:0], Addr 7C (InfoFrame), Address 0xE3[7:0] Audio InfoFrame ID. Function AUD_PACKET_ID[7:0] 0xxxxxxx 1xxxxxxx Description Packet type value of packet stored in InfoFrame map, Address 0x1C to 0x29 Packet type value of InfoFrame stored in InfoFrame map, Address 0x1C to 0x29 SPD_PACKET_ID[7:0], Addr 7C (InfoFrame), Address 0xE6[7:0] Source Prod InfoFrame ID. Function SPD_PACKET_ID[7:0] 0xxxxxxx 1xxxxxxx Description Packet type value of packet stored in InfoFrame map, Address 0x2A to 0x45 Packet type value of InfoFrame stored in InfoFrame map, Address 0x2A to 0x45 MS_PACKET_ID[7:0], Addr 7C (InfoFrame), Address 0xE9[7:0] MPEG source InfoFrame ID. Function MS_PACKET_ID[7:0] 0xxxxxxx 1xxxxxxx Description Packet type value of packet stored in InfoFrame map, Address 0x46 to 0x53 Packet type value of InfoFrame stored in InfoFrame map, Address 0x46 to 0x53 VS_PACKET_ID[7:0], Addr 7C (InfoFrame), Address 0xEC[7:0] Vendor specific InfoFrame ID. Function VS_PACKET_ID[7:0] 0xxxxxxx 1xxxxxxx Description Packet type value of packet stored in InfoFrame map, Address 0x54 to 0x6F Packet type value of packet stored in InfoFrame map, Address 0x54 to 0x6F ACP_PACKET_ID[7:0], Addr 7C (InfoFrame), Address 0xEF[7:0] ACP InfoFrame ID. Function ACP_PACKET_ID[7:0] 0xxxxxxx 1xxxxxxx Description Packet type value of packet stored in InfoFrame Map, Address 0x70 to 0x8B Packet type value of InfoFrame stored in InfoFrame Map, Address 0x70 to 0x8B Rev. 0 | Page 78 of 184 Hardware User Guide UG-438 ISRC1_PACKET_ID[7:0], Addr 7C (InfoFrame), Address 0xF2[7:0] ISRC1 InfoFrame ID. Function ISRC1_PACKET_ID[7:0] 0xxxxxxx 1xxxxxxx Description Packet type value of packet stored in InfoFrame map, Address 0x8C to 0xA7 Packet type value of InfoFrame stored in InfoFrame map, Address 0x8C to 0xA7 ISRC2_PACKET_ID[7:0], Addr 7C (InfoFrame), Address 0xF5[7:0] ISRC2 InfoFrame ID. Function ISRC2_PACKET_ID[7:0] 0xxxxxxx 1xxxxxxx Description Packet type value of packet stored in InfoFrame map, Address 0xA8 to 0xC3 Packet type value of InfoFrame stored in InfoFrame map, Address 0xA8 to 0xC3 GAMUT_PACKET_ID[7:0], Addr 7C (InfoFrame), Address 0xF8[7:0] Gamut InfoFrame ID. Function GAMUT_PACKET_ID[7:0] 0xxxxxxx 1xxxxxxx Description Packet type value of packet stored in InfoFrame map, Address 0xC4 to 0xDF Packet type value of InfoFrame stored in InfoFrame map, Address 0xC4 to 0xDF Note: The packet type values and corresponding packets should not be programmed in the packet type values registers. These packets are always processed internally and cannot be stored in the packet/InfoFrame registers in the InfoFrame map: • • • • • • 0x01: audio clock regeneration packet 0x02: audio sample packet 0x03: general control packet 0x07: DSD audio sample packet 0x08: DST audio packet 0x09: HBR audio stream packet REPEATER SUPPORT The ADV7610 incorporates an EDID/repeater controller that provides all the features required for a receiver front end of a fully HDCP 1.4 compliant repeater system. The ADV7610 has a RAM that can store up to 127 KSVs, which allows it to handle up to 127 downstream devices in repeater mode (refer to Table 24). The ADV7610 features a set of HDCP registers, defined in the HDCP specifications, which are accessible through the DDC bus (refer to the DDC Ports section) of the selected port. A subset of the HDCP registers (defined in the following subsections) are also available in the Repeater Map and are accessible through the main I2C port (refer to the Main I2C Port section). Repeater Routines Performed by the EDID/Repeater Controller Power-Up A power-on reset circuitry on the DVDD supply is used to reset the EDID/repeater controller when the ADV7610 is powered up. When the EDID/repeater controller reboots after reset, it resets all the KSV registers listed in Table 24 to 0x00. AKSV Update The EDID/repeater controller resets automatically the BCAPS [5] bit to 0 when an HDCP transmitter writes its AKSV into the ADV7610 HDCP registers through the DDC bus of the HDMI port. Note: Writing a value in the AKSV[39:32] triggers an AKSV update and AKSV_UPDATE_ST interrupt if AKSV_UPDATE_MB1 or AKSV_UPDATE_MB2 has been set to 1 This triggers the EDID/repeater controller to reset the BCAPS [5] bit back to 0. KSV List Ready The KSV_LIST_READY bit is set by an external controller driving the ADV7610. This notifies the ADV7610 on-chip EDID/repeater controller that the KSV list registers have been updated with the KSV’s of the attached and active downstream HDCP devices. Rev. 0 | Page 79 of 184 UG-438 Hardware User Guide When KSV_LIST_READY is set to 1, the EDID/repeater controller computes the SHA-1 hash value V’, updates the corresponding V’ registers (refer to Table 25), and sets the READY bit (that is, BCAPS[5]) to 1. This indicates to the transmitter attached to the ADV7610 that the KSV FIFO and SHA-1 hash value V’ are ready to be read. KSV_LIST_READY, Addr 64 (Repeater), Address 0x71[7] The system sets this bit in order to indicate that the KSV list has been read from the Tx IC(s) and written into the repeater map. The system must also set Bits[11:0] of BSTATUS before setting this bit. Function KSV_LIST_READY 0 (default) 1 Description Not ready Ready Notes • • The SHA-1 hash value will be computed if the bit KSV_LIST_READY is set after the part has received an AKSV update from the upstream source. The external controller should therefore set KSV_LST_READY to 1 only after the part has received an AKSV update from the upstream source. The ADV7610 does not automatically clear KSV_LIST_READY to 0, after it has finished computed the SHA-1 has value. Therefore, the external controller needs to clear KSV_LIST_READY. HDMI Mode The BSTATUS[12]bit is updated automatically by the ADV7610 and follows the HDMI mode status of the HDMI/DVI stream input on the active HDMI port. BSTATUS [12] is set to 1 if the ADV7610 receives an HDMI stream, and set to 0 if the ADV7610 receives a DVI stream. Repeater Actions Required by External Controller The external controller must set the BCAPS register and notify the ADV7610 when the KSV list is updated, as described in the following sections: Repeater Bit, KSV FIFO Read from HDCP Registers, First AKSV Update, and Second and Subsequent AKSV Updates. Note that many more routines must be implemented into the external controller driving the ADV7610 to implement a full repeater. Such routines are described in the HDCP and HDMI specifications (for example, copying InfoFrame and packet data image from the HDMI receiver into the HDMI transmitter, momentarily deasserting the hot plug detect and disabling the clock termination on a change of downstream topology, and so on). Repeater Bit The REPEATER bit (that is, BCAPS[7:0][6]) must be set to 1 by the external controller in the routine that initializes the ADV7610. The repeater bit must be left as such as long as the ADV7610 is configured as the front end of a repeater system. Note: The registers in the KSV list (refer to Table 24) should always be set to 0x0 if the REPEATER bit is set to 0. The firmware running on the external controller, therefore, always sets the registers in the KSV list to 0x0 if the repeater bit is changed from 1 to 0. KSV FIFO Read from HDCP Registers The KSV FIFO read at address 0x43 through the HDCP port of the selected HDMI port is dependent on the value of the REPEATER bit (that is, BCAPS[6]): • • When the REPEATER bit is set to 0, the KSV FIFO read from the HDCP port always returns 0x0 When the REPEATER bit is set to 1, the KSV FIFO read from the HDCP port matches the KSV list which is set in the Repeater Map at addresses 0x80 to 0xF7 (refer to Table 24) First AKSV Update When the upstream transmitter writes its AKSV for the first time into the ADV7610 HDCP registers, the external controller driving the ADV7610 should perform the following tasks: • • • • Update BSTATUS[11:0] according to the topology of the downstream device attached to the repeater. Update the KSV list (refer to Table 24) with the KSV from the transmitter on the back end of the repeater as well as the KSV from all the downstream devices connected to the repeater. Set KSV_LIST_READY to 1. The external controller can monitor the AKSV_UPDATE_A_RAW bits to be notified when the transmitter writes its AKSV into the HDCP registers of the ADV7610. Rev. 0 | Page 80 of 184 Hardware User Guide UG-438 AKSV_UPDATE_A_RAW, IO, Address 0x88[0] (Read Only) Status of Port A AKSV update interrupt signal. When set to 1 it indicates that transmitter has written its AKSV into HDCP registers for Port A. Once set, this bit will remain high until it is cleared via AKSV_UPDATE_A_CLR. Function AKSV_UPDATE_A_RAW 0 (default) 1 Description No AKSV updates on Port A Detected a write access to the AKSV register on Port A Second and Subsequent AKSV Updates When the upstream transmitter writes its AKSV for the second time or more into the ADV7610 HDCP registers, the external controller driving the ADV7610 should set KSV_LIST_READY to 1. HDCP Registers Available in Repeater Map AUTO_HDCP_MAP_ENABLE and HDCP_MAP_SELECT[2:0] determine which port is currently visible to the user. AUTO_HDCP_MAP_ENABLE, Addr 64 (Repeater), Address 0x79[3] Selects which port will be accessed for HDCP addresses: the HDMI active port (selected by HDMI_PORT_SELECT, HDMI map) or the one selected in HDCP_MAP_SELECT. Function AUTO_HDCP_MAP_ENABLE 0 1 (default) Description HDCP data read from port given by HDCP_MAP_SELECT HDCP data read from the active HDMI port HDCP_MAP_SELECT[2:0], Addr 64 (Repeater), Address 0x79[2:0] Selects which port will be accessed for HDCP addresses (0x00 to 0x42 in Repeater map). This only takes effect when AUTO HDCP MAN ENABLE is 0. Function HDCP_MAP_SELECT[2:0] 000 (default) Description Select Port A BKSV[39:0], Addr 64 (Repeater), Address 0x04[7:0]; Address 0x03[7:0]; Address 0x02[7:0]; Address 0x01[7:0]; Address 0x00[7:0] (Read Only) The receiver key selection vector (BKSV) can be read back once the part has successfully accessed the HDCP ROM. The following registers contain the BKSV read from the EEPROM. Function BKSV[39:0] 0x00[7:0] 0x01[7:0] 0x02[7:0 ] 0x03[7:0] 0x04[7:0] Description BKSV[7:0] BKSV[15:8] BKSV[23:16] BKSV[31:24] BKSV[39:32] AKSV[39:0], Addr 64 (Repeater), Address 0x14[7:0]; Address 0x13[7:0]; Address 0x12[7:0]; Address 0x11[7:0]; Address 0x10[7:0] The AKSV of the transmitter attached to the active HDMI port can be read back after an AKSV update. The following registers contain the AKSV written by the Tx. Function AKSV[39:0] 0x10[7:0] 0x11[7:0] 0x12[7:0] 0x13[7:0] 0x14[7:0] Description AKSV[7:0] AKSV[15:8] AKSV[23:16] AKSV[31:24] AKSV[39:32] Rev. 0 | Page 81 of 184 UG-438 Hardware User Guide BCAPS[7:0], Addr 64 (Repeater), Address 0x40[7:0] This is the BCAPS register presented to the Tx attached to the active HDMI port. Function BCAPS[7:0] 10000011 (default) xxxxxxxx Description Default BCAPS register value presented to the Tx BCAPS register value presented to the Tx BSTATUS[15:0], Addr 64 (Repeater), Address 0x42[7:0]; Address 0x41[7:0] These registers contain the BSTATUS information presented to the Tx attached to the active HDMI port. Bits [11:0] must be set by the system software acting as a repeater. Function BSTATUS[15:0] xxxxxxxxxxxxxxxx 0000000000000000 (default) 0x41[7:0] 0x42[7:0] Description BSTATUS register presented to Tx. Reset value. BSTATUS register is reset only after power up. BSTATUS[7:0]. BSTATUS[15:8]. KSV registers are stored consecutively in RAM, which is split into 5x128 bytes bank maps. Maps are accessible through KSV_BYTE_0 to KSV_BYTE_127. Proper segment can be selected via KSV_MAP_SELECT[2:0] register, as shown in Figure 22. 0x00 TO 0x04 KSV0 0x05 TO 0x09 KSV1 0x0A TO 0x0E KSV2 0x00 0x80 KSV_BYTE_0 KSV_MAP_SELECT = 0 KSV_MAP_SELECT = 0 … 0x7D TO 0x81 KSV25 0x79 0x82 TO 0x86 KSV26 0x80 … 0xF5 TO 0xF9 KSV49 0xFA TO 0xFE KSV50 0xFF TO 0x103 KSV51 … 0xFF KSV_BYTE_127 KSV_MAP_SELECT = 1 0xFF 0x100 KSV_MAP_SELECT = 2 0x17C TO 0x180 KSV76 0x17F 0x181 TO 0x185 KSV77 0x186 TO 0x18A KSV78 … 0x180 KSV_MAP_SELECT = 3 0x1FE TO 0x202 KSV102 0x200 0x203 TO 0x207 KSV103 0x208 TO 0x20C KSV104 0x201 0x276 TO 0x27A KSV126 KSV_MAP_SELECT = 4 10884-028 … 0x27A Figure 22. Addressing Block Using KSV_MAP_SELECT and Register KSV_BYTE_0 to Register KSV_BYTE_127 Rev. 0 | Page 82 of 184 Hardware User Guide UG-438 KSV_MAP_SELECT[2:0], Addr 64 (Repeater), Address 0x79[6:4] Selects which 128 bytes of KSV list will be accessed when reading or writing to addresses 0x80 to 0xFF in this map. Values from 5 and upwards are not valid. Function KSV_MAP_SELECT[2:0] 000 (default) 001 010 011 100 101 110 111 Description KSV Map 0 selected KSV Map 1 selected KSV Map 2 selected KSV Map 3 selected KSV Map 4 selected Reserved Reserved Reserved Table 24. KSV Byte Registers Location KSV Byte Number 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 Register Name KSV_BYTE_0[7:0] KSV_BYTE_1[7:0] KSV_BYTE_2[7:0] KSV_BYTE_3[7:0] KSV_BYTE_4[7:0] KSV_BYTE_5[7:0] KSV_BYTE_6[7:0] KSV_BYTE_7[7:0] KSV_BYTE_8[7:0] KSV_BYTE_9[7:0] KSV_BYTE_10[7:0] KSV_BYTE_11[7:0] KSV_BYTE_12[7:0] KSV_BYTE_13[7:0] KSV_BYTE_14[7:0] KSV_BYTE_15[7:0] KSV_BYTE_16[7:0] KSV_BYTE_17[7:0] KSV_BYTE_18[7:0] KSV_BYTE_19[7:0] KSV_BYTE_20[7:0] KSV_BYTE_21[7:0] KSV_BYTE_22[7:0] KSV_BYTE_23[7:0] KSV_BYTE_24[7:0] KSV_BYTE_25[7:0] KSV_BYTE_26[7:0] KSV_BYTE_27[7:0] KSV_BYTE_28[7:0] KSV_BYTE_29[7:0] KSV_BYTE_30[7:0] KSV_BYTE_31[7:0] KSV_BYTE_32[7:0] KSV_BYTE_33[7:0] KSV_BYTE_34[7:0] KSV_BYTE_35[7:0] KSV_BYTE_36[7:0] KSV_BYTE_37[7:0] Rev. 0 | Page 83 of 184 Register Addresses1 0x80[7:0] 0x81[7:0] 0x82[7:0] 0x83[7:0] 0x84[7:0] 0x85[7:0] 0x86[7:0] 0x87[7:0] 0x88[7:0] 0x89[7:0] 0x8A[7:0] 0x8B[7:0] 0x8C[7:0] 0x8D[7:0] 0x8E[7:0] 0x8F[7:0] 0x90[7:0] 0x91[7:0] 0x92[7:0] 0x93[7:0] 0x94[7:0] 0x95[7:0] 0x96[7:0] 0x97[7:0] 0x98[7:0] 0x99[7:0] 0x9A[7:0] 0x9B[7:0] 0x9C[7:0] 0x9D[7:0] 0x9E[7:0] 0x9F[7:0] 0xA0[7:0] 0xA1[7:0] 0xA2[7:0] 0xA3[7:0] 0xA4[7:0] 0xA5[7:0] UG-438 KSV Byte Number 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 Hardware User Guide Register Name KSV_BYTE_38[7:0] KSV_BYTE_39[7:0] KSV_BYTE_40[7:0] KSV_BYTE_41[7:0] KSV_BYTE_42[7:0] KSV_BYTE_43[7:0] KSV_BYTE_44[7:0] KSV_BYTE_45[7:0] KSV_BYTE_46[7:0] KSV_BYTE_47[7:0] KSV_BYTE_48[7:0] KSV_BYTE_49[7:0] KSV_BYTE_50[7:0] KSV_BYTE_51[7:0] KSV_BYTE_52[7:0] KSV_BYTE_53[7:0] KSV_BYTE_54[7:0] KSV_BYTE_55[7:0] KSV_BYTE_56[7:0] KSV_BYTE_57[7:0] KSV_BYTE_58[7:0] KSV_BYTE_59[7:0] KSV_BYTE_60[7:0] KSV_BYTE_61[7:0] KSV_BYTE_62[7:0] KSV_BYTE_63[7:0] KSV_BYTE_64[7:0] KSV_BYTE_65[7:0] KSV_BYTE_66[7:0] KSV_BYTE_67[7:0] KSV_BYTE_68[7:0] KSV_BYTE_69[7:0] KSV_BYTE_70[7:0] KSV_BYTE_71[7:0] KSV_BYTE_72[7:0] KSV_BYTE_73[7:0] KSV_BYTE_74[7:0] KSV_BYTE_75[7:0] KSV_BYTE_76[7:0] KSV_BYTE_77[7:0] KSV_BYTE_78[7:0] KSV_BYTE_79[7:0] KSV_BYTE_80[7:0] KSV_BYTE_81[7:0] KSV_BYTE_82[7:0] KSV_BYTE_83[7:0] KSV_BYTE_84[7:0] KSV_BYTE_85[7:0] KSV_BYTE_86[7:0] KSV_BYTE_87[7:0] KSV_BYTE_88[7:0] KSV_BYTE_89[7:0] KSV_BYTE_90[7:0] Rev. 0 | Page 84 of 184 Register Addresses1 0xA6[7:0] 0xA7[7:0] 0xA8[7:0] 0xA9[7:0] 0xAA[7:0] 0xAB[7:0] 0xAC[7:0] 0xAD[7:0] 0xAE[7:0] 0xAF[7:0] 0xB0[7:0] 0xB1[7:0] 0xB2[7:0] 0xB3[7:0] 0xB4[7:0] 0xB5[7:0] 0xB6[7:0] 0xB7[7:0] 0xB8[7:0] 0xB9[7:0] 0xBA[7:0] 0xBB[7:0] 0xBC[7:0] 0xBD[7:0] 0xBE[7:0] 0xBF[7:0] 0xC0[7:0] 0xC1[7:0] 0xC2[7:0] 0xC3[7:0] 0xC4[7:0] 0xC5[7:0] 0xC6[7:0] 0xC7[7:0] 0xC8[7:0] 0xC9[7:0] 0xCA[7:0] 0xCB[7:0] 0xCC[7:0] 0xCD[7:0] 0xCE[7:0] 0xCF[7:0] 0xD0[7:0] 0xD1[7:0] 0xD2[7:0] 0xD3[7:0] 0xD4[7:0] 0xD5[7:0] 0xD6[7:0] 0xD7[7:0] 0xD8[7:0] 0xD9[7:0] 0xDA[7:0] Hardware User Guide KSV Byte Number 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 1 UG-438 Register Name KSV_BYTE_91[7:0] KSV_BYTE_92[7:0] KSV_BYTE_93[7:0] KSV_BYTE_94[7:0] KSV_BYTE_95[7:0] KSV_BYTE_96[7:0] KSV_BYTE_97[7:0] KSV_BYTE_98[7:0] KSV_BYTE_99[7:0] KSV_BYTE_100[7:0] KSV_BYTE_101[7:0] KSV_BYTE_102[7:0] KSV_BYTE_103[7:0] KSV_BYTE_104[7:0] KSV_BYTE_105[7:0] KSV_BYTE_106[7:0] KSV_BYTE_107[7:0] KSV_BYTE_108[7:0] KSV_BYTE_109[7:0] KSV_BYTE_110[7:0] KSV_BYTE_111[7:0] KSV_BYTE_112[7:0] KSV_BYTE_113[7:0] KSV_BYTE_114[7:0] KSV_BYTE_115[7:0] KSV_BYTE_116[7:0] KSV_BYTE_117[7:0] KSV_BYTE_118[7:0] KSV_BYTE_119[7:0] KSV_BYTE_120[7:0] KSV_BYTE_121[7:0] KSV_BYTE_122[7:0] KSV_BYTE_123[7:0] KSV_BYTE_124[7:0] KSV_BYTE_125[7:0] KSV_BYTE_126[7:0] KSV_BYTE_127[7:0] Register Addresses1 0xDB[7:0] 0xDC[7:0] 0xDD[7:0] 0xDE[7:0] 0xDF[7:0] 0xE0[7:0] 0xE1[7:0] 0xE2[7:0] 0xE3[7:0] 0xE4[7:0] 0xE5[7:0] 0xE6[7:0] 0xE7[7:0] 0xE8[7:0] 0xE9[7:0] 0xEA[7:0] 0xEB[7:0] 0xEC[7:0] 0xED[7:0] 0xEE[7:0] 0xEF[7:0] 0xF0[7:0] 0xF1[7:0] 0xF2[7:0] 0xF3[7:0] 0xF4[7:0] 0xF5[7:0] 0xF6[7:0] 0xF7[7:0] 0xF8[7:0] 0xF9[7:0] 0xFA[7:0] 0xFB[7:0] 0xFC[7:0] 0xFD[7:0] 0xFE[7:0] 0xFF[7:0] All KSVs are located in the repeater map. Table 25. Registers Location for SHA-1 Hash Value V’ Register Name SHA_A[31:0] SHA_B[31:0] SHA_C[31:0] Address Location1 0x20[7:0]: SHA_A[7:0] 0x21[7:0]: SHA_A[15:8] 0x22[7:0]: SHA_A[23:16] 0x23[7:0]: SHA_A[31:24] 0x24[7:0]: SHA_B[7:0] 0x25[7:0]: SHA_B[15:8] 0x26[7:0]: SHA_B[23:16] 0x27[7:0]: SHA_B[31:24] 0x28[7:0]: SHA_C[7:0] 0x29[7:0]: SHA_C[15:8] 0x2A[7:0]: SHA_C[23:16] 0x2B[7:0]: SHA_C[31:24] Function H0 part of SHA-1 hash value V’. Register also called (V’.H1)2 H1 part of SHA-1 hash value V’. Register also called (V’.H1)2 H2 part of SHA-1 hash value V’. Register also called (V’.H2)2 Rev. 0 | Page 85 of 184 UG-438 Register Name SHA_D[31:0] SHA_E[31:0] 1 2 Hardware User Guide Address Location1 0x2C[7:0]: SHA_D[7:0] 0x2D[7:0]: SHA_D[15:8] 0x2E[7:0]: SHA_D[23:16] 0x2F[7:0]: SHA_D[31:24] 0x30[7:0]: SHA_E[7:0] 0x31[7:0]: SHA_E[15:8] 0x32[7:0]: SHA_E[23:16] 0x33[7:0]: SHA_E[31:24] Function H3 part of SHA-1 hash value V’. Register also called (V’.H3)2 H4 part of SHA-1 hash value V’. Register also called (V’.H4)2 All registers specified in Table 25 are located in the repeater map. Refer to HDCP protection system Standards. INTERFACE TO DPP SECTION The video data from the HDMI section is sent to the CP section via the DPP block. The video data output by the HDMI section is always in a 4:4:4 format with 36 bits per pixel. This is irrespective of the encoding format of the video data encapsulated in the HDMI/DVI stream input to the HDMI receiver section (that is, 4:2:2 or 4:4:4). Y0/Cb0 Y1/Cr0 Y2/Cb2 Y3/Cr2 Y4/Cb2 … TMDS CHANNEL BITS[3:0] Y0 BITS[3:0] Y1 BITS[3:0] Y2 BITS[3:0] Y3 BITS[3:0] Y4 BITS[3:0] … BITS[7:4] Cb0 BITS[3:0] Cr0 BITS[3:0] Cb2 BITS[3:0] Cr2 BITS[3:0] Cb4 BITS[3:0] … 1 BITS[7:0] Y0 BITS[11:4] Y1 BITS[11:4] Y2 BITS[11:4] Y3 BITS[11:4] Y4 BITS[11:4] … 2 BITS[7:0] Cb0 BITS[11:4] Cr0 BITS[11:4] Cb2 BITS[11:4] Cr2 BITS[11:4] Cb4 BITS[11:4] … 0 10884-029 • If the HDMI section receives a stream with video encoded in a 4:4:4 format, it passes the video data to the DPP section. If the HDMI section receives a stream with video encoded in a 4:2:2 format (refer to Figure 23), the HDMI section upconverts the video data into a 4:4:4 format, according to the UP_CONVERSION_MODE bit, and passes the upconverted video data to the DPP section (refer to Figure 24). If the HDMI receiver receives video data with fewer than 12 bits used per channel, the valid bits are left-shifted on each component channel with zeroes padding the bit below the LSB, before being sent to the DPP section. Figure 23. YCbCr 4:2:2 Video Data Encapsulated in HDMI Stream Y0/Cb0/Cr0 Y1/CR0/CR0 Y2/Cb2/Cr2 Y3/Cb2/Cr2 Y4/Cb4/Cr4 … COMPONENT CHANNEL Y BITS[12:0] Y0 Y1 Y2 Y3 Y4 … Cb BITS[12:0] Cb0 Cb0 Cb2 Cb2 Cb4 … Cr BITS[12:0] Cr0 Cr0 Cr2 Cr2 Cr4 … Figure 24. Video Stream Output by HDMI Core for YCbCr 4:2:2 Input and UP_CONVERSION = 0 Rev. 0 | Page 86 of 184 10884-030 • • Hardware User Guide UG-438 UP_CONVERSION_MODE, Addr 68 (HDMI), Address 0x1D[5] A control to select linear or interpolated 4:2:2 to 4:4:4 conversion. A 4:2:2 incoming stream is upconverted to a 4:4:4 stream before being sent to the CP. Function UP_CONVERSION_MODE 0 (default) 1 Description Cr and Cb samples are repeated in their respective channel Interpolate Cr and Cb values Notes When the ADV7610 pixel output format is set to 4:2:2 (refer to the Pixel Port Output Modes section), the DPP section down converts the 4:4:4 stream from the HDMI section according to DS_WITHOUT_FILTER. • • For a 4:4:4 HDMI input stream to the ADV7610 • The DPP section filters and downsamples the video data from 4:4:4 to 4:2:2 format if DS_WITHOUT_FILTER is set to 0. The DPP section only downsamples, without filtering, the video data from the HDMI section if DS_WITHOUT_FILTER is set to 1. For a 4:2:2 HDMI input stream, the functionality of DS_WITHOUT_FILTER is reversed. • This inversion ensures that for a 4:2:2 HDMI input stream no filtering will be applied if DS_WITHOUT_FILTER is left to its default value 0. When a 4:2:2 HDMI input stream is input to the ADV7610, the DPP section downsamples, without filtering, the video data from 4:4:4 to 4:2:2 format if DS_WITHOUT_FILTER is set to 0. If DS_WITHOUT_FILTER is set to 1, the DPP filters and downsamples the video data from 4:4:4 to 4:2:2 format. DS_WITHOUT_FILTER, Addr 40 (IO), Address 0xE0[7] Disables the chroma filters on Channel B and Channel C while keeping the downsampler functional. Function DS_WITHOUT_FILTER 0 (default) 1 Description Filters and downsamples Downsamples only (no filtering) PASS THROUGH MODE The ADV7610 can pass through the video data of an HDMI stream with no formatting. The video is passed from the HDMI section through the DPP and CP cores, out through the pixel output formatter without filtering or alteration. This can be achieved with the following settings: 4:2:2 Pass Through • • • • Set DPP_BYPASS_EN to 1 to use the CP CSC Set UP_CONVERSION_MODE to 0 Set DS_WITHOUT_FILTER to 0 Configure the pixel output formatter to output a 4:2:2 stream (refer to the Pixel Port Output Modes section) 4:4:4 Pass Through Set UP_CONVERSION_MODE to 0 or to 1 Set DS_WITHOUT_FILTER to 0 or to 1 Configure the pixel output formatter to output a 4:4:4 stream (refer to the Pixel Port Output Modes section) Y0/Cb0 Y0/Cr0 Y0/Cb2 Y0/Cr2 Y0/Cb4 … COMPONENT CHANNEL Y BITS[12:0] Y0 Y1 Y2 Y3 Y4 … Cb/Cr BITS[12:0] Cb0 Cr0 Cb2 Cr2 Cb4 … Figure 25. Video Data Output by DPP in 4:2:2 Pass Through Mode Rev. 0 | Page 87 of 184 10884-031 • • • UG-438 Hardware User Guide DPP_BYPASS_EN, Addr 44 (CP), Address 0xBD[4] Manual control to enable DPP block. Function DPP_BYPASS_EN 1 (default) 0 Description DPP bypassed DPP enabled COLOR SPACE INFORMATION SENT TO THE DPP AND CP SECTIONS The HDMI section sends information regarding the color space of the video it outputs to the DPP and the CP sections. This color space information is derived from the DVI/HDMI status of the input stream the HDMI section processes and from the AVI InfoFrame that the HDMI section decodes from the input stream. The color space information sent by the HDMI section to the DDP and CP sections can be read via HDMI_COLORSPACE[3:0]. HDMI_COLORSPACE[3:0], Addr 68 (HDMI), Address 0x53[3:0] (Read Only) A readback of the HDMI input color space decoded from several fields in the AVI InfoFrame. Function HDMI_COLORSPACE[3:0] 0000 (default) 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 Description RGB_LIMITED RGB_FULL YUV_601 YUV_709 XVYCC_601 XVYCC_709 YUV_601_FULL YUV_709_FULL sYCC 601 Adobe YCC 601 Adobe RGB STATUS REGISTERS Many status bit are available throughout the IO and HDMI maps. These status bits are listed in Table 26 to Table 35. Table 26. HDMI Flags in IO Map Register 0x60 Bit Name AVI_INFO_RAW Bit Position 0 (LSB) AUDIO_INFO_RAW 1 SPD_INFO_RAW 2 MS_INFO_RAW 3 VS_INFO_RAW 4 ACP_PCKT_RAW 5 ISRC1_PCKT_RAW 6 ISRC2_PCKT_RAW 7 (MSB) Description Returns 1 if an AVI InfoFrame was received within last seven VSync. For additional information, see the Interrupt Architecture Overview section. Returns 1 if an AVI InfoFrame was received within last three VSyncs. For additional information, see the Audio InfoFrame Registers section. Returns 1 if a Source Product Descriptor InfoFrame has been received. For additional information, see the SPD InfoFrame Registers section. Returns 1 if a MPEG InfoFrame was received within the last three VSyncs. For additional information, see the MPEG Source InfoFrame Registers section. Returns 1 if a Vendor Specific InfoFrame has been received. For additional information, see the Vendor Specific InfoFrame Registers section. Returns 1 if an ACP packet was received within last 600 ms. For additional information, see the ACP Packet Registers section. Returns 1 if an ISRC1 packet was received. For additional information, see the ISRC Packet Registers section. Returns 1 if an ISRC2 packet was received. For additional information, see the ISRC Packet Registers section. Rev. 0 | Page 88 of 184 Hardware User Guide UG-438 Table 27. HDMI Flags in IO Map Register 0x65 Bit Name GAMUT_MDATA_RAW Bit Position 0 (LSB) AUDIO_C_PCKT_RAW 1 GEN_CTL_PCKT_RAW 2 HDMI_MODE_RAW 3 AUDIO_CH_MD_RAW 4 AV_MUTE_RAW 5 INTERNAL_MUTE_RAW 6 CS_DATA_VALID_RAW 7 (MSB) Description Returns 1 if a Gamut Metadata packet was received. For additional information, see the Gamut Metadata Packets section. Returns 1 if an audio clock regeneration packet has been received. Reset to 0 following a packet detection flag reset condition. Returns 1 if general control packet has been received. Reset to 0 following a packet detection flag reset condition. Returns 1 if a HDMI stream is being received. For additional information, see the HDMI/DVI Status Bits section. Returns 1 if the audio channel mode is multichannel (2-, 4-, 6-, or 8-channel) audio. Reset to 0 following a packet detection flag reset condition. For additional information, see the Audio Channel Mode section. Returns 1 if the latest general control packet received has AV_MUTE asserted. Reset to 0 following packet detection flag reset condition. Returns 1 if ADV7610 has internally muted the audio data. For additional information, see the Internal Mute Status section. Returns 1 if channel status bit readback registers in HDMI Map, Address 0x36 to 0x3A are valid. For additional information, see the Validity Status Flag section. Table 28. HDMI Flags in IO Map Register 0x6A Bit Name DE_REGEN_LCK_RAW Bit Position 0 (LSB) V_LOCKED_RAW 1 VIDEO_3D_RAW TMDS_CLK_A_RAW TMDSPLL_LCK_A_RAW 2 6 7 Description Description available in the Primary Port Horizontal Filter Measurements section. Description available in the Primary Port Horizontal Filter Measurements section. Description available in the Video 3D Detection section. Description available in the TMDS Clock Activity Detection section. Description available in the TMDS Measurement section. Table 29. HDMI Flags in IO Map Register 0x6F Bit Name CABLE_DET_A_RAW HDMI_ENCRPT_A_RAW Bit Position 0 2 Description Description available in the +5 V Cable Detect section. Description available in the HDCP Decryption Engine section. Table 30. HDMI Flags in IO Map Register 0x79 Bit Name NEW_AVI_INFO_RAW NEW_AUDIO_INFO_RAW NEW_SPD_INFO_RAW NEW_MS_INFO_RAW NEW_VS_INFO_RAW NEW_ACP_PCKT_RAW NEW_ISRC1_PCKT_RAW NEW_ISRC2_PCKT_RAW Bit Position 0 (LSB) 1 2 3 4 5 6 7 (MSB) Rev. 0 | Page 89 of 184 UG-438 Hardware User Guide Table 31. HDMI Flags in IO Map Register 0x7E Bit Name NEW_GAMUT_MDATA_RAW Bit Position 0 (LSB) AUDIO_PCKT_ERR_RAW 1 PACKET_ERROR_RAW 2 CHANGE_N_RAW 3 CTS_PASS_THRSH_RAW 4 FIFO_OVERFLO_RAW 5 FIFO_UNDERFLO_RAW 6 FIFO_NEAR_OVFL_RAW 7 (MSB) Description When set to 1 indicates that a gamut metadata packet with new content has been received. Once set, this bit remains high until the interrupt is cleared via NEW_GAMUT_ MDATA_PCKT_CLR. (IO Map 0x80[0]). When set to 1 indicates that an uncorrectable error was detected in the body of an audio packet. Once set, this bit remains high until the interrupt is cleared via AUDIO_PCKT_ERR_CLR (IO Map 0x80[1]). When set to 1 it indicates an uncorrectable EEC error was detected in the body or header of any packet. Once set, this bit remains high until the interrupt is cleared via PACKET_ERROR_CLR (IO Map 0x80[2]). When set to 1 it indicates the N value of the ACR packets has changed. Once set, this bit remains high until the interrupt is cleared via CHANGE_N_CLR (IO Map 0x80 [3]). When set to 1 it indicates the CTS value of the ACR packets has exceeded the threshold set by CTS_CHANGE_THRESHOLD. Once set, this bit remains high until the interrupt is cleared via CTS_PASS_THRSH_CLR (IO Map 0x80[4]). When set to 1 it indicates the audio FIFO write pointer has reached the read pointer causing the audio FIFO to overflow. Once set, this bit remains high until the interrupt is cleared via FIFO_OVERFLO_CLR (IO Map 0x80[5]). When set to 1 it indicates the audio FIFO read pointer has reached the write pointer causing the audio FIFO to underflow. Once set, this bit remains high until the interrupt is cleared via FIFO_UNDERFLO_CLR (IO Map 0x80[6]). When set to 1 it indicates the audio FIFO is near overflow as the number FIFO registers containing stereo data is greater or equal to value set in AUDIO_FIFO_ALMOST_FULL_ THRESHOLD. Once set, this bit remains high until the interrupt is cleared via FIFO_NEAR_OVFL_CLR (IO Map 0x80[7]). Table 32. HDMI Flags in IO Map Register 0x83 Bit Name FIFO_NEAR_UFLO_RAW Bit Position 0 (LSB) NEW_TMDS_FRQ_RAW 1 AUDIO_FLT_LINE_RAW 2 NEW_SAMP_RT_RAW 3 PARITY_ERROR_RAW 4 AUDIO_MODE_CHNG_RAW 5 VCLK_CHNG_RAW 6 DEEP_COLOR_CHNG_RAW 7 (MSB) Description When set to 1 it indicates the audio FIFO is near underflow as the number of FIFO registers containing stereo data is less or equal to value set in AUDIO_FIFO_ALMOST_EMPTY_ THRESHOLD. Once set, this bit remains high until the interrupt is cleared via FIFO_NEAR_UFLO_CLR (IO Map 0x85[0]). When set to 1 it indicates the TMDS frequency has changed by more than the tolerance set in FREQTOLERANCE[3:0] Once set, this bit remains high until the interrupt is cleared via NEW_TMDS_FREQ_CLR (IO Map 0x85[1]). When set to 1 it indicates audio sample packet has been received with the flat line bit set to 1. Once set, this bit remains high until the interrupt is cleared via AUDIO_FLT_LINE_ CLR (IO Map 0x85[2]). When set to 1 it indicates that audio sampling frequency field in channel status data has changed. Once set, this bit remains high until the interrupt is cleared via NEW_SAMP_ RT_CLR (IO Map 0x85[3]). When set to 1 it indicates an audio sample packet has been received with parity error. Once set, this bit remains high until the interrupt is cleared via PARITY_ERROR_CLR (IO Map 0x85 [4]). When set to 1 it indicates that the type of audio packet received has changed. The following are considered audio modes, no audio, PCM, DSD, HBR, or DST. AUDIO_SAMPL_PCKT_DET, DSD_PACKET_DET, DST_AUDIO_PCKT_DET, and HBR_AUDIO_PCKT_DET used identify type of audio packet currently received. Once set, this bit remains high until the interrupt is cleared via AUDIO_MODE_CHNG_CLR (IO Map 0x85[5]). When set to 1 it indicates that irregular or missing pulses are detected in the TMDS clock. Once set, this bit remains high until the interrupt is cleared via VCLK_CHNG_CLR (IO Map 0x85[6]). When set to 1 it indicates a change in the deep color mode has been detected. Once set, this bit remains high until the interrupt is cleared via DEEP_COLOR_CHNG_CLR (IO Map 0x85[7]). Rev. 0 | Page 90 of 184 Hardware User Guide UG-438 Table 33. HDMI InfoFrame Checksum Error Flags in IO Map Bit Name AVI_INF_CKS_ERR_RAW AUD_INF_CKS_ERR_RAW SPD_INF_CKS_ERR_RAW MS_INF_CKS_ERR_RAW VS_INF_CKS_ERR_RAW IO Map Location 0x88[4] 0x88[5] 0x88[6] 0x88[7] 0x8D[0] Description Description available in the InfoFrame Checksum Error Flags section Description available in the InfoFrame Checksum Error Flags section Description available in the InfoFrame Checksum Error Flags section Description available in the InfoFrame Checksum Error Flags section Description available in the InfoFrame Checksum Error Flags section Table 34. AKSV Update Flags in IO Map Register 0x88 Bit Name AKSV_UPDATE_A_RAW Bit Position 0 RI_EXPIRED_A_RAW 2 Description When set to 1 it indicates that transmitter has written its AKSV into HDCP registers for Port A. Once set, this bit remains high until the interrupt is cleared via AKSV_UPDATE_A_CLR (IO Map 0x8A[1]). Status of Port A RI_EXPIRED interrupt signal. When set to 1, it indicates that HDCP cipher Ri value for Port A is expired. Once set, this bit remains high until it is cleared via RI_EXPIRED_A_CLR (HDMI Map, 0x8A[2]). Table 35. HDMI Flags in HDMI Map Bit Name AUDIO_PLL_LOCKED AUDIO_SAMPLE_PCKT_DET DSD_PACKET_DET DST_AUDIO_PCKT_DET HBR_AUDIO_PCKT_DET DCFIFO_LOCKED HDMI Map Location 0x04[0] 0x18[0] 0x18[1] 0x18[2] 0x18[3] 0x1C[3] Description Description available in the Locking Mechanism section Description available in the Audio Packet Type Flags section Description available in the Audio Packet Type Flags section Description available in the Audio Packet Type Flags section Description available in the Audio Packet Type Flags section Description available in the Video FIFO section HDMI SECTION RESET STRATEGY The reset strategy implemented for the HDMI section is as follows: • • • • Global chip reset A global chip reset is triggered by asserting the reset pin to a low level. The HDMI section, excluding the EDID/repeater controller, is reset when a global reset is triggered. Loss of TMDS clock or 5 V signal reset A loss of TMDS clock or 5 V signal on the HDMI port selected via HDMI_PORT_SELECT[2:0] resets the entire HDMI section except for the EDID/repeater controller and the audio section. The loss of a 5 V signal condition is discarded if DIS_CABLE_DET_RST is set high. DVI mode reset The packet processing block, including InfoFrame memory is held in reset when the HDMI section processes a DVI stream. EDID/repeater controller reset The EDID/repeater controller is reset when the DVDD supplies go low or when HDCP_REPT_EDID_RESET is set high. HDMI PACKET DETECTION FLAG RESET A packet detection flag reset is triggered when any of the following events occur: • • • • • The ADV7610 is powered up. The ADV7610 is reset. A TMDS clock is detected, after a period of no clock activity, on the selected HDMI port. The selected HDMI port is changed. The signal from the 5 V input pin of the HDMI port selected through HDMI_PORT_SELECT transitions to a high. This condition is discarded if DIS_CABLE_DET_RST is set high. Rev. 0 | Page 91 of 184 UG-438 Hardware User Guide DATA PREPROCESSOR AND COLOR SPACE CONVERSION AND COLOR CONTROLS COLOR SPACE CONVERSION MATRIX The ADV7610 provides any-to-any color space support. It supports formats such as RGB, YUV, YCbCr and many other color spaces. The ADV7610 features a 3×3 CSC in the CP block (CP CSC), as shown in Figure 26. The CP CSC also provides color controls for brightness, contrast, saturation and hue adjustments. The DPP block features an automatic CSC. The ADV7610 automatically configures the DPP CSC depending on the input and output formats and the use of the color control feature. DATA PRE-PROCESSOR (DPP) FIRST STAGE DECIMATION FILTER SECOND STAGE DECIMATION FILTER CP COLOR SPACE CONVERSION MATRIX (CP CSC) 10884-032 DPP COLOR SPACE CONVERSION MATRIX (DPP CSC) COMPONENT PROCESSOR (CP) Figure 26. DPP/CP CSC Block Diagram The configuration of the color space conversion using the CP CSC block and a description of the adjustable register bits are provided in Figure 27. CSC_COEFF_SEL MANUAL CSC MODE 0000 CSC_SCALE A1-A4[12:0] B1-B4[12:0] C1-C4[12:0] AUTOMATIC CSC MODE 1111 RGB_OUT INP_COLOR_SPACE ALT_GAMMA CHANNEL A, B, AND C FROM DPP CHANNEL A, B, AND C TO CP CORE CP COLOR CONTROL CP COLOR SPACE CONVERSION MATRIX (CP CSC) CP_BRIGHTNESS CP_SATURATION CP_CONTRAST CP_HUE 1 VID_ADJ_EN 10884-033 0 Figure 27. Configuring CP CSC Block CP CSC Selection MAN_CP_CSC_EN, Addr 44 (CP), Address 0x69[4] A control to manually enable the CP CSC. By default the CP CSC will be automatically enabled in the case that either a color-space conversion or video-adjustments (hue, saturation, contrast, brightness) is determined to be required due to other I2C settings. If MAN_CP_CSC_EN is set to 1, the CP CSC is forced into the enabled state. Function MAN_CP_CSC_EN 0 (default) 1 Description CP CSC will be automatically enabled if required. For example, if either a color-space conversion or videoadjustments (hue, saturation, contrast, brightness) is determined to be required due to other I2C settings. Manual override to force CP-CSC to be enabled. Rev. 0 | Page 92 of 184 Hardware User Guide UG-438 Selecting Auto or Manual CP CSC Conversion Mode The ADV7610 CP CSC provides two modes for the CSC configuration: automatic CSC mode and manual CSC mode. In automatic CSC mode, the user is required to program the input color space and the output color space for the correct operation of the CSC matrix. Manual CSC mode allows the user to program all the color space conversion by manually programming CSC coefficients. CSC_COEFF_SEL[3:0], Addr 44 (CP), Address 0x68[7:4] A control to select the mode the CP CSC operates in. Function CSC_COEFF_SEL[3:0] 0000 1111 (default) xxxx Description CP CSC configuration in manual mode CP CSC configured in automatic mode Reserved The selection of the CSC is automated in the ADV7610. Automatic or manual CSC mode can be selected by setting the CSC_COEFF_SEL[3:0] bits. When CSC_COEFF_SEL[3:0] is set to 0b1111, the CSC mode is automatically selected, based on the input color space and output color space required and set through the following registers: • • • INP_COLOR_SPACE[3:0] RGB_OUT ALT_GAMMA Auto Color Space Conversion Matrix The CSC matrix, AGC target gain values, and offset values can be configured automatically via the following set of registers: • • • • INP_COLOR_SPACE[3:0] RGB_OUT ALT_GAMMA OP_656_RANGE_SEL INP_COLOR_SPACE[3:0], IO, Address 0x02[7:4] A control to set the colorspace of the input video. To be used in conjunction with ALT_GAMMA and RGB_OUT to configure the color space converter. A value of 4'b1111 selects automatic setting of the input color space base on the primary mode and video standard settings. Setting 1000 to Setting 1110 are undefined. Function INP_COLOR_SPACE[3:0] 0000 0001 0010 0011 0100 0101 0110 0111 1111 (default) Description Forces RGB (range 16 to 235) input Forces RGB (range 0 to 255) input Forces YCrCb input (601 color space) (range 16 to 235) Forces YCrCb input (709 color space) (range 16 to 235) Forces XVYCC 601 Forces XVYCC 709 Forces YCrCb input (601 color space) (range 0 to 255) Forces YCrCb input (709 color space) (range 0 to 255) Input color space depends on color space reported by HDMI block. Table 36. Automatic Input Color Space Selection PRIM_MODE[3:0] 0101 VID_STD[5:0] xxxx Input Color Space Dependent on AVI InfoFrame 0110 xxxx Dependent on AVI InfoFrame Input Range 0:255 for YUV Dependent on AVI InfoFrame for RGB 0:255 for YUV Dependent on AVI InfoFrame for RGB Rev. 0 | Page 93 of 184 Comments HDMI component modes HDMI graphic modes UG-438 Hardware User Guide RGB_OUT, IO, Address 0x02[1] A control to select output color space and the correct digital blank level and offsets on the RGB or YPrPb outputs. It is used in conjunction with the INP_COLOR_SPACE[3:0] and ALT_GAMMA bits to select the applied CSC. Function RGB_OUT 0 (default) 1 Description YPbPr color space output RGB color space output ALT_GAMMA, IO, Address 0x02[3] A control to set the colorspace of the input video. To be used in conjunction with ALT_GAMMA and RGB_OUT to configure the color space converter. A value of 4'b1111 selects automatic setting of the input color space base on the primary mode and video standard settings. Setting 1000 to Setting 1110 are undefined. Function ALT_GAMMA 0 (default) 1 Description No conversion YUV601 to YUV709 conversion applied if input is YUV601. YUV709 to YUV601 conversion applied if input is YUV709 Table 37. Automatic CSC Selection INP_COLOR_SPACE[3:0] (Input Color Space) 00 = RGB 01 = (YCbCr /YUV 601) 10 = (YCbCr /YUV 709) RGB_OUT 0 1 0 1 0 1 CSC Mode Used (Output) ALT_GAMMA = 0 ALT_GAMMA = 1 YCbCr 601 YCbCr 709 RGB RGB YCbCr 601 YCbCr 709 RGB RGB YCbCr 709 YCbCr 601 RGB RGB CSC_COEFF_SEL_RB[3:0], Addr 44 (CP), Address 0xF4[7:4] (Read Only) Readback of the CP CSC conversion when configured in automatic mode. Function CSC_COEFF_SEL_RB[3:0] 0000 (default) 0001 0011 0101 0111 1001 1010 1111 xxxx Description CSC is bypassed YPbPr 601 to RGB YPbPr 709 to RGB RGB to YPbPr 601 RGB to YPbPr 709 YPbPr 709 to YPbPr 601 YPbPr 601 to YPbPr 709 CSC in manual mode Reserved Table 38. CSC Configuration for All CSC Modes Reported by CSC_COEFF_SEL_RB CSC Mode 0b0000 0b0001 0b0011 0b0101 0b0111 0b1001 0b1010 CSC_ SCALE [1:0] A1 A2 A3 A4 B1 B2 B3 B4 C1 C2 C3 C4 CSC in bypass mode. In this mode the CSC effectively performs a color conversion based on the CSC coefficients set in registers CSC_SCALE, A1, A2, A3, A4, B1, B2, B3, B4, C1, C2, C3, and C4. 0b01 0x0800 0x1A6A 0x1D50 0x0423 0x0800 0x0AF8 0x0000 0x1A84 0x0800 0x0000 0x0DDB 0x1912 0b01 0x0800 0x1C54 0x1E89 0x0291 0x0800 0x0C52 0x0000 0x19D7 0x0800 0x0000 0x0E87 0x18BC 0b00 0x0964 0x04C9 0x01D3 0x0000 0x1927 0x082D 0x1EAC 0x0800 0x1A93 0x1D3F 0x082D 0x0800 0b00 0x0B71 0x0368 0x0127 0x0000 0x1893 0x082D 0x1F3F 0x0800 0x19B2 0x1E21 0x082D 0x0800 0b01 0x0800 0x0188 0x00CB 0x1ED7 0x0000 0x07DE 0x1F6C 0x005B 0x0000 0x1F1D 0x07EB 0x007B 0b01 0x0800 0x1E56 0x1F14 0x014A 0x0000 0x0834 0x009A 0x1F9A 0x0000 0x00EB 0x0826 0x1F78 Rev. 0 | Page 94 of 184 Hardware User Guide UG-438 HDMI Automatic CSC Operation In HDMI mode, the ADV7610 provides an automatic CSC function based on the AVI InfoFrame sent from the source. The flowchart in Figure 28 shows the mechanism of the ADV7610 auto CSC functionality in HDMI mode. Note: In the following flowcharts, a red dashed line represents a state that is undefined according to the CEA-861D specification, and therefore should never happen. In the event that it did somehow occur, the ADV7610 retains the previous colorimetry. START Y[1:0] = 00b RGB MODE Y[1:0] = 01b YCbCr MODE Y[1:0] = 10b YCbCr MODE Y[1:0] = 11b YCbCr MODE 10884-034 DETECT YCbCr/RGB Y[1:0] = xxb? Figure 28. HDMI Auto CSC Flowchart Y[1:0] = 00b RGB MODE START DETECT QUANTIZATION RANGE Q[1:0] = xxb? Q[1:0] = 01b Q[1:0] = 00b Q[1:0] = 10b Q[1:0] = 11b REMAIN CURRENT CS OR RGB LIMITED RANGE RGB LIMITED RANGE CHECK ITC IN AVI (ITC = 1?) TRUE RGB FULL RANGE Figure 29. HDMI Auto CSC Flowchart (Case RGB) Rev. 0 | Page 95 of 184 10884-035 FALSE UG-438 Hardware User Guide Y[1:0] = 01b, 10b, 11b YCbCr MODE START YCbCr COLORIMETRY C[1:0] = xxb? C[1:0] = 10b C[1:0] = 10b C[1:0] = 11b C[1:0] = 00b YUV709 YUV601 EC[2:0] = 001b xvYCC709 EC[2:0] = 000b xvYCC601 EC[2:0] != (001 OR 000) REMAIN CURRENT STATUS 10884-036 EXTENDED COLORIMETRY EC[2:0] = xxxb? Figure 30. HDMI Auto CSC Flowchart (Case YCbCr-1) YCbCr COLORIMETRY C[1:0] = 00b VIDEO FORMAT IDENTIFICATION CODE CHECK VIC[6:0] VALUES IN AVI INFOFRAME VIC[6:0] == 0d VIC[6:0] == 1d VIC[6:0] == 4d VIC[6:0] == 5d VIC[6:0] == 16d VIC[6:0] == 19d VIC[6:0] == 20d VIC[6:0] == 31d VIC[6:0] == 32d VIC[6:0] == 33d VIC[6:0] == 34d VIC[6:0] == 39d VIC[6:0] == 40d VIC[6:0] == 46d VIC[6:0] == 47d VIC[6:0] >= 60d FALSE YUV601 10884-037 TRUE YUV709 Figure 31. HDMI Auto CSC Flowchart (Case YCbCr-2) In the RGB case (refer to Figure 32), the ADV7610 has the programmability to control manually the RGB limited/full range regardless of the ITC bit. Rev. 0 | Page 96 of 184 Hardware User Guide UG-438 Y[1:0] = 00b RGB START 4:4:4 MODE DETECT QUANTIZATION RANGE Q[1:0] = xxb? Q[1:0] = 01b Q[1:0] = 10b QZERO_RGB_FULL = 1 1-BIT CONTROL TO SELECT FULL/LIMITED RGB/RANGE RGB FULL RANGE RGB LIMITED RANGE 10884-038 QZERO_RGB_FULL = 0 (DEFAULT) Q[1:0] = 00b Figure 32. Manual RGB Range Control Flowchart for Auto CSC (Case RGB) QZERO_ITC_DIS, Addr 68 (HDMI), Address 0x47[2] A control to select manual control of the RGB colorimetry when the AVI InfoFrame field Q[1:0] = 00. To be used in conjunction with QZERO_RGB_FULL. Function QZERO_ITC_DIS 0 (default) 1 Description AVI InfoFrame ITC bit decides RGB-full or limited range in case Q[1:0] = 00 Manual RGB range as per QZERO_RGB_FULL QZERO_RGB_FULL, Addr 68 (HDMI), Address 0x47[1] A control to manually select the HDMI colorimetry when AVI InfoFrame field Q[1:0] = 00. Valid only when QZERO_ITC_DIS is set to 1. Function QZERO_RGB_FULL 0 (default) 1 Description RGB-limited range when Q[1:0] = 00 RGB-full when Q[1:0] = 00 Manual Color Space Conversion Matrix The CP CSC matrix in the ADV7610 is a 3 × 3 matrix with full programmability of all coefficients in the matrix in manual mode. Each coefficient is 12-bits wide to ensure signal integrity is maintained in the CP CSC section. The CP CSC contains three identical processing channels, one of which is shown in Figure 33. The main inputs labeled In_A, In_B, and In_C come from the 36-bit digital input from the HDMI section. Each input to the individual channels to the CSC is multiplied by a separate coefficient for each channel. In Figure 33, these coefficients are marked A1, A2 and A3. The variable labeled A4 is used as an offset control for channel A in the CSC. There is also a further CP CSC control bit labeled CSC_SCALE[1:0]; this control can be used to accommodate coefficients that extend the supported range. The functional diagram for a single channel in the CP CSC as per Figure 33 is repeated for the other two remaining channels, B and C. The coefficients for these channels are called B1, B2, B3, B4, C1, C2, C3, and C4. Rev. 0 | Page 97 of 184 UG-438 Hardware User Guide CSC_SCALE A1[12:0] A4[12:0] ×2 1 OUT_A[11:0] IN_A[11:0] × + + + 0 A2[12:0] IN_B[11:0] × IN_C[11:0] 10884-039 A3[12:0] × Figure 33. Single CSC Channel The coefficients mentioned previously are detailed in Table 39 along with the default values for these coefficients. Table 39. CSC Coefficients Function Bit A1[12:0] A2[12:0] A3[12:0] B1[12:0] B2[12:0] B3[12:0] C1[12:0] C2[12:0] C3[12:0] CSC_SCALE[1:0] A4[12:0] B4[12:0] C4[12:0] CP Map Address 0x57[4:0], 0x58[7:0] 0x55[1:0], 0x56[7:0], 0x57[7:5] 0x54[6:0], 0x55[7:2] 0x5E[4:0], 0x5F[7:0] 0x5C[1:0], 0x5D[7:0], 0x5E[7:5] 0x5B[6:0], 0x5C[7:2] 0x65[4:0], 0x66[7:0] 0x63[1:0], 0x64[7:0], 0x65[7:5] 0x62[6:0], 0x63[7:2] 0x52[7:6] 0x52[4:0], 0x53[7:0] 0x59[4:0], 0x5A[7:0] 0x60[4:0], 0x61[7:0] Reset Value (Hex) 0x800 0x000 0x000 0x000 0x800 0x000 0x000 0x000 0x800 0x01 0x000 0x000 0x000 CSC_SCALE[1:0], Addr 44 (CP), Address 0x52[7:6] A control to set the CSC coefficient scalar. Function CSC_SCALE[1:0] 00 01 (default) 10 11 Description CSC scalar set to 1. CSC scalar set to 2. Reserved. Do not use. Reserved. Do not use. Rev. 0 | Page 98 of 184 Description Coefficient for Channel A Coefficient for Channel A Coefficient for Channel A Coefficient for Channel B Coefficient for Channel B Coefficient for Channel B Coefficient for Channel C Coefficient for Channel C Coefficient for Channel C Scaling for CSC formula Offset for Channel A Offset for Channel B Offset for Channel C Hardware User Guide UG-438 CSC Manual Programming The equations performed by the CP CSC are as follows: CSC Channel A A1[12 : 0] A2[12 : 0] A3[12 : 0] Out _ A = In _ A × + In _ B × + In _ C × + A4[12 : 0] × 2 CSC _ scale 4096 4096 4096 (4) CSC Channel B B1[12 : 0] B2[12 : 0] B3[12 : 0] Out _ B = In _ A × + In _ B × + In _ C × + B4[12 : 0] × 2 CSC _ scale 4096 4096 4096 (5) CSC Channel C C1[12 : 0] C2[12 : 0] C3[12 : 0] Out _ C = In _ A × + In _ B × + In _ C × + C4[12 : 0] × 2 CSC _ scale 4096 4096 4096 (6) As can be seen from Equation 4, Equation 5, and Equation 6, the A1, A2, A3; B1, B2, B3; and C1, C2, C3 coefficients are used to scale the primary inputs. The values of A4, B4, and C4 are added as offsets. The CSC_SCALE[1:0] bits allows the user to implement conversion formulae in which the coefficients exceed the standard range of [−4096/+4096 ... 4095/4096]. The overall range of the CSC is [0..1] for unipolar signals (for example, Y, R, G, and B) and [−0.5 … +0.5] for bipolar signals (for example, Pr and Pb). Note: The bipolar signals must be offset to midrange, for example, 2048. To arrive at programming values from typical formulas, the following steps are performed: 1. 2. 3. 4. 5. 6. Determine the dynamic range of the equation. The dynamic range of the CSC is [0 … 1] or [−0.5 … +0.5]. Equations with a gain larger than 1 need to be scaled back. Errors in the gain can be compensated for in the gain stages of the follow on blocks. • Scale the equations, if necessary. Check the value of each coefficient. The coefficients can only be programmed in the range [−0.99 … +0.99]. To support larger coefficients, the CSC_SCALE[1:0] function should be used. Determine the setting for CSC_SCALE[1:0] and adjust coefficients, if necessary. Program the coefficient values. Convert the float point coefficients into 12-bit fixed decimal format. Convert into binary format, using twos complement for negative values. • Program A1 to A3, B1 to B3, C1 to C3. Program the offset values. Depending on the type of CSC, offsets may have to be used. • Program A4, B4, C4. CSC Example The following set of equations gives an example of a conversion from a gamma corrected RGB signal into a YCbCr color space signal. A1[12 : 0] A2[12 : 0] A3[12 : 0] + In _ B × + In _ C × + A4[12 : 0] × 2 CSC _ scale Out _ A = In _ A × 4096 4096 4096 B1[12 : 0] B2[12 : 0] B3[12 : 0] Out _ B = In _ A × + In _ B × + In _ C × + B4[12 : 0] × 2 CSC _ scale 4096 4096 4096 C1[12 : 0] C2[12 : 0] C3[12 : 0] Out _ C = In _ A × + In _ B × + In _ C × + C4[12 : 0] × 2 CSC _ scale 4096 4096 4096 Note: The original equations give offset values of 128 for the Pr and Pb components. The value of 128 equates to half the range on an 8-bit system. It must be noted that the CSC operates on a 12-bit range. The offsets, therefore, must be changed from 128 to half the range of a 12-bit system, which equates to 2048. The maximum range for each equation, that is, each output data path, can only be [0 ... 1] or [−0.5 ... +0.5]. Equations with a larger gain must be scaled back into range. The gain error can be compensated for in the gain stage of the follow on blocks. Rev. 0 | Page 99 of 184 UG-438 Hardware User Guide The ranges of the three equations are shown in Table 40. Table 40. Equation Ranges Equation Y Pb Pr Minimum Value 0+0+0=0 (−0.34) + (−0.17) = −0.51 (−0.43) + (−0.08) = −0.51 Maximum Value 0.59 + 0.3 + 0.11 = 1 0.51 0.51 Range [0 … 1] = 1 [−0.51 …+ 0.51] = 1.02 [−0.51 … +0.51] = 1.02 As can be seen from this table, the range for the Y component fits into the CSC operating range. However, the Pb and Pr ranges slightly exceed the range. To bring all equations back into the supported range, they should be scaled back by 1/1.02. If equations fall outside the supported range, overflow or underflow can occur and undesirable wrap around effects (large number overflowing to small ones) can happen. Y= 0.59 0. 3 0.11 ×G + ×R + × B = 0.58 × G + 0.29 × R + 0.11× B 1.02 1.02 1.02 Pb = −0.34 −0.17 0.51 ×G + ×R + × B + 2048 = −0.33 × G − 0.17 × R + 0.5 × B + 2048 1.02 1.02 1.02 Pr = −0.43 0.51 −0.08 ×G + ×R + × B + 2048 = −0.42 × G + 0.5 × R − 0.08 × B + 2048 1.02 1.02 1.02 Note that the scaling of the dynamic range does not affect the static offset. Check the Value of Each Coefficient The maximum value for each coefficient on its own can only be within the range of −4096/+4096 to 4095/4096, which equals [−1... +0.999755859375]. Values outside this range do not fit into the 12-bit fixed point format used to program the coefficients. If the value of one or more coefficients after scaling of the overall equation exceeds the supported coefficient range, the CSC_SCALE[1:0] should be set. With the CSC_SCALE[1:0] set high, all coefficients must be scaled by half, which makes them fit into the given coefficient range. The overall outputs of the CSC are gained up by a fixed value of two, thus compensating for the scaled down coefficients. In the preceding example, each coefficient on its own is within the range of − 4096 4095 ≤ Coeff ≤ 4096 4096 Therefore, all coefficients can be programmed directly, and the CSC_SCALE[1:0] bits should be set to 0. Notes • • • To achieve a coefficient value of 1.0 for any given coefficient, CSC_SCALE should be set high and the coefficient should actually be programmed to a value of 0.5. Otherwise, the largest value would be 4095/4096 = 0.9997, which is not exactly 1. While this value could be interpreted as a 1, it is recommended to use the value of 0.5 and the CSC_SCALE bit for maximum accuracy. For very large coefficient values, for example, 2.58, a combination of CSC_SCALE[1:0] and equation scaling should be used. Set CSC_SCALE high (2.58/2 = 1.29) and scale the overall equation by slightly more than 1.28 (coefficient falls within the supported range of [−0.999 … +0.999]). Rev. 0 | Page 100 of 184 Hardware User Guide UG-438 CSC in Pass-Through Mode It is possible to configure the CP CSC in a pass-through mode. In this mode, the CP CSC is used but does not alter the data it processes. The CP CSC pass-through mode is obtained using the following settings: 1. 2. 3. Set MAN_CP_CSC_EN to 1’b1. Set CSC_COEFF_SEL[3:0] to 4’b0000. Leave the following registers from the CP map at the default: CSC_SCALE = 1 (default value) A4 = A3 = A2 = 0x000 (default value) B4 = B3 = B1 = 0x000 (default value) C4 = C2 = C1 = 0x000 (default value) A1 = B2 = C3 = 0x800 (default value) Note: The DPP CSC is always in pass-through mode unless the ADV7610 is processing an RGB input, outputting this input in the RGB color space and VID_ADJ_EN is enabled. COLOR CONTROLS The ADV7610 has a color control feature that can adjust the brightness, contrast, saturation, and hue properties. VID_ADJ_EN, Addr 44 (CP), Address 0x3E[7] Video adjustment enable. This control selects whether or not the color controls feature is enabled. The color controls feature is configured via the parameters CP_CONTRAST[7:0], CP_SATURATION[7:0], CP_BRIGHTNESS[7:0] and CP_HUE[7:0]. The CP CSC must also be enabled for the color controls to be effective. Function VID_ADJ_EN 0 (default) 1 Description Disable color controls Enable color controls CP_CONTRAST[7:0], Addr 44 (CP), Address 0x3A[7:0] A control to set the contrast. This field is a unsigned value represented in a 1.7 binary format. The MSB represents the integer part of the contrast value, which is either 0 or 1. The seven LSBs represent the fractional part of the contrast value. The fractional part has the range [0 to 0.99]. This control is functional if VID_ADJ_EN is set to 1. Function CP_CONTRAST[7:0] 00000000 10000000 (default) 11111111 Description Contrast set to minimum Default Contrast set to maximum CP_SATURATION[7:0], Addr 44 (CP), Address 0x3B[7:0] A control to set the saturation. This field is an unsigned value represented in a 1.7 binary format. The MSB represents the integer part of the contrast value, which is either 0 or 1. The seven LSBs represent the fractional part of the saturation value. The fractional part has a [0 to 0.99] range. This control is functional if VID_ADJ_EN is set to 1. Function CP_SATURATION[7:0] 00000000 10000000 (default) 11111111 Description Saturation set to minimum Default Saturation set to maximum Rev. 0 | Page 101 of 184 UG-438 Hardware User Guide CP_BRIGHTNESS[7:0], Addr 44 (CP), Address 0x3C[7:0] A control to set the brightness. This field is a signed value. The effective brightness value applied to the luma is obtained by multiplying the programmed value CP_BRIGHTNESS with a gain of 4. The brightness applied to the luma has a range of [−512 to +508]. This control is functional if VID_ADJ_EN is set to 1. Function CP_BRIGHTNESS[7:0] 00000000 (default) 01111111 11111111 Description The offset applied to the luma is 0. The offset applied to the luma is 508. This value corresponds to the brightness setting. The offset applied to the luma is −512. This value corresponds to the darkest setting. CP_HUE[7:0], Addr 44 (CP), Address 0x3D[7:0] A control to set the hue. This register represents an unsigned value that provides hue adjustment. Following the control processes, Cb and Cr stream as follows: Cb_out = Cb × cos(hue) + Cr × sin(hue) Cr_out = Cr × cos(hue) − Cb × sin(hue) It allows for rotating hue by any angle <0°; 360°); that is, by any angle from 0° up to 360°, excluding 360°. This control is functional if VID_ADJ_EN is set to 1. Function CP_HUE[7:0] 0x00 (default) 0x40 0x80 0xC0 Description A hue of 0° is applied to the chroma A hue of 90° is applied to the chroma A hue of 180° is applied to the chroma A hue of 270° is applied to the chroma Rev. 0 | Page 102 of 184 Hardware User Guide UG-438 COMPONENT PROCESSOR COMPONENT PROCESSING STANDARD IDENTIFICATION (STDI) SYNC PROCESSING CHANNEL HS/VS/F OUTPUT SYNC EXTRACTOR VIDEO DATA CHA, CHB, AND CHC OUTPUT DELAY DIGITAL FINE CLAMP GAIN CONTROL OFFSET ADDER CP CSC AV CODE INSERTION MEASUREMENT BLOCK (≥I2C) VIDEO DATA PROCESSING BLOCK ACTIVE PEAK AND HSYNC DEPTH 10884-040 VIDEO DATA CHA, CHB, AND CHC INPUT Figure 34. Component Processor Block Diagram INTRODUCTION TO THE COMPONENT PROCESSOR A simplified block diagram of the component processor (CP) on the ADV7610 is shown in Figure 34. Data is supplied to the CP from the data preprocessor (DPP). The CP circuitry is activated under the control of PRIM_MODE[3:0] and VID_STD[5:0]. The CP is activated for the following modes of operation: • • • • Manual and automatic gain control Manual offset correction Saturation Insertion of timing codes and blanking data The CP also has the following capabilities: • • • Generates HSync, VSync, FIELD, and data enable (DE) timing reference outputs Color space conversion Color control adjustment CLAMP OPERATION The CP contains a digital fine clamp block. Its main purposes is to allow a clamp to operate even if the input signal is coming from a digital source The digital fine clamp operates in three separate feedback loops, one for each channel. The incoming video signal level is measured at the back porch. The level error, that is, clamp error, is compensated for by subtracting or adding a digital number to the data stream. The digital clamp loop can be operated in an automatic or a manual mode with the following options: • • • • The clamp values for Channel B and Channel C can be set manually. This is the recommended mode. The clamp value is determined automatically on a line-by-line basis. The clamp loops can be frozen. This means that the currently active offsets will no longer be updated but will be applied permanently. The clamp value for channel A can be set manually (static value). Note: The target clamp level for black input is a digital code of 0. This is to facilitate the highest possible signal to noise ratio (SNR). Some interfaces, for example, ITU-R. BT656, require black to correspond to a value other than 0. To facilitate this, there is an additional independent offset adder block after the gain multipliers for which separate fixed offset values can be supplied. Refer to the CP Offset Block section for additional information. Rev. 0 | Page 103 of 184 UG-438 Hardware User Guide CLMP_FREEZE, Addr 44 (CP), Address 0x6C[5] Stops the digital fine clamp loops for Channel A, Channel B, and Channel C from updating. Function CLMP_FREEZE 0 (default) 1 Description Clamp value updated on every active video line Clamp loops are stopped and not updated CLMP_A_MAN, Addr 44 (CP), Address 0x6C[7] Manual clamping enable for Channel A. Function CLMP_A_MAN 0 (default) 1 Description Ignore internal digital fine clamp loop result. Use CLMP_A[11:0]. Use the digital fine clamp value determined by the on-chip clamp loop. CLMP_A[11:0], Addr 44 (CP), Address 0x6C[3:0]; Address 0x6D[7:0] Manual clamp value for Channel A. This field is an unsigned 12-bit value to be subtracted from the incoming video signal. This value programmed in this register is effective if the CLMP_A_MAN is set to 1. To change the CLMP_A[11:0], Register Address 0x6C and Register Address 0x6D must be updated with the desired clamp value written to in this order and with no other I2C access in between. Function CLMP_A[11:0] 0x000 (default) … 0xFFF Description Minimum range … Maximum range To facilitate an external clamp loop for Channel B and Channel C, the internal clamp value determined by the digital fine clamp block can be overridden by manual values programmed in the CP map. Both Channel B and Channel C are either in manual or automatic mode. There is no individual control for them. The corresponding control values are CLMP_BC_MAN, CLMP_B[11:0], CLMP_C[11:0]. CLMP_BC_MAN, Addr 44 (CP), Address 0x6C[6] Manual clamping enable for Channel B and Channel C. Function CLMP_BC_MAN 0 (default) 1 Description Ignore internal digital fine clamp loop result. Use CLMP_B[11:0] for Channel B and CLMP_C[11:0] for Channel C. Use the digital fine clamp value determined by the on-chip clamp loop. CLMP_B[11:0], Addr 44 (CP), Address 0x6E[7:0]; Address 0x6F[7:4] Manual clamp value for Channel B. This field is an unsigned 12-bit value to be subtracted from the incoming video signal. This value programmed in this register is effective if the CLMP_BC_MAN is set to 1. To change the CLMP_B[11:0], Register Address 0x6E and Register Address 0x6F must be updated with the desired clamp value written to in this order and with no other I2C access in between. Function CLMP_B[11:0] 0x000 (default) … 0xFFF Description Minimum range … Maximum range Rev. 0 | Page 104 of 184 Hardware User Guide UG-438 CLMP_C[11:0], Addr 44 (CP), Address 0x6F[3:0]; Address 0x70[7:0] Manual clamp value for Channel C. This field is an unsigned 12-bit value to be subtracted from the incoming video signal. This value programmed in this register is effective if the CLMP_BC_MAN is set to 1. To change the CLMP_C[11:0], Register Address 0x6F and Register Address 0x70 must be updated with the desired clamp value written to in this order and with no other I2C access in between. Function CLMP_C[11:0] 0x000 (default) … 0xFFF Description Minimum range … Maximum range CP GAIN OPERATION The digital gain block of the CP consists of three multipliers in the data paths of Channel A, Channel B, and Channel C, as well as one single automatic gain control loop. The gain control can be operated in manual or automatic mode. Features of Manual Gain Control The gain values for the three channels can be programmed separately via I2C registers. This is the recommended mode. Features of Automatic Gain Control The gain value is determined automatically, based on a signal with an embedded horizontal synchronization pulse on Channel A. The automatic gain control loop can be frozen, for example, after settling. The gain value inputs are controlled via the OP_656_RANGE bit. Manual Gain and Automatic Gain Control Selection Figure 35 shows how the gain is applied to the video data processed by the CP section. The following gain configurations are available: • • Automatic gain configuration in HDMI mode This configuration is enabled by setting AGC_MODE_MAN to 0 and by setting the part in HDMI mode via PRIM_MODE[3:0] and VID_STD[5:0]. In that case, the gain applied to the video data depends on the input and output range configuration. The input range is set by control register INP_COLOR_SPACE and the read back register HDMI_COLORSPACE[3:0] as per Table 41. The output color space is determined the control bit OP_656_RANGE. Manual gain configuration This configuration is enabled by setting AGC_MODE_MAN to 1 and GAIN_MAN to 1. In this case the gain applied to the video data processed by the CP core is configured via the control registers A_GAIN[9:0], B_GAIN[9:0] and C_GAIN[9:0]. Table 41. Input Ranges for HDMI Modes INP_COLOR_SPACE 0b0000 0b0001 0b0010 0b0011 0b0100 0b0101 0b0110 0b0111 0b1111 0b1000 to 0b1110 Input Range 16 to 235 0 to 255 16 to 235 16 to 235 0 to 255 0 to 255 0 to 255 0 to 255 16 to 235 if HDMI_COLORSPACE = 0b000 0 to 255 if HDMI_COLORSPACE = 0b001 16 to 235 if HDMI_COLORSPACE = 0b010 16 to 235 if HDMI_COLORSPACE = 0b011 0 to 255 if HDMI_COLORSPACE = 0b100 0 to 255 if HDMI_COLORSPACE = 0b101 0 to 255 if HDMI_COLORSPACE = 0b110 0 to 255 if HDMI_COLORSPACE = 0b111 Reserved Rev. 0 | Page 105 of 184 UG-438 Hardware User Guide NO YES AGC_MODE_MAN GAIN_MAN NO HDMI_MODE YES NO YES INPUT RANGE OP_656_RANGE GAIN OP_656_RANGE GAIN 0 (0 TO 255 OUTPUT) 1 0 (0 TO 255 OUTPUT) (255 – 0 + 1) × 16/1344 = 3.047 1 (16 TO 235 Y/RGB 16 TO 240 CrCb) (235 – 16 + 1) × 16/1344 = 2.617 0 TO 255 1 (16 TO 235 Y/RGB (235 – 16)/255 = 0.859 16 TO 240 CrCb) SET GAIN BASED ON A/B/C_GAIN[9:0] VALUE AGC ACTIVE SSPD DETECTED EMBEDDED SYNCS?? OP_656_RANGE GAIN 0 (0 TO 255 OUTPUT) (255 – 0 + 1) × 16/1344 = 3.047 1 (16 TO 235 Y/RGB 16 TO 240 CrCb) (235 – 16 + 1) × 16/1344 = 2.617 255(255 – 16) 0 (0 TO 255 OUTPUT) = 1.164 16 TO 235 1 (16 TO 235 Y/RGB 16 TO 240 CrCb) NO 1 Figure 35. CP Automatic Gain Controls AGC_MODE_MAN, Addr 44 (CP), Address 0x73[6] A control to set how the gains for all three channels are configured. Function AGC_MODE_MAN 0 (default) 1 Description The gain is dependent on the type of input and OP_656_RANGE. Gain operation controlled by GAIN_MAN. Manual Gain Control By setting the GAIN_MAN bit, the gain factors for Channel A, Channel B, and Channel C are no longer taken from the AGC, but are replaced by three dedicated I2C registers. Using these factors with the HSD_FB[11:0] register, it is possible to implement an off-chip AGC if desired. The range for the gain is [0…3.999]. The A_GAIN[9:0], B_GAIN[9:0], C_GAIN[9:0] registers are in 2.8 binary format and can be set as shown in Equation 8, CP manual gain. X_GAIN[9:0] = floor(GAIN × 256) (7) where: 0 ≤ GAIN < 4. floor( ) is the floor function that returns the largest integer not greater than its input parameter. X refers to A, B, and C. Table 42. Example Example Gaindec 0.5 0.98887 2.5 A_GAIN[9:0] 0x80 0xFD 0x280 GAIN_MAN, Addr 44 (CP), Address 0x73[7] Enables the gain factor to be set by the AGC or manually. Function GAIN_MAN 0 (default) 1 Description AGC controls the gain for all three channels. Manual gains are used for all three channels. Rev. 0 | Page 106 of 184 10884-041 YES Hardware User Guide UG-438 A_GAIN[9:0], Addr 44 (CP), Address 0x73[5:0]; Address 0x74[7:4] A control to set the manual gain value for Channel A. This register is an unsigned value in a 2.8 binary format. To change A_GAIN[9:0], the register at Address 0x73 and Address 0x74 must be written to in this order with no I2C access in between. Function A_GAIN[9:0] 0x000 0x100 (default) 0x3FF Description Gain of 0 Unity gain Gain of 3.99 B_GAIN[9:0], Addr 44 (CP), Address 0x74[3:0]; Address 0x75[7:2] A control to set the manual gain value for Channel B. This register stores an unsigned value in a 2.8 binary format. To change B_GAIN[9:0], the register at Address 0x74 and Address 0x75 must be written to in this order with no I2C access in between. Function B_GAIN[9:0] 0x000 0x100 (default) 0x3FF Description Gain of 0 Unity gain Gain of 3.99 C_GAIN[9:0], Addr 44 (CP), Address 0x75[1:0]; Address 0x76[7:0] A control to set the manual gain value for Channel C. This register stores an unsigned value in a 2.8 binary format. To change C_GAIN[9:0], the register at Address 0x75 and Address 0x76 must be written to in this order with no I2C access in between. Function C_GAIN[9:0] 0x000 0x100 (default) 0x3FF Description Gain of 0 Unity gain Gain of 3.99 HSD_FB[11:0], Addr 44 (CP), Address 0xEB[3:0]; Address 0xEC[7:0] (Read Only) A readback for the measured value of HSync depth on Channel A, after gain multiplier, for external feedback loop. The value is presented in twos complement form. This means that only a standard adder is needed to subtract the actual HSync depth (as per HSD_FB) from a nominal value, as the HSD_FB value is already in negative format. Function HSD_FB[11:0] xxxxxxxxxxxx Description Readback value Rev. 0 | Page 107 of 184 UG-438 Hardware User Guide Manual Gain Filter Mode The ADV7610 provides a special filter option for the manual gain mode. This is functional only when manual gain is enabled. The purpose of this filter is a smoothing mechanism when the manual gain value is updated continuously by an external system based on either external or readback conditions in the ADV7610. The filter designed is an IIR filter with a transfer function of the form: YN = (1 − A) × YN − 1 + A × XN where A is the filter coefficient. The values possible for A can vary from 1 (no filtering) to 1/128K (K = 1024). The value of coefficient A is chosen by programming CP_GAIN_FILT[3:0]. CP_GAIN_FILT[3:0], Addr 44 (CP), Address 0x84[7:4] A control to set the coefficient A of the IIF filter to filter the gain applied to the video signal when the gain is manually set. The value set in this register is effective only when manual gain is enabled. The filter is designed as an IIR filter with a transfer function of the form Y[N] = (1 − A) × y[N − 1] + A × X[N] Function CP_GAIN_FILT[3:0] 0000 (default) 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 All other values Description No filtering, that is, coefficient A = 1. Coefficient A = 1/128 lines. Coefficient A = 1/256 lines. Coefficient A = 1/512 lines. Coefficient A = 1/1024 lines. Coefficient A = 1/2048 lines. Coefficient A = 1/4096 lines. Coefficient A = 1/8192 lines. Coefficient A = 1/16,384 lines. Coefficient A = 1/32,768 lines. Coefficient A = 1/65,536 lines. Coefficient A = 1/131,072 lines. Reserved. Do not use. Other Gain Controls OP_656_RANGE, IO, Address 0x02[2] A control to set the output range of the digital data. It also automatically the data saturator setting. Function OP_656_RANGE 0 (default) 1 Description Enables full output range (0 to 255) Enables limited output range (16 to 235) Table 43. OP_656_RANGE Description for HDMI Receiver Input Mode Input Range 0 to 255 16 to 235 OP_656_RANGE 0 (0 to 255 output) 1 (16 to 235 RGB output, 16 to 240 CrCb output) 0 (0 to 255 output) 1 (16 to 235 RGB output, 16 to 240 CrCb output) Gain 1 (235 − 16)/255 = 0.859 255/(235 − 16) = 1.164 1 Table 44. OP_656_RANGE Description for Analog Front-End Input Mode OP_656_RANGE 0 (0 to 255 output) 1 (16 to 235 RGB output, 16 to 240 CrCb output) Gain (255 − 0 + 1) × 16/1792 = 2.29 (235 − 16 + 1) × 16/1792 = 1.96 Rev. 0 | Page 108 of 184 Hardware User Guide UG-438 ALT_DATA_SAT, IO, Address 0x02[0] A control to disable the data saturator that limits the output range independently of OP_656_RANGE. This bit is used to support extended data range modes. Function ALT_DATA_SAT 0 (default) 1 Description Data saturator enabled or disabled according to OP_656_RANGE setting Reverses OP_656_RANGE decision to enable or disable the data saturator CP OFFSET BLOCK The offset block consists of three independent adders, one for each channel. Using the A_OFFSET, B_OFFSET, and C_OFFSET registers, a fixed offset value can be added to the data. The actual offset used can come from two different sources: The ADV7610 includes an automatic selection of the offset value, dependent on the CSC mode that is programmed by the user. The RGB_OUT and OP_656_RANGE bits are used to derive offset values. A manual, user defined value can be programmed. When the offset registers (A_OFFSET, B_OFFSET, and C_OFFSET) contain the value 0x3FF (reset default), the offset used is determined using the automatic selection process. For any other value in the offset registers, the automatic selection is disabled and the userprogrammed offset value is applied directly to the video. Refer to the flowchart in Figure 36. NO YES I2C REGISTER VALUE OFFSET_A/B/C[9:0] == 0x3FF USE VALUE FROM I2C REGISTER OFFSET_A/B/C[9:0] DIRECTLY OFFSET RGB_OUT = 1 RGB_OUT = 0 OP_656_RANGE = 1 OP_656_RANGE = 0 OP_656_RANGE = 1 OP_656_RANGE = 0 A 64dec 0dec 64dec 0dec B 64dec 0dec 512dec 512dec C 64dec 0dec 512dec 512dec 10884-042 CHANNEL Figure 36. Channel A, Channel B, and Channel C Automatic Value Selection For RGB type output data, the three offset values should be programmed to 0 or 64 (desired code output for black video). For YPbPr type output data, A_OFFSET[9:0] should be set to 64 (desired code for black); B_OFFSET[9:0] and C_OFFSET[9:0] (for Pr and Pb) are typically set to 512 (midrange). Notes • • • • Adding an excessive offset onto the data will result in clipping of the signal. The offset value can only be positive; it is an unsigned number. ADV7610 employs sequencers for the offset values that prohibit intermediate wrong values to be applied. The I2C sequencer treats the three offset values as separate entities. To update all three offset values, a single sweep of I2C writes to the CP map, Register 0x77, Register 0x78, Register 0x79, and Register 0x7A is sufficient. Rev. 0 | Page 109 of 184 UG-438 Hardware User Guide A_OFFSET[9:0], Addr 44 (CP), Address 0x77[5:0]; Address 0x78[7:4] A control to set the manual offset for Channel A. This field stores an unsigned value. To change A_OFFSET[9:0], Register Address 0x77 and Register Address 0x78 must be written to in this order with no I2C access in between. Function A_OFFSET[9:0] 0x3FF (default) Any other value Description Auto offset to Channel A Channel A offset Note that to change the A_OFFSET[9:0] value, Register 0x77 and Register 0x78 must be written to in this order with no other I2C access in between. B_OFFSET[9:0], Addr 44 (CP), Address 0x78[3:0]; Address 0x79[7:2] A control to set the manual offset for Channel B. This field stores an unsigned value. To change B_OFFSET[9:0], Register Addresses 0x78 and Register Address 0x79 must be written to in this order with no I2C access in between. Function B_OFFSET[9:0] 0x3FF (default) Any other value Description Auto offset to Channel B Channel B offset Note: To change the A_OFFSET[9:0] value, register 0x77 and 0x78 must be written to in this order with no other I2C access in between. C_OFFSET[9:0], Addr 44 (CP), Address 0x79[1:0]; Address 0x7A[7:0] A control to set the manual offset for Channel C. This field stores an unsigned value. To change C_OFFSET[9:0], Register Address 0x79 and Register Address 0x7A must be written to in this order with no I2C access in between. Function C_OFFSET[9:0] 0x3FF (default) Any other value Description Auto offset to Channel C Channel C offset Note: To change the A_OFFSET[9:0] value, Register 0x77 and Register 0x78 must be written to in this order with no other I2C access in between. AV CODE BLOCK The AV code block is used to insert AV codes into the video data stream. The codes follow the standards outlined in ITU-R BT.656-4. The following functions are supported by this block: • • • • • AV code insertion can be enabled or disabled. Data between the end of active video (EAV) and the start of active video (SAV) can be blanked, for example, overwritten with default values. This function can be enabled or disabled. In addition, the default blanking value can be set for RGB or YPbPr. AV codes can be output on all channels or spread across the Y and PrPb buses for 20-bit output modes. F and V bits within the codes can be inserted directly or can be inverted before insertion. The position of the codes within the data stream (timing of the insertion) can be set to a default or can be slaved off the signal from the selected HS input pin. The insertion point for the AV codes is predetermined by default and is adjusted automatically to suit the current video standard as per the PRIM_MODE[3:0] and VID_STD[5:0] settings. To cater for nonstandard signals, however, the AV code insertion point can also be taken off the HSync signal before it goes to the selected HS input pin. This gives the user great flexibility since the HSync signal position can be programmed to quite a wide range with LLC accuracy. Rev. 0 | Page 110 of 184 Hardware User Guide UG-438 AVCODE_INSERT_EN, IO, Address 0x05[2] A control to select AV code insertion into the data stream. Function AVCODE_INSERT_EN 0 1 (default) Description Does not insert AV codes into data stream Inserts AV codes into data stream AV_POS_SEL, Addr 44 (CP), Address 0x7B[2] A control to select AV codes position. Function AV_POS_SEL 0 1 (default) Description SAV code at HS falling edge and EAV code at HS rising edge Uses predetermined (default) positions for AV codes AV_INV_V, Addr 44 (CP), Address 0x7B[6] A control to invert V bit in AV codes. Function AV_INV_V 0 (default) 1 Description Do not invert V bit polarity before inserting it into the AV code Invert V bit polarity before inserting it into the AV code AV_INV_F, Addr 44 (CP), Address 0x7B[7] A control to invert the F bit in the AV codes. Function AV_INV_F 0 (default) 1 Description Inserts the F bit with default polarity Inverts the F bit before inserting it into the AV code DATA_BLANK_EN, IO, Address 0x05[3] A control to blank data during video blanking sections. Function DATA_BLANK_EN 0 1 (default) Description Do not blank data during horizontal and vertical blanking periods Blank data during horizontal and vertical blanking periods DE_WITH_AVCODE, Addr 44 (CP), Address 0x7B[0] A control to insert AV codes in relation to the DE output signal. Function DE_WITH_AVCODE 0 1 (default) Description AV codes locked to default values. DE position can be moved independently of AV codes. Inserted AV codes moves in relation to DE position change. REPL_AV_CODE, IO, Address 0x05[1] A control to select the duplication of the AV codes and insertion on all data channels of the output data stream. Function REPL_AV_CODE 0 (default) 1 Description Outputs complete SAV/EAV codes on all channels, Channel A, Channel B, and Channel C. Spreads AV code across the three channels. Channel B and Channel C contain the first two ten bit words, 0x3FF and 0x000. Channel A contains the final two 10-bit words 0x00 and 0xXYZ. Rev. 0 | Page 111 of 184 UG-438 Hardware User Guide REPL_AV_CODE = 1 CHANNEL A 3FF 000 000 AV Y 000 AV Y CHANNEL B 3FF 000 000 AV Pb 3FF 000 Pb CHANNEL C 3FF 000 000 AV Pr 3FF 000 Pr AV CODE SECTION AV CODE SECTION 10884-043 REPL_AV_CODE = 0 Figure 37. AV Code Output Options (CP) SWAP_SPLIT_AV, Addr 44 (CP), Address 0xC9[2] A control to swap the luma and chroma AV codes in DDR modes. Function SWAP_SPLIT_AV 0 1 (default) Description Swap the luma and chroma AV codes in DDR mode. Do not swap the luma and chroma AV codes in DDR mode. CP DATA PATH FOR HDMI MODES Figure 38 and Figure 39 depict the data path of the video for HDMI mode. These figures depict the gains and offsets applied when using the automatic control, OP_656_RANGE, and the manual options for setting the clamp level, gain, and offset. The I2C settings are detailed in Table 45 for use when processing extended range video signals with blacker than black and/or whiter than white video levels. Table 45. Settings Required to Support Extended Range Video Input I2C Setting/Mode OP_656_RANGE ALT_DATA_SAT Analog Modes 1 1 HDMI Mode YUV 1 1 HDMI Mode RGB [0 to 255] 0 0 HDMI Mode RGB [16 to 235] 1 1 Pregain Block To compensate for signal attenuation in the analog front end of the ADV7610 and input buffer gain, a pregain block is provided in the CP path. The pregain block is controlled by CP_MODE_GAIN_ADJ[7:0], which represents an unsigned value in a 1.7 binary format. The range of CP_MODE_GAIN_ADJ[7:0] is 0 to 1.99. The MSB of CP_MODE_GAIN_ADJ[7:0] represents the integer part of the pregain value while the 7 LSBs represents the fractional part of the pregain value. CP_MODE_GAIN_ADJ[7:0], Addr 44 (CP), Address 0x40[7:0] Pregain adjustment to compensate for the gain of the analog front end. This register stores a value in a 1.7 binary format. Function CP_MODE_GAIN_ADJ[7:0] 0xxxxxxx 10000000 1xxxxxxx Description Gain of (0 + (xxxxxxx/128)) Default pregain (pregain of 1.0) Gain of (1 + (xxxxxxx/128)) CP_MODE_GAIN_ADJ_EN, Addr 44 (CP), Address 0x3E[2] A control to enable pregain. Function CP_MODE_GAIN_ADJ_EN 0 (default) 1 Description The pregain block is bypassed. The pregain block is enabled. Rev. 0 | Page 112 of 184 Hardware User Guide UG-438 HDMI INPUT 1 HDMI MEASURED VALUE CLAMP MEASUREMENT 2 12-BIT UNSIGNED 0 CLMP_A[11:0] RGB_OUT 0 1 1 RGB 12'd0 0 AUTO VALUE HDMI_CLMP_ENABLE 3 AGC_MODE_MAN GAIN_MAN A_GAIN[9:0] 10'd220 (×0.86) [0 TO 256]-IN [16 TO 235]-OUT 10'd256 (×1.00) [0 TO 256]-IN [0 TO 255]-OUT [16 TO 235]-IN [16 TO 235]-OUT 10'd298 (×1.16) [16 TO 235]-IN [16 TO 255]-OUT 13-BIT SIGNED PREGAIN 1 CP_OP_656_SEL* 0 1 1 × 0 1 × 10-BIT 0 1 CLAMP CLMP_A_MAN 1 12'd2056 (16 @ 8-BIT) YUV – 12-BIT GAIN 10-BIT AUTO-VALUE 0 4 0 15-BIT SIGNED RGB_OUT A_OFFSET[9:0] 1 10'd64 (16 @ 8-BIT) 1 10'd0 0 10'd64 (16 @ 8-BIT) 1 10'd0 0 RGB + 0 1 0 OFFSET 10-BIT 5 AUTO VALUE YUV 235 @ 8-BIT SATURATOR 12-BIT UNSIGNED ALT_DATA_SAT* RGB_OUT 16 @ 8-BIT A_OFFSET[9:0] == 10'h3FF ALT_DATA_SAT* 0 1 6 RGB_OUT* n'dm ALT_DATA_SAT* BLANK INSERTION 2 AUTOMATIC I C CONTROLS I2C REGISTER INTERNAL SIGNAL CHANNEL A (Y) VALUE IS DIFFERENT CHANNEL B/C (U/V) VALUE n BIT VALUE m IN DECIMAL NOTATION AV_BLANK_EN Figure 38. CP Data Path Channel A (Y) for HDMI Mode Rev. 0 | Page 113 of 184 0 1 10884-044 NOTES TEXT* TEXT TEXT VALUE UG-438 Hardware User Guide HDMI INPUT 1 HDMI MEASURED VALUE CLAMP MEASUREMENT 2 12-BIT UNSIGNED 0 CLMP_B[11:0]/CLMP_C[11:0] 0 1 RGB_OUT 1 RGB 12'd0 0 AUTO VALUE HDMI_CLMP_ENABLE 3 AGC_MODE_MAN GAIN_MAN B_GAIN[9:0]/C_GAIN[9:0] CP_OP_656_SEL* 10'd220 (×0.86) [0 TO 256]-IN [16 TO 235]-OUT 10'd256 (×1.00) [0 TO 255]-IN [0 TO 255]-OUT [16 TO 235]-IN [16 TO 235]-OUT 10'd298 (×1.16) [16 TO 235]-IN [16 TO 255]-OUT 13-BIT SIGNED PREGAIN 1 0 1 1 × 0 1 × 10-BIT 0 1 CLAMP CLMP_BC_MAN 1 12'd2048 (128 @ 8-BIT) YUV – 12-BIT GAIN 10-BIT AUTO VALUE 0 4 0 15-BIT SIGNED RGB_OUT B_GAIN[9:0]/C_GAIN[9:0] 1 10'd64 (16@8-BIT) 1 10'd0 0 10'd512 (128 @ 8-BIT) 1 10'd512 (128 @ 8-BIT) 0 RGB + 0 1 0 OFFSET 10-BIT 5 AUTO VALUE YUV 235 @ 8-BIT SATURATOR 12-BIT UNSIGNED ALT_DATA_SAT* RGB_OUT 16 @ 8-BIT B_OFFSET[9:0]/C_OFFSET[9:0] == 10'h3FF ALT_DATA_SAT* 0 1 6 RGB_OUT* n'dm ALT_DATA_SAT* BLANK INSERTION 2 AUTOMATIC I C CONTROLS I2C REGISTER INTERNAL SIGNAL CHANNEL A (Y) VALUE IS DIFFERENT CHANNEL B/C (U/V) VALUE n BIT VALUE m IN DECIMAL NOTATION AV_BLANK_EN Figure 39. CP Data Paths Channel B and Channel C for HDMI Mode Rev. 0 | Page 114 of 184 0 1 10884-045 NOTES TEXT* TEXT TEXT VALUE Hardware User Guide UG-438 SYNC PROCESSED BY CP SECTION The CP Core uses the HDMI section as its source of HSync, VSync and DE. Sync Routing from HDMI Section The CP section receives syncs from the HDMI section, as shown in Figure 40. PRIM_MODE[2] 0 HDMI HS 1 HS 1 PRIM_MODE[2] 0 1 POLARITY CORRECTION VS 1 STDI 1 HS_GR_PC VS_GR_PC HS_PC TO SYNC MUX VS_PC TO SYNC MUX 10884-046 HDMI VS Figure 40. External/HDMI Syncs Routing to CP Section Signals Routing to Synchronization Channels The ADV7610 has one synchronization channel consisting of one STDI section. When an HDMI input is applied, the HDMI core will generate HSync, VSync, and DE signals and supply them as input to the each synchronization channel shown in Figure 40. HSync from the HDMI block is denoted as HDMI_HS, and VSync from the HDMI block is denoted as HDMI_VS. DE from the HDMI block is not shown in Figure 40 as it is passed directly to the CP core without any processing when an HDMI input is selected. Standard Detection and Identification As shown in Figure 40, the synchronization channel also contains standard detection and identification (STDI) block. These monitor the synchronization signals to determine the video input standard. The STDI blocks perform four key measurements: • • • • Block Length CH1_BL[13:0] This is the number of 28.6363 MHz clock cycles (XTAL frequency) in a block of eight lines. From this, the time duration of one line can be concluded. Line count in Field CH1_LCF[10:0] The CH1_LCF[10:0] readback value is the number of lines between two VSyncs, that is, over one field measured by channel. Line count in VSYNC CH1_LCVS[4:0] The LCVS[4:0] readback value is the number of lines within one VSync period. Field Length CH1_FCL[12:0] This is the number of 28.6363 MHz clock cycles in a 1/256th of a field. Alternately, this value of FCL multiplied by 256 gives one field length count in 28.6363 MHz (XTAL) clocks. By interpreting these four parameters, it is possible to distinguish between the different types of input signals. Rev. 0 | Page 115 of 184 UG-438 Hardware User Guide In ADV7610, there are three operational modes for the STDI block: • • • Continuous mode: The STDI block performs continuous measurements on lock/unlock bases and updates the corresponding I2C registers based on the lock status bit (STDI_DVALID). Real-time continuous mode: The STDI block performs continuous measurement regardless of the lock/unlock bases and always updates real-time measurement data to the corresponding I2C registers. Single shot mode: The STDI block waits for a trigger (0 to 1 transition on CH1_TRIG_STDI) to start the measurements. Single shot mode can be useful in complex systems where the scheduling of functions is important. A data valid flag, CH1_STDI_DVALID, is provided, which is based on the status of the horizontal/vertical lock of the block and is held low during the measurements. The four parameters should only be read after the CH1_STDI_DVALID flag has gone high for the continuous/single shot mode. In real-time continuous mode, the ADV7610 allows the user to monitor the real-time timing measurement regardless of the CH1_STDI_DVALID flag. Refer to the STDI Readback Values section for information on the readback values. Notes • • • • Synchronization type pulses include horizontal synchronization, equalization and serration pulses. The CH1_TRIG_STDI flag is not self-clearing. The measurements are only started upon setting the CH1_TRIG_STDI flag. This means that after setting it, it must be cleared again by writing a 0 to it. This second write (to clear the flag) can be done at any time and does not have any effect on running measurements. It also does not invalidate previous measurement results. The ADV7610 only measures those parameters, but does not take any action based upon them. The part does not reconfigure itself. To avoid unforeseen problems in the scheduling of a system controller, the part merely helps to identify the input. Since real-time continuous mode provides the capability to monitor the real-time measurement data regardless of the block lock status, the user should be aware that the timing readback values may not be a valid readback measurement in this mode. CH1_STDI_CONT, Addr 44 (CP), Address 0x86[1] A control to set the synchronization source polarity detection mode for Sync Channel 1 STDI. Function CH1_STDI_CONT 0 1 (default) Description Sync Channel 1 STDI works in one-shot mode (triggered by a 0 to 1 transition on the CH1_TRIG_STDI bit) Sync Channel 1 STDI works in continuous mode BYPASS_STDI1_LOCKING, Addr 44 (CP), Address 0xF5[1] Bypass STDI locking for Sync Channel 1. Function BYPASS_STDI1_LOCKING 0 (default) 1 Description Update CH1_BL, CH1_LCF and CH1_LCVS only the sync Channel 1 STDI locks and CH1_STDI_DVALID is set to 1 Update CH1_BL, CH1_LCF,CH1_LCVS from the sync Channel 1 STDI as they are measured CH1_TRIG_STDI, Addr 44 (CP), Address 0x86[2] Trigger synchronization source and polarity detector for Sync Channel 1 STDI. A 0-to-1 transition in this bit restarts the auto-sync detection algorithm. This is not a self-clearing bit and must be set to 0 to prepare for next trigger. Function CH1_TRIG_STDI 0 (default) 1 Description Default value—transition 0 to 1 restarts auto-sync detection algorithm Transition 0 to 1 restarts auto-sync detection algorithm Rev. 0 | Page 116 of 184 Hardware User Guide UG-438 CH1_STDI_DVALID, Addr 44 (CP), Address 0xB1[7] (Read Only) This bit is set when the measurements performed by Sync Channel 1 STDI are completed. High level signals validity for CH1_BL, CH1_LCF, CH1_LCVS, CH1_FCL, and CH1_STDI_INTLCD parameters. To prevent false readouts, especially during signal acquisition, CH1_SDTI_DVALID only goes high after four fields with same length are recorded. As a result, STDI measurements can take up to five fields to finish. Function CH1_STDI_DVALID 0 (default) 1 Description Sync Channel 1 STDI measurements are not valid measurements. Sync Channel 1 STDI measurements are valid. CP_STDI_INTERLACED, IO, Address 0x12[4] (Read Only) A readback to indicate the interlaced status of the currently selected STDI block applied to the CP core. Function CP_STDI_INTERLACED 0 (default) 1 Description Selected STDI has detected a progressive input. Selected STDI has detected a interlaced input. CP_INTERLACED, IO, Address 0x12[3] (Read Only) A readback to indicate the interlaced status of the CP core based on configuration of video standard and INTERLACED bit in the CP map. Function CP_INTERLACED 0 (default) 1 Description CP core is processing the input as a progressive input. CP core is processing the input as a interlaced input. CP_PROG_PARM_FOR_INT, IO, Address 0x12[2] (Read Only) A readback to indicate if the CP core is processing the progressive standard, while the video standard and the INTERLACED bit in the CP map are configured for an interlaced standard. Function CP_PROG_PARM_FOR_INT 0 (default) 1 Description CP core is processing for a progressive standard while video standard and the INTERLACED bits are configured for an interlaced standard. CP core is processing for a progressive standard while video standard and the INTERLACED bits are configured for a progressive standard. CP_FORCE_INTERLACED, IO, Address 0x12[1] (Read Only) A readback to indicate forced-interlaced status of the CP core based on configuration of video standard and INTERLACED bit in the CP map. Function CP_FORCE_INTERLACED 0 (default) 1 Description Input is detected as interlaced and the CP is programmed in an interlaced mode via VID_STD[5:0]. Input is detected as progressive and the CP is programmed in an interlaced mode. Rev. 0 | Page 117 of 184 UG-438 Hardware User Guide Detailed Mechanism of STDI Block Horizontal/Vertical Lock Mechanism STDI Horizontal Locking Operation For the STDI horizontal locking operation, the STDI block compares adjacent line length differences (in XTAL clock cycles) with the programmed threshold. If 128 consecutive adjacent lines lengths are within the threshold, the STDI horizontally locks to the incoming video. LINE 3 – LINE4 ≤ THRESHOLD? LINE 1 – LINE2 ≤ THRESHOLD? LINE 1 LINE 2 LINE 3 LINE 5 – LINE6 ≤ THRESHOLD? LINE 4 LINE 5 LINE 6 LINE 7 LINE 8 LINE 128 LINE 129 LINE 2 – LINE3 ≤ THRESHOLD? 10884-047 LINE 4 – LINE 5 ≤ THRESHOLD? MONITORS 128 CONSECUTIVE LINES BEFORE STDI HORIZONTALLY “LOCKS” Figure 41. STDI Horizontal Locking Operation Once the STDI locks to the incoming video, it registers the first BL measurement (first eight lines) as latched data (absolute line length: L) and keeps monitoring and comparing each successive line length with the absolute line length (L/8). The STDI horizontally unlocks if 128 consecutive lines have a line length greater than the threshold. LINE 129 – L/8 ≤ THRESHOLD? LINE 131 – L/8 ≤ THRESHOLD? LINE 2 LINE 3 LINE 4 LINE 5 LINE 6 LINE 7 LINE 8 LINE 128 LINE 129 LINE 130 LINE 131 LINE 130 – L/8 ≤ THRESHOLD? L FIRST 8 BLOCKS OF LINE LENGTH = BL READBACK VALUE REGISTERED AS “ABSOLUTE LINE LENGTH” “L/8” ARE REGISTERED AS ABSOLUTE LINE LENGTH REFERENCE FOR EACH LINE AFTER STDI HORIZONTALLY LOCKS TO THE INCOMING VIDEO SIGNAL 10884-048 LINE 1 Figure 42. STDI HSync Monitoring Operation STDI Vertical Locking The STDI block compares adjacent field length differences and VSync lengths in line counts and compares them with a threshold. If four consecutive adjacent field lengths (LCF) and line counts in VSync (LCVS) are within the threshold, the STDI locks vertically to the incoming video. Rev. 0 | Page 118 of 184 Hardware User Guide UG-438 FIELD2 – FIELD3 ≤ THRESHOLD? FIELD4 – FIELD5 ≤ THRESHOLD? FIELD3 – FIELD4 ≤ THRESHOLD? FIELD 1 FIELD 2 FIELD 3 FIELD 4 FIELD 5 ACTIVE VIDEO ACTIVE VIDEO ACTIVE VIDEO ACTIVE VIDEO ACTIVE VIDEO VSYNC2 VSYNC1 VSYNC4 VSYNC3 FIELD 6 ACTIVE VIDEO VSYNC5 10884-049 FIELD1 – FIELD2 ≤ THRESHOLD? VSYNC1 – VSYNC2 ≤ THRESHOLD? VSYNC3 – VSYNC4 ≤ THRESHOLD? VSYNC2 – VSYNC3 ≤ THRESHOLD? VSYNC5 – VSYNC4 ≤ THRESHOLD? Figure 43. STDI Vertical Locking Operation Once the STDI locks to the incoming video, the STDI registers the latest field length/VSync length as latched data (absolute field length: F, absolute VSync length: V). The STDI keeps monitoring and comparing FIELD/VSync lengths with the respective absolute length (F, V) once vertically locked. The STDI vertically unlocks if four consecutive FIELD or VSync lengths are greater than the respective threshold. F LATCHED FIELD LENGTH FIELD5 – F ≤ THRESHOLD? FIELD6 – F ≤ THRESHOLD? FIELD1 FIELD2 FIELD3 FIELD4 FIELD5 ACTIVE VIDEO ACTIVE VIDEO ACTIVE VIDEO ACTIVE VIDEO ACTIVE VIDEO VSYNC2 VSYNC3 VSYNC4 F LATCHED VSYNC LENGTH VSYNC5 VSYNC5 – V ≤ THRESHOLD? 10884-050 VSYNC1 FIELD6 ACTIVE VIDEO Figure 44. STDI VSync Monitoring Operation CH1_BL[13:0], Addr 44 (CP), Address 0xB1[5:0]; Address 0xB2[7:0] (Read Only) A readback for the block length for Sync Channel 1. Number of crystal cycle cycles in a block of eight lines of incoming video. This readback is valid if CH1_STDI_DVALID is high. Function CH1_BL[13:0] xxxxxxxxxxxxxx Description Readback value CH1_LCVS[4:0], Addr 44 (CP), Address 0xB3[7:3] (Read Only) A readback for the Sync Channel 1 line count in a VSync. Number of lines in a VSync period measured on Sync Channel 1. The readback from this field is valid if CH1_STDI_DVALID is high. Function CH1_LCVS[4:0] xxxxx Description Readback value CH1_LCF[11:0], Addr 44 (CP), Address 0xA3[3:0]; Address 0xA4[7:0] (Read Only) A readback for the Sync Channel 1 line count in a field. Number of lines between two VSyncs measured on Sync Channel 1. The readback from this field is valid if CH1_STDI_DVALID is high. Function CH1_LCF[11:0] xxxxxxxxxxx Description Readback value Rev. 0 | Page 119 of 184 UG-438 Hardware User Guide CH1_FCL[12:0], Addr 44 (CP), Address 0xB8[4:0]; Address 0xB9[7:0] (Read Only) A readback for the Sync Channel 1 field count length. Number of crystal clock cycles between successive VSyncs measured by Sync Channel 1 STDI or in 1/256th of a field. The readback from this field is valid if CH1_STDI_DVALID is high. Function CH1_FCL[12:0] xxxxxxxxxxxxx Description Readback value CH1_STDI_INTLCD, Addr 44 (CP), Address 0xB1[6] (Read Only) Interlaced vs. progressive mode detected by Sync Channel 1 STDI. The readback from this register is valid if CH1_STDI_DVALID is high. Function CH1_STDI_INTLCD 0 (default) 1 Description Indicates a video signal on Sync Channel 1 with noninterlaced timing Indicates a signal on Sync Channel 1 with interlaced timing STDI Usage Figure 45 shows a flowchart of the intended usage of the STDI block. NO CONTINUOUS MODE? YES SET CH1_STDI_CONT TO 0 SET CH1_TRIG_STDI TO 0 ≥ 1 (POSITIVE TRANSITION ON BIT) TO START THE STDI STATE MACHINE SET CH1_STDI_CONT TO 1 STDI STATE MACHINE RUNS CONTINUOUSLY STDI BLOCK EXAMINES INPUT (FLAGS THIS BY SETTING CH1_STDI_DVALID TO 0) LOW READ AND CH1_STDI_DVALID HIGH END APPLICATION DETERMINES VIDEO STANARD AND PROGRAMS PRIM_MODE AND VID_STD ACCORDINGLY SOFTWARE FUNCTION OF SYSTEM CONTROLLER DECODER HARDWARE FUNCTION Figure 45. STDI Usage Flowchart Rev. 0 | Page 120 of 184 10884-051 END APPLICATION READS VIDEO DETECTION RESULTS CH1_BL[13:0], CH1_LCVS[4:0], CH1_LCF[10:0], AND CH1_FCL[12:0] Hardware User Guide UG-438 STDI Readback Values Table 46. STDI Readback Values for SD, PR, and HD Standard 720p SMPTE 296M 1125i SMPTE 274M 525p BT 1358 625p BT 1358 1250i BT 709/SMPTE 295 1125i SMPTE 274M 6 1125p SMPTE 274M 10 525i 625i CHx_BL[13:0] 28.63636 MHz XTAL 5091 6788 7270 7331 7331 8145 848 14560 14662 CHx_LCF[10:0] 750 562 to 563 525 625 625 562 to 563 1125 262 to 263 312 to 313 CHx_LCVS[4:0] 4 to 5 4 to 5 5 to 6 4 to 5 1 4 to 5 4 to 5 3 2 to 3 FCL[12:0] 28.63636 MHz XTAL 1868 1868 1868 2237 4474 1868 1868 1868 2237 Note: To obtain the expected values of BL or FL at any other XTAL frequency, use the formula in Equation 9, computation of expected BL and FCL for XTAL in use. BLXTAL_F1_MHz = BL28.63636MHz_XTAL × XTAL_FREQ/28.6363 (8) where XTAL_FREQ is the clock frequency of the XTAL used. Example: For SD525i at 24.576 MHz XTAL: BL = 14585 × 24.576/28.6363 ≈ 12,517 FL = 1868 × 24.576/28.6363 ≈ 1603 The values of LCF and LCVS do not change with the XTAL frequency. STDI Readback Values for GR Table 47. STDI Results for Graphics Standards Standard XGA 85 SXGA 60 XGA 75 XGA 70 SVGA 85 XGA 60 SVGA 72 SVGA 75 VGA 85 VGA 72 SVGA 60 VGA 75 SVGA 56 VGA 60 CHx_BL[13:0] 28.63636 MHz XTAL 3327 3571 3808 4048 4259 4726 4756 4878 5286 6042 6039 6098 6508 7272 CHx_LCF[10:0] 805 to 808 1063 to 1066 797 to 800 800 to 806 628 to 631 800 to 806 660 to 666 622 to 625 506 to 509 517 to 520 624 to 628 497 to 500 623 to 625 523 to 525 CHx_LCVS[4:0] 0 to 3 0 to 3 0 to 3 0 to 6 0 to 3 0 to 6 0 to 6 0 to 3 0 to 3 0 to 3 0 to 4 0 to 3 0 to 2 0 to 2 FCL[12:0] 28.63636 MHz XTAL 1316 1868 1493 1598 1316 1868 1554 1493 1316 1554 1868 1493 1997 1868 Note: To obtain the expected values of BL or FCL at any other XTAL frequency, use the formula shown in Equation 9. Example: For XGA75 at 24.576 MHz XTAL: BL = 3824 × 24.576/28.63636 ≈ 3282 FCL = 1493 × 24.576/28.63636 ≈ 1281 Figure 46 shows the parameters from Table 47 plotted against each other at the recommended 28.63636 MHz XTAL operation. Rev. 0 | Page 121 of 184 UG-438 Hardware User Guide 1000 800 600 400 VGA 72 VGA 75 200 0 0 2000 4000 6000 8000 28.6363MHz SAMPLES IN 8-LINE BLOCK 10884-052 NUMBER OF HSYNCS IN A FRAME 1200 Figure 46. STDI Values for GR Mode (Plot) Note: Although the two points for VGA72 and VGA75 look very close, it is anticipated that the difference in the parameters is sufficient to distinguish between them. CP OUTPUT SYNCHRONIZATION SIGNAL POSITIONING The ADV7610 overall synchronization processing flow is shown in the block diagram in Figure 47. The user can reposition the synchronization signal output from the regenerated input synchronization signal within the CP block with the control bits marked in red in Figure 10. START_HS, END_HS START_VS, END_VS DE_H_END, DE_H_S TART DE_V_START, DE_V_END DE_V_START_EVEN, DE_V_END_EVEN START_VS_EVEN, END_VS_EVEN START_FE, START_FO PRIM_MODE[2] 0 COMPONENT PROCESSOR 1 HDMI BLOCK HDMI PIXEL CLOCK SYNC POSITION CONTROL HS VS HS OUTPUT CONTROL VS HS POLARITY CONTROL Figure 47. ADV7610 Simplified Synchronization Signal Processing Flow Diagram Rev. 0 | Page 122 of 184 VS DE PIN_INV_HS PIN_INV_VS PIN_INV_F PIN_INV_DE HS_OUT_SEL F_OUT_SEL VS_OUT_SEL DE 10884-053 VS STDI 1 DE LLC TMDS PLL HS HDMI PORT A Hardware User Guide UG-438 As shown in Figure 47, the ADV7610 CP can output the following three primary and one secondary synchronization signals, which are controlled by the output control block in the CP block. Primary: • • • Horizontal synchronization timing reference output on the HS pin Vertical synchronization timing reference output on the VS/FIELD/ALSB pin DE (indicates active region) shared with the FIELD pin Secondary: • Field timing reference output on the DE pin or as a secondary signal on the VS/FIELD/ALSB pin Timing reference signals with shared pins are controlled via I2C. Table 48. CP Synchronization Signal Output Pins Pin Name DE VS/FIELD/ALSB Primary Signal (Default) DE out VS out Secondary Signal FIELD out FIELD out Controlled by I2C Bit F_OUT_SEL VS_OUT_SEL The user can program the primary and secondary synchronization signals, repositioning them in order to control the display area, as shown in Figure 48. CP_START_VBI[11:0] CP_START_VBI_EVEN[11:0] DISPLAYED AREA (ODD FIELD) HORIZONTAL BLANKING HORIZONTAL BLANKING DE_V_START[3:0] START_VS[3:0] START_FE[3:0] VERTICAL BLANKING CP_END_VBI[11:0] CP_END_VBI_EVEN[11:0] START_HS [9:0] DE_H_START [9:0] HSYNC/DE SIGNAL Figure 48. Synchronization Repositioning and Displayed Area Rev. 0 | Page 123 of 184 10884-054 DISPLAYED AREA (ODD FIELD) VBI CONTROL VERTICAL BLANKING HORIZONTAL BLANKING DISPLAYED AREA (EVEN FIELD) HORIZONTAL BLANKING HORIZONTAL BLANKING VSYNC/DE SIGNAL FIELD SIGNAL START_FO[3:0] HORIZONTAL BLANKING DE_V_END[3:0] END_VS[3:0] VERTICAL BLANKING UG-438 Hardware User Guide CP Synchronization Signals The three primary synchronization signals have certain default positions, depending on the video standard in use. To allow for a glueless interface to downstream ICs, there is the facility to adjust the position of edges on the three primary synchronization signals. Figure 49, Figure 50, Figure 51, Figure 52, Figure 53, Figure 54, Figure 55, and Figure 56 show the nominal position of HS, VS, and FIELD. The positions of those signals can be adjusted in both directions by using the following controls: • • • • • • • START_HS[9:0] END_HS[9:0] START_VS[3:0] END_VS[3:0] START_VS_EVEN[3:0] START_FE[3:0] START_FO[3:0] All six above parameters are given as signed values. This means that rather than adjusting the absolute position of a signal, these adjustments allow the user to advance (negative value) or delay (positive value) the respective timing reference signals. In addition, the polarity of the synchronization output signals can be inverted by using: • • • INV_HS_POL INV_F_POL INV_VS_POL HSync Timing Controls Programming the registers listed in this section, the HS signal as shown in Figure 49 can be adjusted in the described manner. Table 49. HS Default Timing Symbol a Characteristic HS to start of active video Note Default 525i 118 625i 128 525p 116 d b c HS width Active video samples Total samples/line Default 64 720 858 64 720 864 64 720 858 625p 720p 1080i 126 256 188 All values are for 1× outputs 64 40 44 720 1280 1920 864 1650 2200/2376 1080p 118 44 1920 2200 Table 50. HS Default Timing (Continued, 1) Symbol a Characteristic HS to start of active video Note Default 680 × 480 at 60 Hz 140 d b c HS width Active video samples Total samples/line Default 96 640 800 640 × 480 at 72 Hz 640 × 480 at 75 Hz 164 180 All values are for 1× outputs 40 64 640 640 832 840 640 × 480 at 85 Hz 132 56 640 832 Table 51. HS Default Timing (Continued, 2) Symbol a Characteristic HS to start of active video Note Default d b c HS width Active video samples Total samples/line Default 800 × 600 at 56 Hz 196 72 800 1024 800 × 600 800 × 600 800 × 600 at 60 Hz at 72 Hz at 75 Hz 212 180 236 All values are for 1× outputs 128 120 80 800 800 800 1056 1040 1056 800 × 600 at 85 Hz 212 64 800 1048 Table 52. HS Default Timing (Continued, 3) Symbol a Characteristic HS to start of active video Note Default 1024 × 768 at 60 Hz 292 d b c HS width Active video samples Total samples/line Default 136 1024 1344 1024 × 768 at 70 Hz 1024 × 768 at 75 Hz 276 268 All values are for 1x outputs 136 96 1024 1024 1328 1312 Rev. 0 | Page 124 of 184 1024 × 768at 85 Hz 300 96 1024 1376 Hardware User Guide UG-438 LLC PIXEL BUS Cr Y FF 00 00 XY 80 10 80 80 10 ....... ....... FF 00 H BLANK EAV ACTIVE VIDEO 10 00 XY SAV Cb Y Cr Y Cb Y Cr ....... ACTIVE VIDEO D HS OUTPUT START_HS[9:0] END_HS[9:0] A B B C C Figure 49. HS Timing START_HS[9:0], Addr 44 (CP), Address 0x7C[3:2]; Address 0x7E[7:0] A control to shift the position of the leading edge of the HSync output by the CP core. This register stores a signed value in a twos complement format. START_HS[9:0] is the number of pixel clocks by which the leading edge of the HSync is shifted (for example, 0x3FF corresponds to a shift of one pixel clock away from the active video, 0x005 corresponds to a shift of five pixel clocks toward the active video). Function START_HS[9:0] 0x000 (default) 0x000 to 0x1FF 0x200 to 0x3FF Description Default value. The leading edge of the HSync is shifted toward the active video. The leading edge of the HSync is shifted away from the active video. Table 53. Controlling the Beginning of the HS Timing Signal START_HS[9:0] 0000000000 (default) 0000000001 Hex 0x000 0x001 0100000000 0x100 0111111111 0x1FF 1111111111 0x3FF 1011111111 0x3FE 1000000000 0x200 1 2 Result No move 1 sec shift later than default1 LLC 1 256 × sec shift later than default LLC 1 511 × sec shift later than default LLC 1 1× sec shift earlier than default2 LLC 1 256 × sec shift earlier than default LLC 1 512 × sec shift earlier than default LLC 1× HS START closer to active video. HS START away from active video. Rev. 0 | Page 125 of 184 Note Default Minimum → Maximum → Minimum ← Maximum ← 10884-055 4 LLC1 UG-438 Hardware User Guide END_HS[9:0], Addr 44 (CP), Address 0x7C[1:0]; Address 0x7D[7:0] A control to shift the position of the trailing edge of the HSync output by the CP core. This register stores a signed value in a twos complement format. HS_END[9:0] is the number of pixel clocks by which the leading edge of the HSync is shifted (for example, 0x3FF corresponds to a shift of one pixel clock away from the active video, 0x005 corresponds to a shift of five pixel clocks toward the active video). Function END_HS[9:0] 0x000 (default) 0x000 to 0x1FF 0x200 to 0x3FF Description Default value. The trailing edge of the HSync is shifted toward the active video. The trailing edge of the HSync is shifted away from the active video. Table 54. Controlling the End of the HS Timing Signal END_HS[9:0] 0000000000 (default) 0000000001 Hex 0x000 0x001 0100000000 0x100 0111111111 0x1FF 1111111111 0x3FF 1011111111 0x3FE 1000000000 0x200 1 2 Result No move (default) Note 1 sec shift later than default1 LLC 1 256× sec shift later than default LLC 1 511× sec shift later than default LLC 1 1× sec shift earlier than default2 LLC 1 256 × sec shift earlier than default LLC 1 512 × sec shift earlier than default LLC Minimum → 1× Maximum → Minimum ← Maximum ← Closer to active video. Away from active video. EIA_861_COMPLIANCE, Addr 44 (CP), Address 0x69[2] Control for compliance to 861B for 525p.This bit set the start of the VBI for the 525p standard only. Function EIA_861_COMPLIANCE 0 (default) 1 Description The VBI region starts on Line 1. The VBI region starts on Line 523. The start of the VBI region is compliant with the 861 specification. VSync Timing Controls This section describes the programming of the VS timing signals. The VS signal is shown in Figure 50, Figure 51, Figure 52, Figure 53, Figure 54, Figure 55, and Figure 56 and can be adjusted in the described manner. Table 55. VS Default Timing Characteristic START_VS range maximum START_VS range minimum END_VS range maximum END_VS range minimum Units Lines Lines Lines Lines Direction → ← → ← 525i 7 8 7 8 625i 7 8 7 8 525p 7 8 7 8 625p 7 8 7 8 720p 7 8 7 8 1080i 7 8 7 8 START_VS[3:0], Addr 44 (CP), Address 0x7F[7:4] A control to shift the position of the leading edge of the VSync output by the CP core. This register stores a signed value in a twos complement format. START_VS[3:0] is the number of lines by which the leading edge of the VSync is shifted (for example, 0x0F corresponds to a shift by 1 line toward the active video, 0x01 corresponds to a shift of 1 line away from the active video). Rev. 0 | Page 126 of 184 Hardware User Guide Function START_VS[3:0] 0x0 (default) 0x0 to 0x7 0x8 to 0xF UG-438 Description Default value. The leading edge of the VSync is shifted toward the active video. The leading edge of the VSync is shifted away from the active video. Table 56. Controlling the Start of the VS Timing Signal START_VS[3:0] 0000 (default) 0001 0011 0111 1111 1101 1000 1 2 Hex 0x0 0x1 0x3 0x0 0xF 0xD 0x8 Result No move (default) 1 HS shift later than default1 3 HS shift later than default 7 HS shift later than default 1 HS shift earlier than default2 3 HS shift earlier than default 8 HS shift earlier than default Note Minimum → Maximum → Minimum ← Maximum ← VS closer to start of active video. VS away from start of active video. END_VS[3:0], Addr 44 (CP), Address 0x7F[3:0] A control to shift the position of the trailing edge of the VSync output by the CP core. This register stores a signed value in a twos complement format. SEND_VS[3:0] is the number of lines by which the trailing edge of the VSync is shifted (for example, 0x0F corresponds to a shift of one line toward the active video, 0x01 corresponds to a shift of 1 line away from the active video). Function END_VS[3:0] 0x0 (default) 0x0 to 0x7 0x8 to 0xF Description Default value. The trailing edge of the VSync is shifted toward the active video. The trailing edge of the VSync is shifted away from the active video. Table 57. Controlling the End of the VS Timing Signal END_VS[3:0] 0000 (default) 0001 0011 0111 1111 1101 1000 1 2 Hex 0x0 0x1 0x3 0x0 0xF 0xD 0x8 Result No move (default) 1 HS shift later than default1 3 HS shift later than default 7 HS shift later than default 1 HS shift earlier than default2 3 HS shift earlier than default 8 HS shift earlier than default Note Minimum → Maximum → Minimum ← Maximum ← VS closer to start of active video. VS away from start of active video. START_VS_EVEN[3:0], Addr 44 (CP), Address 0x89[7:4] A control to shift the position of the leading edge of the VSync output by the CP core. This register stores a signed value in a twos complement format. START_VS_EVEN[3:0] is the number of lines by which the leading edge of the VSync is shifted (for example, 0x0F corresponds to a shift by one line toward the active video, 0x01 corresponds to a shift of 1 line away from the active video). Function START_VS_EVEN[3:0] 0x0 to 0x7 0x8 to 0xF Description The leading edge of the even VSync is shifted toward the active video. The leading edge of the even VSync is shifted away from the active video. Rev. 0 | Page 127 of 184 UG-438 Hardware User Guide END_VS_EVEN[3:0], Addr 44 (CP), Address 0x89[3:0] A control to shift the position of the trailing edge of the VSync output by the CP core. This register stores a signed value in a twos complement format. SEND_VS_EVEN[3:0] is the number of lines by which the trailing edge of the VSync is shifted (for example, 0x0F corresponds to a shift of 1 line toward the active video, 0x01 corresponds to a shift of 1 line away from the active video). Function END_VS_EVEN[3:0] 0x0 to 0x7 0x8 to 0xF Description The trailing edge of the even VSync is shifted toward the active video. The trailing edge of the even VSync is shifted away from the active video. DE Timing Controls DE_H_END[9:0], Addr 44 (CP), Address 0x8B[1:0]; Address 0x8C[7:0] A control to vary the trailing edge position of the DE signal output by the CP core. This register stores a signed value in a twos complement format. The unit of DE_H_END[9:0] is one pixel clock. Function DE_H_END[9:0] 0x200 0x3FF 0x000 (default) 0x001 0x1FF Description −512 pixels of shift −1 pixel of shift Default value (no shift) +1 pixel of shift +511 pixels DE_H_START[9:0], Addr 44 (CP), Address 0x8B[3:2]; Address 0x8D[7:0] A control to vary the leading edge position of the DE signal output by the CP core. This register stores a signed value in a twos complement format. The unit of DE_H_START[9:0] is one pixel clock. Function DE_H_START[9:0] 0x200 0x3FF 0x000 (default) 0x001 0x1FF Description −512 pixels of shift −1 pixel of shift Default value (no shift) +1 pixel of shift +511 pixels DE_V_START[3:0], Addr 44 (CP), Address 0x8E[7:4] A control to vary the start position of the VBI region. This register stores a signed value represented in a twos complement format. The unit of DE_V_START[9:0] is one line. Function DE_V_START[3:0] 1000 1111 0000 (default) 0001 0111 Description −8 lines of shift −1 line of shift Default +1 line of shift +7 lines of shift Rev. 0 | Page 128 of 184 Hardware User Guide UG-438 DE_V_END[3:0], Addr 44 (CP), Address 0x8E[3:0] A control to vary the position of the end of the VBI region. This register stores a signed value represented in a twos complement format. The unit of DE_V_START[9:0] is one line. Function DE_V_END[3:0] 1000 1111 0000 (default) 0001 0111 Description −8 lines of shift −1 line of shift Default +1 line of shift +7 lines of shift DE_V_START_EVEN[3:0], Addr 44 (CP), Address 0x88[7:4] A control to vary the start position of the VBI region in even field. This register stores a signed value represented in a twos complement format. The unit of DE_V_START_EVEN[9:0] is one pixel clock. Function DE_V_START_EVEN[3:0] Range Description −8 to +7 lines DE_V_END_EVEN[3:0], Addr 44 (CP), Address 0x88[3:0] A control to vary the position of the end of the VBI region in even field. This register stores a signed value represented in a twos complement format. The unit of DE_V_END_EVEN[9:0] is one pixel clock. Function DE_V_END_EVEN[3:0] Range Description −8 to +7 lines FIELD Timing Controls Programming of the FIELD timing signals is listed in this section. The FIELD signal, shown in Figure 50, Figure 51, Figure 52, and Figure 55, can be adjusted in the described manner. (Progressive systems do not have a FIELD signal.) Table 58. FIELD Default Timing Characteristic START_FO END_FO range maximum START_FO END_FO range maximum Units Line 525i 7 625i 7 525p N/A 625p N/A 720p N/A 1080i 7 Line 8 8 N/A N/A N/A 8 START_FE[3:0], Addr 44 (CP), Address 0x80[7:4] A control to shift the position of the start of even field edge of the FIELD signal output by the CP core. This register stores a signed value in a twos complement format. START_FE[3:0] the number of lines by which the start of the even fields edge of the FIELD signal is shifted (for example, 0x0D corresponds to a shift of three lines toward the active video, 0x05 corresponds to a shift of five lines away from the active video). Function START_FE[3:0] 0x0 (default) 0x0 to 0x7 0x8 to 0xF Description Default value. The edge of the FIELD signal corresponding to the start of the even field is shifted toward the active video. The trailing of the FIELD signal corresponding to the start of the even field is shifted away from the active video. Rev. 0 | Page 129 of 184 UG-438 Hardware User Guide Table 59. Controlling the Even Field Section of the FIELD Timing Signal START_FE[3:0] 0000(default) 0001 0011 0111 1111 1101 1000 1 2 Hex 0x0 0x1 0x3 0x7 0xF 0xD 0x8 Result No move (default) 1 HS shift later than default1 3 HS shift later than default 7 HS shift later than default 1 HS shift earlier than default2 3 HS shift earlier than default 8 HS shift earlier than default Note Minimum → Maximum → Minimum ← Maximum ← Closer to active video. Away from active video. START_FO[3:0], Addr 44 (CP), Address 0x80[3:0] A control to shift the position of the start of odd field edge of the FIELD signal output by the CP core. This register stores a signed value in a twos complement format. START_FO[3:0] the number of lines by which the start of the odd fields edge of the FIELD signal is shifted (for example, 0x0D corresponds to a shift of 3 lines toward the active video, 0x05 corresponds to a shift of 5 line away from the active video). Function START_FO[3:0] 0x0 (default) 0x0 to 0x7 0x8 to 0xF Description Default value. The edge of the FIELD signal corresponding to the start of the odd field is shifted toward the active video. The trailing of the FIELD signal corresponding to the start of the odd field is shifted away from the active video. Table 60. Controlling the Odd Field Section of FIELD Timing Signal START_FO[3:0] 0000 (default) 0001 0011 0111 1111 1101 1000 1 2 Hex 0x0 0x1 0x3 0x0 0xF 0xD 0x8 Result No move (default) 1 HS shift later than default1 3 HS shift later than default 7 HS shift later than default 1 HS shift earlier than default2 3 HS shift earlier than default 8 HS shift earlier than default Closer to active video. Away from active video. Rev. 0 | Page 130 of 184 Note Minimum → Maximum → Minimum ← Maximum ← Hardware User Guide UG-438 FIELD 1 525 1 2 3 4 5 6 7 8 9 10 11 12 13 273 274 275 14 15… 21 22 277… 284 285 OUTPUT VIDEO HS OUTPUT VS OUTPUT START_VS[3:0] END_VS[3:0] FIELD OUTPUT START_FO[3:0] FIELD 2 262 263 264 265 266 267 268 269 270 271 272 276 OUTPUT VIDEO HS OUTPUT VS OUTPUT END_VS[3:0] START_VS[3:0] 10884-056 FIELD OUTPUT START_FE[3:0] Figure 50. 525i VS Timing Rev. 0 | Page 131 of 184 UG-438 Hardware User Guide FIELD 1 622 623 624 625 1 2 3 4 5 6 11… 7 8 9 10 320 321 322 323… 23 24 OUTPUT VIDEO HS OUTPUT VS OUTPUT START_VS[3:0] END_VS[3:0] FIELD OUTPUT START_FO[3:0] FIELD 2 310 311 312 313 314 315 316 317 318 319 336 337 OUTPUT VIDEO HS OUTPUT VS OUTPUT START_VS[3:0] END_VS[3:0] 10884-057 FIELD OUTPUT START_FE[3:0] Figure 51. 625i VS Timing 525 1 2 3 4 5 6 7 8 9 10 12 13 14 15 16 17 42 18 43 44 OUTPUT VIDEO VS OUTPUT 10884-058 HS OUTPUT END_VS[3:0] START_VS[3:0] Figure 52. 525p VS Timing OUTPUT VIDEO 622 623 624 625 1 2 3 4 5 6 7 8 9 10 11… 43 44 45 VS OUTPUT START_VS [3:0] END_VS [3:0] Figure 53. 625p VS Timing Rev. 0 | Page 132 of 184 10884-059 HS OUTPUT Hardware User Guide UG-438 OUTPUT VIDEO 745 750 1 2 3 4 5 6 7 8… 25 26 27 744 745 HS OUTPUT 10884-060 VS OUTPUT END_VS[3:0] START_VS[3:0] Figure 54. 720p VS Timing FIELD 1 OUTPUT VIDEO 1123 HS OUTPUT 1124 1125 1 2 3 4 5 6 7 8… 20 21 22 23 24 25 VS OUTPUT START_VS[3:0] END_VS[3:0] FIELD OUTPUT START_FO[3:0] FIELD 2 OUTPUT VIDEO HS OUTPUT 560 561 562 563 564 565 566 567 568 569 570… 583 584 585 586 587 588 589 VS OUTPUT FIELD OUTPUT END_VS[3:0] 10884-061 START_VS[3:0] START_FE[3:0] Figure 55. 1080i VS Timing 1122 1125 1 2 3 1 START_VS[3:0] 5 6 7 8… 41 42 42 END_VS[3:0] Figure 56. 1080p VS Timing HCOUNT Timing Control HCOUNT_ALIGN_ADJ[4:0], Addr 44 (CP), Address 0xBE[1:0]; Address 0xBF[7:5] Manual adjustment for internally generated hcount offset. This register allows an adjustment of 15 pixels to the left or to the right. The MSB sets the direction (left or right) and the 4 LSBs set the number of pixels to move. This is an unsigned control. Function HCOUNT_ALIGN_ADJ[4:0] 00000 (default) Description Default value Rev. 0 | Page 133 of 184 10884-062 1121 UG-438 Hardware User Guide CP HDMI CONTROLS HDMI_CP_LOCK_THRESHOLD[1:0], Addr 44 (CP), Address 0xCB[1:0] Locking time of filter used for buffering of timing parameters in HDMI mode. Function HDMI_CP_LOCK_THRESHOLD[1:0] 00 (default) 01 10 11 Description Slowest locking time Medium locking time Fastest locking time Fixed step size of 0.5 pixels FREE RUN MODE Free run mode provides the user with a stable clock and predictable data if the input signal cannot be decoded, for example, if input video is not present. It controls default color insertion and causes the ADV7610 to generate a default clock. The state in which this happens can be monitored via the CP_FREE_RUN status bit. (Refer to the CP Status section for more information.). The free run feature is not configured automatically for HDMI modes. Free Run Mode Thresholds The free run threshold parameters define the horizontal and vertical conditions under which free run mode is entered. The horizontal and vertical parameters of the incoming video signal are measured and compared with internally stored parameters, and the magnitude of the difference decides whether to enter free run. The internally stored parameters are decoded by default from PRIM_MODE[3:0] and VID_STD[5:0]. For video standards other than the preprogrammed settings of PRIM_MODE[3:0] and VID_STD[5:0], the parameters can be set manually. Horizontal Conditions In the case of the horizontal conditions, the length of the incoming video line is measured based on the 28.6363 MHz crystal clock. This value is compared with the internally stored horizontal parameter, the ideal line length. The CH1_F_RUN_TH[2:0] control bits allow the user to select the threshold for Channel 1. The ideal line length can be manually set via the Free-run Line Length control, CH1_FR_LL[10:0]. CH1_F_RUN_THR[2:0], Addr 44 (CP), Address 0xF3[2:0] Free run threshold select for Sync Channel 1. Determines the horizontal conditions under which free run mode is entered or left. The length of the incoming video line is measured based on the crystal clock and compared to an internally stored parameter. The magnitude of the difference decides whether or not sync Channel 1 enters free run mode. Function CH1_F_RUN_THR[2:0] 000 001 010 011 100 (default) 101 110 111 Description Minimum difference to switch into free run is 2. Maximum difference to switch out of free run is 1. Minimum difference to switch into free run is 256. Maximum difference to switch out of free run is 200. Minimum difference to switch into free run is 128. Maximum difference to switch out of free run is 112. Minimum difference to switch into free run is 64. Maximum difference to switch out of free run is 48. Minimum difference to switch into free run is 32. Maximum difference to switch out of free run is 24. Minimum difference to switch into free run is 16. Maximum difference to switch out of free run is 12. Minimum difference to switch into free run is 8. Maximum difference to switch out of free run is 6. Minimum difference to switch into free run is 4. Maximum difference to switch out of free run is 3. Rev. 0 | Page 134 of 184 Hardware User Guide UG-438 CH1_FR_LL[10:0], Addr 44 (CP), Address 0x8F[2:0]; Address 0x90[7:0] Free run line length in number of crystal clock cycles in one line of video for Sync Channel 1 STDI. This register should only be programmed video standards that are not supported by PRIM_MODE[3:0] and VID_STD[5:0]. Function CH1_FR_LL[10:0] 0x000 (default) All other values Description Internal free run line length is decoded from PRIM_MODE[3:0] and VID_STD[5:0]. Number of crystal clocks in the ideal line length. Used to enter or exit free run mode. Notes • • This parameter has no effect on the video decoding. If CH1_FR_LL[10:0] is not programmed, then the free-run line length parameter is decoded from PRIM_MODE[3:0] and VID_STD[5:0]. Vertical Conditions In the case of the vertical conditions, the STDI section measures the number of lines per field of incoming video signal. This value is compared with an internally stored vertical parameter, the ideal field length. The CH1_FL_FR_THRESHOLD[1:0] control bits allow the user to select the threshold for Channel 1. The ideal number of lines per field can be set manually via the CP_LCOUNT_MAX[11:0] register. CH1_FL_FR_THRESHOLD[2:0], Addr 44 (CP), Address 0xF3[5:3] Threshold for difference between input video field length and internally stored standard to enter and exit free run. Function CH1_FL_FR_THRESHOLD[2:0] 000 001 010 (default) 011 100 101 110 111 Description Minimum difference to switch into free run is 36 lines. Maximum difference to switch out of free run is 31 lines. Minimum difference to switch into free run is 18 lines. Maximum difference to switch out of free run is 15 lines. Minimum difference to switch into free run is 10 lines. Maximum difference to switch out of free run is 7 lines. Minimum difference to switch into free run is 4 lines. Maximum difference to switch out of free run is 3 lines. Minimum difference to switch into free run is 51 lines. Maximum difference to switch out of free run is 46 lines. Minimum difference to switch into free run is 69 lines. Maximum difference to switch out of free run is 63 lines. Minimum difference to switch into free run is 134 lines. Maximum difference to switch out of free run is 127 lines. Minimum difference to switch into free run is 263 lines. Maximum difference to switch out of free run is 255 lines. CP_LCOUNT_MAX[11:0], Addr 44 (CP), Address 0xAB[7:0]; Address 0xAC[7:4] Manual value for total number of lines in a frame expected by the CP core. CP_LCOUNT_MAX[11:0] is an unsigned value. This register is used for manual configuration of the free run feature. The value programmed in this register is used for Sync Channel 1. The value programmed in this register is used also for Sync Channel 2 if CH2_FR_FIELD_LENGTH[10:0] set to 0x000. Function CP_LCOUNT_MAX[11:0] 0x000 (default) All other values Description Ideal number of lines per frame is decoded from PRIM_MODE[3:0] and VID_STD[5:0] for Sync Channel 1. Use the programmed value as ideal number of lines per frame in free run decision for Sync Channel 1. INTERLACED, Addr 44 (CP), Address 0x91[6] Sets the interlaced/progressive mode of the incoming video processed in CP mode. Function INTERLACED 0 1 (default) Description The CP core expects progressive video mode. the CP core expects interlaced video mode. Rev. 0 | Page 135 of 184 UG-438 Hardware User Guide Field line count is the vertical parameter that holds the ideal number of lines per field for a given video standard. It affects the way CP handles the unlocked state. It affects the way CP handles the unlocked state. If CP_LCOUNT_MAX[11:0] is set to 0, the internally used free run line length value is decoded from the current setting of PRIM_MODE[3:0] and VID_STD[5:0]. For standards not covered by the preprogrammed values, the CP_LCOUNT_MAX[11:0] and INTERLACED parameters must be set to the ideally expected number of lines per field. Notes • The CP_LCOUNT_MAX[11:0] parameter has no effect on the video decoding. If CP_LCOUNT_MAX[11:0] is not programmed, then the Free-run Line Length parameter is decoded from PRIM_MODE[3:0] and VID_STD[5:0]. If CP_LCOUNT_MAX[11:0] is programmed, then Free-run Line Length parameter defined by CP_LCOUNT_MAX[11:0] and INTERLACED, is used for Channel 1. CP_LCOUNT_MAX[11:0] == 12'D0 [11:1] CP_LCOUNT_MAX[11:0] 0 LCOUNT_MAX BASED ON PM/VS INTERLACED [11:0] 1 [10:0] FR_FIELD_LENGTH USED ON SYNC CHANNEL 1 0 1 [10:0] 10884-063 • • Figure 57. Free Run Field Length Selection for Channel 1 and Channel 2 Free Run Feature in HDMI Mode This section describes how to configure the free run feature when the ADV7610 is in HDMI mode. The ADV7610 HDMI mode is defined in the Primary Mode and Video Standard section. There are two free run modes in HDMI: Free Run Mode 0 and Free Run Mode 1. The HDMI_FRUN_MODE control selects which free run mode is enabled. • • HDMI Free Run Mode 0: The decoder enters free run when the TMDS clock is not detected, for example, in a cable disconnect situation. HDMI Free Run Mode 1: The decoder enters free run when the TMDS clock is not detected or when the detected input format does not match the format dictated by the PRIM_MODE[3:0] and VID_STD[5:0] settings. For either free run mode to be implemented, HDMI free run operation must be enabled. This is done via the HDMI_FRUN_EN control. HDMI_FRUN_EN, Addr 44 (CP), Address 0xBA[0] A control to enable free run in HDMI mode. Function HDMI_FRUN_EN 0 1 (default) Description Disable the free run feature in HDMI mode Enable the free run feature in HDMI mode HDMI_FRUN_MODE, Addr 44 (CP), Address 0xBA[1] A control to configure the free run feature in HDMI mode. Function HDMI_FRUN_MODE 0 (default) 1 Description HDMI free run Mode 0. The part free runs when the TMDS clock is not detected on the selected HDMI port. HDMI free run Mode 1. The CP core free runs when the TMDS clock is not detected on the selected HDMI port or it the video resolution of HDMI stream processed by the part does not match the video resolution programmed in PRIM_MODE[3:0] and VID_STD[5:0]. Rev. 0 | Page 136 of 184 Hardware User Guide UG-438 DIS_AUTO_PARAM_BUFF, Addr 44 (CP), Address 0xC9[0] A control to disable the buffering of the timing parameters used for free run in HDMI mode. Function DIS_AUTO_PARAM_BUFF 0 (default) 1 Description Buffer the last measured parameters in HDMI mode used to determine video resolution the part free runs into. Disable the buffering of measured parameters in HDMI mode. Free run standard determined by PRIM_MODE[3:0], VID_STD[5:0], and V_FREQ[2:0]. It is also possible to custom program the resolution that the ADV7610 should expect for free run Mode 1 by programming the free-run line length, line count max, and interlaced registers. Refer to the Free Run Mode section for the configuration of these registers. Note: This mode (that is, DIS_AUTOPARAM_BUFFER = 1) does not support HDMI input with deep color. Free Run Default Color Output In the event of loss of input signal, the ADV7610 may enter free run and can be configured to output a default color rather than noise. The default color values are given in Table 61. The times at which the default colors are inserted can be set as follows: • • Free run is forced: default colors are always output Automatic free run mode: default colors are output when the system detects a loss of video signal Table 61. Default Color Output Values (CP) Mode Default—GR CP_DEF_COL_MAN_VAL 0 Default—COMP 0 Man. Override 1 Signal CH_A (G) CH_B (R) CH_C (B) CH_A (Y) CH_A (Pr) CH_A (Pb) CH_A CH_B CH_C Value 0 0 135d 35d 114d 212d 4·DEF_COL_CHA[7:0] 4·DEF_COL_CHB[7:0] 4·DEF_COL_CHC[7:0] CP_FORCE_FREERUN, Addr 44 (CP), Address 0xBF[0] A control to force the CP to free run. Function CP_FORCE_FREERUN 0 (default) 1 Description Do not force the CP core free run. Force the CP core to free run. CP_DEF_COL_AUTO, Addr 44 (CP), Address 0xBF[1] A control to enable the insertion of default color when the CP free runs. Function CP_DEF_COL_AUTO 0 1 (default) Description Disable automatic insertion of default color Output default colors when the CP free runs CP_DEF_COL_MAN_VAL, Addr 44 (CP), Address 0xBF[2] A control to enable manual selection of the color used when the CP core free runs. Function CP_DEF_COL_MAN_VAL 0 (default) 1 Description Uses default color blue Outputs default colors as given in CP_DEF_COL_CHA, CP_DEF_COL_B and CP_DEF_COL_C Rev. 0 | Page 137 of 184 UG-438 Hardware User Guide Table 61 shows the default colors for component and graphics based video. The values describe the color blue. Setting the CP_DEF_COL_MAN_VAL bit high enables the user to overwrite the default colors with the values given in DEF_COL_CHA[7:0], DEF_COL_CHB[7:0], and DEF_COL_CHC[7:0]. The three parameters DEF_COL_CHA[7:0], DEF_COL_CHB[7:0], and DEF_COL_CHC[7:0] allow the user to specify their own default values. Note: CP_DEF_COL_MAN_VAL must be set high for the three parameters to be used. See Table 61 for more information on the automatic values. DEF_COL_CHA[7:0], Addr 44 (CP), Address 0xC0[7:0] A control the set the default color for Channel A. To be used if CP_DEF_COL_MAN_VAL is 1. Function DEF_COL_CHA[7:0] 0x00 (default) Description Default value DEF_COL_CHB[7:0], Addr 44 (CP), Address 0xC1[7:0] A control to set the default color for Channel B. To be used if CP_DEF_COL_MAN_VAL is 1. Function DEF_COL_CHB[7:0] 0x00 (default) Description Default value DEF_COL_CHC[7:0], Addr 44 (CP), Address 0xC2[7:0] A control to set the default color for Channel C. To be used if CP_DEF_COL_MAN_VAL is 1. Function DEF_COL_CHC[7:0] 0x00 (default) Description Default value CP STATUS CP_REG_FF CP_REG_FF is a status register that contains status bits for the CP core. Register CP_REG_FF holds field: CP_FREE_RUN. CP_REG_FF Bit Number 0 1 2 3 4 5 6 7 Bit Name Reserved Reserved Reserved Reserved CP_FREE_RUN Reserved Reserved Reserved Description CP is free running (no valid video signal found) CP_FREE_RUN, Addr 44 (CP), Address 0xFF[4] (Read Only) Component processor free run status. Function CP_FREE_RUN 0 (default) 1 Description The CP is not free running. The CP is free running. CP CORE BYPASSING It is possible to bypass CP core completely using the following register. CP_COMPLETE_BYPASS_IN_HDMI_MODE, IO, Address 0xBF[0] Function CP_COMPLETE_BYPASS_IN_HDMI_MODE 0 (default) 1 Description Normal mode HDMI data directly fed to output bypassing CP completely, CP_CLK can be powered down Rev. 0 | Page 138 of 184 Hardware User Guide UG-438 CONSUMER ELECTRONICS CONTROL The Consumer Electronics Control (CEC) module features the hardware required to behave as an initiator or a follower as per the specifications for a CEC device. The CEC module contains four main sections: • • • • Transmit section CEC_TX Receive section CEC_RX Clock generator section CEC_CLK_GEN Antiglitch filter section CEC_ANTI_GLITCH The block diagram of the CEC module is shown in Figure 58. CEC CEC_RESET HOTPLUG RESET CEC_CLK CEC CLK_GEN INPUT_CLK CEC_TX (INITIATOR) I2C REGISTERS TX_BUSY TX_CEC_OUT 1 CEC_OUT 0 RX_CEC_OUT CEC_TX_ARBITRATION_LOST CEC_TX_TIMEOUT_RETRY INT INTERRUPT GENERATOR CEC_RX (FOLLOWER) CEC_TX_READY CEC_RX_RDY0 CEC ANTI_GLITCH CEC_IN CEC_RX_RDY1 10884-064 CEC_RX_RDY2 Figure 58. CEC Module Block Diagram MAIN CONTROLS This section describes the main controls for the CEC module. CEC_POWER_UP, Addr 80 (CEC), Address 0x2A[0] Power mode of CEC module. Function CEC_POWER_UP 0 (default) 1 Description Power down the CEC module. Power up the CEC module. CEC_SOFT_RESET, Addr 80 (CEC), Address 0x2C[0] (Self-Clearing) CEC module software reset. Function CEC_SOFT_RESET 0 (default) 1 Description No function. Reset the CEC module. Note that the CEC_POWER_UP bit can be used to set the ADV7610 to Power-Down Mode 1 (refer to the Power-Down Mode 1 section). Rev. 0 | Page 139 of 184 UG-438 Hardware User Guide CEC TRANSMIT SECTION The transmit section features the hardware required for the CEC module to act as an initiator. The host utilizes this section to transmit directly addressed messages or broadcast messages on the CEC bus. When the host wants to a send message to other CEC devices, it writes the message to the CEC outgoing message registers (refer to Table 62) and the message length register. Then, the host enables the transmission process by setting the CEC_TX_ENABLE bit to 1. When the message transmission is completed, or if an error occurs, the CEC transmitter section generates an interrupt (assuming the corresponding interrupt mask bits are set accordingly). Table 62. CEC Outgoing Message Buffer Registers Register Name CEC_TX_FRAME_HEADER[7:0] CEC_TX_FRAME_DATA0[7:0] CEC_TX_FRAME_DATA1[7:0] CEC_TX_FRAME_DATA2[7:0] CEC_TX_FRAME_DATA3[7:0] CEC_TX_FRAME_DATA4[7:0] CEC_TX_FRAME_DATA5[7:0] CEC_TX_FRAME_DATA6[7:0] CEC_TX_FRAME_DATA7[7:0] CEC_TX_FRAME_DATA8[7:0] CEC_TX_FRAME_DATA9[7:0] CEC_TX_FRAME_DATA10[7:0] CEC_TX_FRAME_DATA11[7:0] CEC_TX_FRAME_DATA12[7:0] CEC_TX_FRAME_DATA13[7:0] CEC_TX_FRAME_DATA14[7:0] CEC Map Address 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F Description Header of next outgoing message Byte 0 of next outgoing message Byte 1 of next outgoing message Byte 2 of next outgoing message Byte 3 of next outgoing message Byte 4 of next outgoing message Byte 5 of next outgoing message Byte 6 of next outgoing message Byte 7 of next outgoing message Byte 8 of next outgoing message Byte 9 of next outgoing message Byte 10 of next outgoing message Byte 11 of next outgoing message Byte 12 of next outgoing message Byte 13 of next outgoing message Byte 14 of next outgoing message CEC_TX_FRAME_LENGTH[4:0], Addr 80 (CEC), Address 0x10[4:0] Message size of the transmitted frame. This is the number of byte in the outgoing message including the header. Function CEC_TX_FRAME_LENGTH[4:0] xxxxx Description Total number of bytes (including header byte) to be sent CEC_TX_ENABLE, Addr 80 (CEC), Address 0x11[0] This bit enables the TX section. When set to 1, it initiates the start of transmission of the message in the outgoing message buffer. When the message transmission is completed, this bit is automatically reset to 0. If it is manually set to 0 during a message transmission it may terminate the transmission depending on what stage of the transmission process has been reached. If the message transmission is still in the 'signal free time' stage the message transmission will be terminated. If data transmission has begun then the transmission will continue until the message is fully sent, or until an error condition occurs. Function CEC_TX_ENABLE 0 (default) 1 Description Transmission mode disabled Transmission mode enabled and message transmission started The ADV7610 features three status bits related to the transmission of CEC messages. The events that set these bits are mutually exclusive, that is, only one of the three events can occur during any given message transmission. • • • CEC_TX_READY_ST CEC_TX_ARBITRATION_LOST_ST CEC_TX_RETRY_TIMEOUT_ST Rev. 0 | Page 140 of 184 Hardware User Guide UG-438 CEC_TX_READY_ST, IO, Address 0x93[0] (Read Only) Latched status of CEC_TX_READY_RAW signal. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. When the CEC TX successfully sends the current message this bit is set. Once set, this bit will remain high until the interrupt is cleared via CEC_TX_READY_CLR. Function CEC_TX_READY_ST 0 (default) 1 Description No change Message transmitted successfully CEC_TX_ARBITRATION_LOST_ST, IO, Address 0x93[1] (Read Only) Latched status of CEC_TX_ARBITRATION_LOST_RAW signal. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. If the CEC TX loses arbitration while trying to send a message this bit is set. Once set, this bit will remain high until the interrupt is cleared via CEC_TX_ARBITRATION_LOST_CLR. Function CEC_TX_ARBITRATION_LOST_ST 0 (default) 1 Description No change The CEC TX has lost arbitration to another TX CEC_TX_RETRY_TIMEOUT_ST, IO, Address 0x93[2] (Read Only) Latched status of CEC_TX_RETRY_TIMEOUT_RAW signal. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. If the CEC TX fails to send the current message within the number of retry attempts specified by CEC_TX_RETRY this bit is set. Once set, this bit remains high until the interrupt is cleared via CEC_TX_RETRY_TIMEOUT_CLR. Function CEC_TX_RETRY_TIMEOUT_ST 0 (default) 1 Description No change CEC TX has tried but failed to resend the current message for the number of times specified by CEC_TX_RETRY CEC_TX_RETRY[2:0], Addr 80 (CEC), Address 0x12[6:4] The number of times the CEC TX should try to retransmit the message if an error condition is encountered. Per the CEC specification, this value should not be set to a value greater than 5. Function CEC_TX_RETRY[2:0] 001 (default) xxx Description Try to retransmit the message 1 time if an error occurs Try to retransmit the message xxx times if an error occurs CEC_TX_NACK_COUNTER[3:0], Addr 80 (CEC), Address 0x14[3:0] (Read Only) The number of times that the NACK error condition was encountered while trying to send the current message. This register is reset to 0b0000 when CEC_TX_ENABLE is set to 1. Function CEC_TX_NACK_COUNTER[3:0] 0000 (default) XXXX Description No error condition The number of times the NACK error condition was encountered CEC_TX_LOWDRIVE_COUNTER[3:0], Addr 80 (CEC), Address 0x14[7:4] (Read Only) The number of times that the LOWDRIVE error condition was encountered while trying to send the current message. This register is reset to 0b0000 when CEC_TX_ENABLE is set to 1. Function CEC_TX_LOWDRIVE_COUNTER[3:0] 0000 (default) XXXX Description No error condition The number of times the LOWDRIVE error condition was encountered Rev. 0 | Page 141 of 184 UG-438 Hardware User Guide CEC RECEIVE SECTION The receive section features the hardware required for the CEC module to act as a follower. Once the CEC module is powered up via the CEC_POWER_UP bit the CEC Rx section will immediately begin monitoring the CEC bus for messages with the correct logical address(es). When the message reception is completed the CEC receive section generates an interrupt (assuming the corresponding interrupt mask bits are set accordingly). The host can disable message reception while keeping the CEC module powered up by using the FORCE_NACK bit to not acknowledge received messages. CEC_FORCE_NACK, Addr 80 (CEC), Address 0x27[1] Force NO-ACK control. Setting this bit forces the CEC controller not acknowledge any received messages. Function CEC_FORCE_NACK 0 (default) 1 Description Acknowledge received messages Do not acknowledge received messages Logical Address Configuration The host must set the destination logical address(es) that the CEC receive section will respond to. Up to three logical addresses can be enabled allowing support for multifunction devices such as DVD recorders with TV tuners, which require multiple logical addresses. The logical address(es) are set via the following registers: • • • CEC_LOGICAL_ADDRESS2[3:0] if CEC_LOGICAL_ADDRESS_MASK[2] is set to 1 CEC_LOGICAL_ADDRESS1[3:0] if CEC_LOGICAL_ADDRESS_MASK[1] is set to 1 CEC_LOGICAL_ADDRESS0[3:0] if CEC_LOGICAL_ADDRESS_MASK[0] is set to 1 CEC_LOGICAL_ADDRESS2[3:0], Addr 80 (CEC), Address 0x29[3:0] Logical address 2―this address must be enabled by setting CEC_LOGICAL_ADDRESS_MASK[2] to 1. Function CEC_LOGICAL_ADDRESS2[3:0] 1111 (default) xxxx Description Default value User specified logical address CEC_LOGICAL_ADDRESS1[3:0], Addr 80 (CEC), Address 0x28[7:4] Logical Address 1—this address must be enabled by setting CEC_LOGICAL_ADDRESS_MASK[1] to 1. Function CEC_LOGICAL_ADDRESS1[3:0] 1111 (default) xxxx Description Default value User specified logical address CEC_LOGICAL_ADDRESS0[3:0], Addr 80 (CEC), Address 0x28[3:0] Logical Address 0—this address must be enabled by setting CEC_LOGICAL_ADDRESS_MASK[0] to 1. Function CEC_LOGICAL_ADDRESS0[3:0] 1111 (default) xxxx Description Default value User specified logical address CEC_LOGICAL_ADDRESS_MASK[2:0], Addr 80 (CEC), Address 0x27[6:4] Logical address mask of the CEC logical devices. Up to three logical devices are supported. When the mask bits are set for a particular logical device, the logical device is enabled and messages whose destination address matches that of the selected logical address are accepted. Function CEC_LOGICAL_ADDRESS_MASK[2:0] [4] [5] [6] Description Mask bit for Logical Device 0 Mask bit for Logical Device 1 Mask bit for Logical Device 2 Rev. 0 | Page 142 of 184 Hardware User Guide UG-438 Receive Buffers The ADV7610 features three frame buffers that allow the receiver to receive up to three messages before the host processor needs to read a message out. When three messages have been received, no further message reception is possible until the host reads at least one message. Note that for backwards compatibility with previous generation ADI CEC-enabled parts, only one frame buffer is enabled by default. In this default mode, after a message is received, the host processor must read the message out before any further message reception is possible. The decision to use one or three messages buffers is controlled by the CEC_USE_ALL_BUFS bit. CEC_USE_ALL_BUFS, Addr 80 (CEC), Address 0x77[0] Control to enable supplementary receiver frame buffers. Function CEC_USE_ALL_BUFS 0 (default) 1 Description Use only buffer 0 to store CEC frames Use all 3 buffers to stores the CEC frames For each of the frame buffers there is a corresponding two-bit time stamp and a raw flag. CEC_BUF0_TIMESTAMP[1:0], Addr 80 (CEC), Address 0x53[1:0] (Read Only) Time stamp for frame stored in Receiver Frame Buffer 0. This can be used to determine which frame should be read next from the receiver frame buffers. Function CEC_BUF0_TIMESTAMP[1:0] 00 (default) 01 10 11 Description Invalid timestamp, no frame is available in this frame buffer Of the frames currently buffered, this frame was the first to be received Of the frames currently buffered, this frame was the second to be received Of the frames currently buffered, this frame was the third to be received CEC_BUF1_TIMESTAMP[1:0], Addr 80 (CEC), Address 0x53[3:2] (Read Only) Time stamp for frame stored in Receiver Frame Buffer 1. This can be used to determine which frame should be read next from the receiver frame buffers. Function CEC_BUF1_TIMESTAMP[1:0] 00 (default) 01 10 11 Description Invalid timestamp, no frame is available in this frame buffer Of the frames currently buffered, this frame was the first to be received Of the frames currently buffered, this frame was the second to be received Of the frames currently buffered, this frame was the third to be received CEC_BUF2_TIMESTAMP[1:0], Addr 80 (CEC), Address 0x53[5:4] (Read Only) Time stamp for frame stored in Receiver Frame Buffer 2. This can be used to determine which frame should be read next from the receiver frame buffers. Function CEC_BUF2_TIMESTAMP[1:0] 00 (default) 01 10 11 Description Invalid timestamp, no frame is available in this frame buffer Of the frames currently buffered, this frame was the first to be received Of the frames currently buffered, this frame was the second to be received Of the frames currently buffered, this frame was the third to be received Rev. 0 | Page 143 of 184 UG-438 Hardware User Guide CEC_RX_RDY0_ST, IO, Address 0x93[3] (Read Only) Latched status of CEC_RX_RDY0_RAW signal. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. When a message has been received into Buffer 0, this bit is set. Once set, this bit will remain high until the interrupt is cleared via CEC_RX_RDY0_CLR. Function CEC_RX_RDY0_ST 0 (default) 1 Description No change New CEC message received in Buffer 0 CEC_RX_RDY1_ST, IO, Address 0x93[4] (Read Only) Latched status of CEC_RX_RDY1_RAW signal. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. When a message has been received into Buffer 1, this bit is set. Once set, this bit will remain high until the interrupt is cleared via CEC_RX_RDY0_CLR. Function CEC_RX_RDY1_ST 0 (default) 1 Description No change New CEC message received in Buffer 1 CEC_RX_RDY2_ST, IO, Address 0x93[5] (Read Only) Latched status of CEC_RX_RDY2_RAW signal. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. When a message has been received into Buffer 2, this bit is set. Once set, this bit will remain high until the interrupt is cleared via CEC_RX_RDY0_CLR. Function CEC_RX_RDY2_ST 0 (default) 1 Description No change New CEC message received in Buffer 2 When a message (other than a polling message) is received it is loaded into the first available frame buffer (starting with Buffer 0) and a 2-bit time stamp is generated for that buffer. If the corresponding interrupt mask bit is set the status bit relating to that buffer is set and an interrupt is generated to alert the host processor to the fact that a message has been received. When all three frame buffers are full, the receive module can no longer receive CEC messages and will not acknowledge any new messages (other than polling messages). In the case that only one frame buffer is enabled (the default condition) then only one message can be received. In this case the received message is always available in Buffer 0. The host can read the receive buffers (refer to Table 63, Table 64 and Table 65) to get the messages that were addressed to the CEC receiver. The length of each received message is available in the corresponding frame length register. Table 63. CEC Incoming Frame Buffer 0 Registers Register Name CEC_BUF0_RX_FRAME_HEADER[7:0] CEC_BUF0_RX_FRAME_DATA0[7:0] CEC_BUF0_RX_FRAME_DATA1[7:0] CEC_BUF0_RX_FRAME_DATA2[7:0] CEC_BUF0_RX_FRAME_DATA3[7:0] CEC_BUF0_RX_FRAME_DATA4[7:0] CEC_BUF0_RX_FRAME_DATA5[7:0] CEC_BUF0_RX_FRAME_DATA6[7:0] CEC_BUF0_RX_FRAME_DATA7[7:0] CEC_BUF0_RX_FRAME_DATA8[7:0] CEC_BUF0_RX_FRAME_DATA9[7:0] CEC_BUF0_RX_FRAME_DATA10[7:0] CEC_BUF0_RX_FRAME_DATA11[7:0] CEC_BUF0_RX_FRAME_DATA12[7:0] CEC_BUF0_RX_FRAME_DATA13[7:0] CEC_BUF0_RX_FRAME_DATA14[7:0] CEC Map Address 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F 0x20 0x21 0x22 0x23 0x24 Description Header of message in Frame Buffer 0 Byte 0 of message in Frame Buffer 0 Byte 1 of message in Frame Buffer 0 Byte 2 of message in Frame Buffer 0 Byte 3 of message in Frame Buffer 0 Byte 4 of message in Frame Buffer 0 Byte 5 of message in Frame Buffer 0 Byte 6 of message in Frame Buffer 0 Byte 7 of message in Frame Buffer 0 Byte 8 of message in Frame Buffer 0 Byte 9 of message in Frame Buffer 0 Byte 10 of message in Frame Buffer 0 Byte 11 of message in Frame Buffer 0 Byte 12 of message in Frame Buffer 0 Byte 13 of message in Frame Buffer 0 Byte 14 of message in Frame Buffer 0 Rev. 0 | Page 144 of 184 Hardware User Guide UG-438 CEC_BUF0_RX_FRAME_LENGTH[4:0], Addr 80 (CEC), Address 0x25[4:0] (Read Only) Function CEC_BUF0_RX_FRAME_LENGTH[4:0] xxxxx Description The total number of bytes (including header byte) that were received into Buffer 0 CEC_CLR_RX_RDY0, Addr 80 (CEC), Address 0x2C[1] (Self-Clearing) Clear control for CEC_RX_RDY0. Function CEC_CLR_RX_RDY0 0 (default) 1 Description Retain the value of the CEC_RX_RDY0 flag Clear the value of the CEC_RX_RDY0 flag Table 64. CEC Incoming Frame Buffer 1 Registers Register Name CEC_BUF1_RX_FRAME_HEADER[7:0] CEC_BUF1_RX_FRAME_DATA0[7:0] CEC_BUF1_RX_FRAME_DATA1[7:0] CEC_BUF1_RX_FRAME_DATA2[7:0] CEC_BUF1_RX_FRAME_DATA3[7:0] CEC_BUF1_RX_FRAME_DATA4[7:0] CEC_BUF1_RX_FRAME_DATA5[7:0] CEC_BUF1_RX_FRAME_DATA6[7:0] CEC_BUF1_RX_FRAME_DATA7[7:0] CEC_BUF1_RX_FRAME_DATA8[7:0] CEC_BUF1_RX_FRAME_DATA9[7:0] CEC_BUF1_RX_FRAME_DATA10[7:0] CEC_BUF1_RX_FRAME_DATA11[7:0] CEC_BUF1_RX_FRAME_DATA12[7:0] CEC_BUF1_RX_FRAME_DATA13[7:0] CEC_BUF1_RX_FRAME_DATA14[7:0] CEC Map Address 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F 0x60 0x61 0x62 0x63 Description Header of message in Frame Buffer 1 Byte 0 of message in Frame Buffer 1 Byte 1 of message in Frame Buffer 1 Byte 2 of message in Frame Buffer 1 Byte 3 of message in Frame Buffer 1 Byte 4 of message in Frame Buffer 1 Byte 5 of message in Frame Buffer 1 Byte 6 of message in Frame Buffer 1 Byte 7 of message in Frame Buffer 1 Byte 8 of message in Frame Buffer 1 Byte 9 of message in Frame Buffer 1 Byte 10 of message in Frame Buffer 1 Byte 11 of message in Frame Buffer 1 Byte 12 of message in Frame Buffer 1 Byte 13 of message in Frame Buffer 1 Byte 14 of message in Frame Buffer 1 CEC_BUF1_RX_FRAME_LENGTH[4:0], Addr 80 (CEC), Address 0x64[4:0] (Read Only) Function CEC_BUF1_RX_FRAME_LENGTH[4:0] xxxxx Description The total number of bytes (including header byte) that were received into buffer 1 CEC_CLR_RX_RDY1, Addr 80 (CEC), Address 0x2C[2] (Self-Clearing) Clear control for CEC_RX_RDY1. Function CEC_CLR_RX_RDY1 0 (default) 1 Description Retain the value of the CEC_ RX_RDY1 flag Clear the value of the CEC_RX_RDY1 flag Rev. 0 | Page 145 of 184 UG-438 Hardware User Guide Table 65. CEC Incoming Frame Buffer 2 Registers Register Name CEC_BUF2_RX_FRAME_HEADER[7:0] CEC_BUF2_RX_FRAME_DATA0[7:0] CEC_BUF2_RX_FRAME_DATA1[7:0] CEC_BUF2_RX_FRAME_DATA2[7:0] CEC_BUF2_RX_FRAME_DATA3[7:0] CEC_BUF2_RX_FRAME_DATA4[7:0] CEC_BUF2_RX_FRAME_DATA5[7:0] CEC_BUF2_RX_FRAME_DATA6[7:0] CEC_BUF2_RX_FRAME_DATA7[7:0] CEC_BUF2_RX_FRAME_DATA8[7:0] CEC_BUF2_RX_FRAME_DATA9[7:0] CEC_BUF2_RX_FRAME_DATA10[7:0] CEC_BUF2_RX_FRAME_DATA11[7:0] CEC_BUF2_RX_FRAME_DATA12[7:0] CEC_BUF2_RX_FRAME_DATA13[7:0] CEC_BUF2_RX_FRAME_DATA14[7:0] CEC Map Address 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F 0x70 0x71 0x72 0x73 0x74 Description Header of message in Frame Buffer 2 Byte 0 of message in Frame Buffer 2 Byte 1 of message in Frame Buffer 2 Byte 2 of message in Frame Buffer 2 Byte 3 of message in Frame Buffer 2 Byte 4 of message in Frame Buffer 2 Byte 5 of message in Frame Buffer 2 Byte 6 of message in Frame Buffer 2 Byte 7 of message in Frame Buffer 2 Byte 8 of message in Frame Buffer 2 Byte 9 of message in Frame Buffer 2 Byte 10 of message in Frame Buffer 2 Byte 11 of message in Frame Buffer 2 Byte 12 of message in Frame Buffer 2 Byte 13 of message in Frame Buffer 2 Byte 14 of message in Frame Buffer 2 CEC_BUF2_RX_FRAME_LENGTH[4:0], Addr 80 (CEC), Address 0x75[4:0] (Read Only) Function CEC_BUF2_RX_FRAME_LENGTH[4:0] xxxxx Description The total number of bytes (including header byte) that were received into buffer 2 CEC_CLR_RX_RDY2, Addr 80 (CEC), Address 0x2C[3] (Self-Clearing) Clear control for CEC_RX_RDY2. Function CEC_CLR_RX_RDY2 0 (default) 1 Description Retain the value of the CEC_RX_RDY2 flag Clear the value of the CEC_RX_RDY2 flag CEC Message Reception Overview This section describes how messages are received and stored when only one frame buffer is enabled (default condition). 1. 2. 3. Initially the receive buffer (Buffer 0) is empty. A message is received and stored in receive buffer 0, and CEC_BUF0_TIMESTAMP is set to 0b01. If the corresponding interrupt mask bit is set CEC_RX_RDY0_ST goes high and an interrupt is generated to alert the host processor that a message has been received. No more messages can be received until the processor reads out the received message. The host processor responds to the interrupt, or polls the CEC_BUF0_TIMESTAMP register and realizes a message has been received, and reads receive buffer 0. Once the message is read the processor sets CEC_RX_RDY0_CLR which resets the buffer 0 timestamp to 0b00 and will also clear the buffer 0 status bit (if applicable). The CEC module is now ready to receive the next incoming message. This section describes how messages are received and stored, how the time stamps are generated, and what happens when the host reads a received message when all three frame buffers are enabled. 1. 2. 3. 4. Initially all buffers are empty and all time stamps are 0b00. A message is received and stored in receive buffer 0, and CEC_BUF0_TIMESTAMP is set to 0b01. If the corresponding interrupt mask bit is set CEC_RX_RDY0_ST goes high and an interrupt is generated to alert the host processor that a message has been received. Another message is received and stored in Receive Buffer 1, and CEC_BUF1_TIMESTAMP is set to 0b10. If the corresponding interrupt mask bit is set CEC_RX_RDY1_ST goes high and an interrupt is generated to alert the host processor that a message has been received. The host processor responds to the interrupts, or polls the timestamps and realizes that messages have been received, and reads the three time stamps to determine which receive buffer to read first. The buffer with the earliest time stamp should be read first, so in this example the processor should read Receive Buffer 0 first. Once the message has been read the processor sets CEC_RX_RDY0_CLR, which resets the Buffer 0 timestamp to 0b00 and will also clear the buffer 0 status bit (if applicable). Rev. 0 | Page 146 of 184 Hardware User Guide 5. 6. 7. UG-438 Another message is received. The receiver module checks to see which of the three buffers are available, starting with Buffer 0. In this example, Buffer 0 has been read out already by the host processor and is available so the new message is stored in Receive Buffer 0. At this time the timestamp for Receive Buffer 1 is adjusted to 0b01 to show that it contains the first received message, and a timestamp of 0b10 is assigned to Receive Buffer 0 to show that it contains the second received message. If the corresponding interrupt mask bit is set the CEC_RX_RDY0_ST bit goes high and an interrupt is generated to alert the host processor that a message has been received. Another message is received. This message is stored in Receive Buffer 2 (Buffer 0 and Buffer 1 are full). Time stamp 0b11 is assigned to Receive Buffer 2 to show that it contains an unread message that was the third to be received. If the corresponding interrupt mask bit is set the CEC_RX_RDY2_ST bit goes high and an interrupt is generated to alert the host processor that a message has been received. At this time all receive buffers are full and no more messages can be received until the processor reads at least one message. The host processor responds to the interrupts, or polls the timestamps and realizes that messages have been received, and reads the three time stamps. The buffer with the earliest time stamp should be read first, therefore Receive Buffer 1 is read first, followed by Receive Buffer 0 and then Receive Buffer 2. Once the messages are read the processor sets CEC_RX_RDY0_CLR, CEC_RX_RDY1_CLR, and CEC_RX_RDY2_CLR. The time stamps for all three buffers are reset to 0b00. ANTIGLITCH FILTER MODULE This module is used to remove any glitches on the CEC bus to make the CEC input signal cleaner before it enters the CEC module. The glitch filter is programmable through the CEC_GLITCH_FILTER_CTRL register. The register value specifies the minimum pulse width that will be passed through by the module. Any pulses with narrower widths will be rejected. There is a CEC_GLITCH_FILTER_CTRL + 1 number of clock delays introduced by the antiglitch filter. CEC_GLITCH_FILTER_CTRL[5:0], Addr 80 (CEC), Address 0x2B[5:0] The CEC input signal is sampled by the input clock (XTAL clock). CEC_GLITCH_FILTER_CTRL specifies the minimum pulse width requirement in input clock cycles. Pulses of widths less than the minimum specified width are considered glitches and will be removed by the filter. Function CEC_GLITCH_FILTER_CTRL[5:0] 000000 000001 000010 … 000111 (default) … 111111 Description Disable the glitch filter Filter out pulses with width less than 1 clock cycle Filter out pulses with width less than 2 clock cycles … Filter out pulses with width less than 7 clock cycles … Filter out pulses with width less than 63 clock cycles Rev. 0 | Page 147 of 184 UG-438 Hardware User Guide TYPICAL OPERATION FLOW This section describes the algorithm that should be implemented in the host processor controlling the CEC module. Initializing CEC Module Figure 59 shows the flow that can be implemented in the host processor controlling the ADV7610 to initialize the CEC module. START SET CEC_POWER_UP TO 1 ENABLE CEC_RX_RDY0_ST CEC_RX_RDY1_ST CEC_RX_RDY2_ST INTERRUPT SET CEC_TX_RETRY TO 3 ENABLE CEC_TX_ARBITRATION_LOST_ST INTERRUPT SET CEC_CLR_RX_RDY0 CEC_CLR_RX_RDY1 CEC_CLR_RX_RDY2 TO 1 ENABLE CEC_TX_RETRY_TIMEOUT_ST INTERRUPT SET CEC_USE_ALL_BUFS TO 1 END Figure 59. CEC Module Initialization Rev. 0 | Page 148 of 184 10884-065 ENABLE_CEC_TX_READY_ST INTERRUPT Hardware User Guide UG-438 Using CEC Module as Initiator Figure 60 shows the algorithm that can be implemented in the host processor controlling the ADV7610 to use the CEC module as an initiator. START WRITE THE OUTGOING CEC COMMAND INTO THE OUTGOING MESSAGE REGISTERS (CEC MAP REG 0x00 TO 0x0F) SET CEC_TX_FRAME_LENGTH ACCORDING TO THE NUMBER OF BYTES IN THE OUTGOING MESSAGE SET CEC_TX_ENABLE TO 1 NO IS CEC_TX_ARBITRATION_LOST_ST? NO IS CEC_TX_RETRY_TIMEOUT_ST? NO YES YES YES SET CEC_TX_READY_CLR TO 1 SET CEC_TX_ARBITRATION_LOST_CLR TO 1 SET CEC_TX_RETRY_TIMEOUT_CLR TO 1 THE LAST CEC MESSAGE WAS SENT WITHOUT ERROR THE CEC CONTROLLER LOST ARBITRATION DURING THE TRANSMISSION OF THE LAST CEC MESSAGE THE LAST MESSAGE SENT BY THE CEC CONTROLLER WAS NOT ACKNOWLEDGED BY THE TARGET DEVICE WITHIN THE NUMBER OF TRANSMISSION ATTEMPTS SPECIFIED IN CEC_TX_RETRY[2:0] END Figure 60. Using CEC Module as Initiator Rev. 0 | Page 149 of 184 10884-066 IS CEC_TX_READY_ST? UG-438 Hardware User Guide Using CEC Module as Follower Figure 61 shows the algorithm that can be implemented in the host processor controlling the ADV7610 to use the CEC module as a follower. START (WAIT FOR INTERRUPT) CEC_RX_RDY0_ST = 1? NO YES CEC_RX_RDY1_ST = 1? CEC_RX_RDY2_ST = 1? YES NO YES READ CEC_BUF0_TIMESTAMP CEC_BUF1_TIMESTAMP CEC_BUF2_TIMESTAMP AND NOTE THE MAXIMUM VALUE READ THE BUFFER ASSOCIATED WITH TIMESTAMP = 0b10 READ THE BUFFER ASSOCIATED WITH TIMESTAMP = 0b01 REACHED MAXIMUM TIMESTAMP? YES NO REACHED MAXIMUM TIMESTAMP? READ THE BUFFER ASSOCIATED WITH TIMESTAMP = 0b11 NO YES SET THE APPROPRIATE CLEAR BITS CEC_RX_RDY0_CLR CEC_RX_RDY1_CLR CEC_RX_RDY2_CLR CORRESPONDING TO THE BUFFERS THAT HAVE BEEN READ END Figure 61. Using CEC Module as Follower Rev. 0 | Page 150 of 184 10884-067 NO Hardware User Guide UG-438 LOW POWER CEC MESSAGE MONITORING The ADV7610 can be programmed to monitor the CEC line for messages that contain specific, user-programmable opcodes. These are referred to as “WAKE_OPCODEs” as they allow the system to go into a low power or sleep mode and be woken up when an opcode of interest is received, without the host processor having to check each received message. The default values of the wake_opcode registers are detailed in this section. All of these registers can be overwritten as required by the host processor. For each of the 8 WAKE_OPCODE registers there is a corresponding raw flag, a status bit and a clear bit. If one of the WAKE_OPCODEs is received, the corresponding raw flag will go high for a brief period of time. If the appropriate interrupt mask bit is set the status bit will go high and remain high until cleared by the clear bit, and an interrupt will also be generated. CEC_WAKE_OPCODE0[7:0], Addr 80 (CEC), Address 0x78[7:0] CEC_WAKE_OPCODE0 This value can be set to a CEC opcode that requires a response. On receipt of this opcode, the Rx generates an interrupt that can be used to alert the system that a CEC opcode of interest has been received and requires a response. Function CEC_WAKE_OPCODE0[7:0] 01101101 (default) xxxxxxxx Description Power on User specified OPCODE to respond to CEC_WAKE_OPCODE1[7:0], Addr 80 (CEC), Address 0x79[7:0] CEC_WAKE_OPCODE1 This value can be set to a CEC opcode that requires a response. On receipt of this opcode, the Rx generates an interrupt that can be used to alert the system that a CEC opcode of interest has been received and requires a response. Function CEC_WAKE_OPCODE1[7:0] 10001111 (default) xxxxxxxx Description Give power status User specified OPCODE to respond to CEC_WAKE_OPCODE2[7:0], Addr 80 (CEC), Address 0x7A[7:0] CEC_WAKE_OPCODE2 This value can be set to a CEC opcode that requires a response. On receipt of this opcode the Rx generates an interrupt that can be used to alert the system that a CEC opcode of interest has been received and requires a response. Function CEC_WAKE_OPCODE2[7:0] 10000010 (default) xxxxxxxx Description Active source User specified OPCODE to respond to CEC_WAKE_OPCODE3[7:0], Addr 80 (CEC), Address 0x7B[7:0] CEC_WAKE_OPCODE3 This value can be set to a CEC opcode that requires a response. On receipt of this opcode, the Rx generates an interrupt that can be used to alert the system that a CEC opcode of interest has been received and requires a response. Function CEC_WAKE_OPCODE3[7:0] 00000100 (default) xxxxxxxx Description Image view on User specified OPCODE to respond to Rev. 0 | Page 151 of 184 UG-438 Hardware User Guide CEC_WAKE_OPCODE4[7:0], Addr 80 (CEC), Address 0x7C[7:0] CEC_WAKE_OPCODE4 This value can be set to a CEC opcode that requires a response. On receipt of this opcode, the Rx generates an interrupt that can be used to alert the system that a CEC opcode of interest has been received and requires a response. Function CEC_WAKE_OPCODE4[7:0] 00001101 (default) xxxxxxxx Description TEXT VIEW ON User specified OPCODE to respond to CEC_WAKE_OPCODE5[7:0], Addr 80 (CEC), Address 0x7D[7:0] CEC_WAKE_OPCODE5 This value can be set to a CEC opcode that requires a response. On receipt of this opcode, the Rx generates an interrupt that can be used to alert the system that a CEC opcode of interest has been received and requires a response. Function CEC_WAKE_OPCODE5[7:0] 01110000 (default) xxxxxxxx Description SYSTEM AUDIO MODE REQUEST User specified OPCODE to respond to CEC_WAKE_OPCODE6[7:0], Addr 80 (CEC), Address 0x7E[7:0] CEC_WAKE_OPCODE6 This value can be set to a CEC opcode that requires a response. On receipt of this opcode, the Rx generates an interrupt that can be used to alert the system that a CEC opcode of interest has been received and requires a response. Function CEC_WAKE_OPCODE6[7:0] 01000010 (default) xxxxxxxx Description DECK CONTROL User specified OPCODE to respond to CEC_WAKE_OPCODE7[7:0], Addr 80 (CEC), Address 0x7F[7:0] CEC_WAKE_OPCODE7 This value can be set to a CEC opcode that requires a response. On receipt of this opcode, the Rx generates an interrupt that can be used to alert the system that a CEC opcode of interest has been received and requires a response. Function CEC_WAKE_OPCODE7[7:0] 01000001 (default) xxxxxxxx Description PLAY User specified OPCODE to respond to Rev. 0 | Page 152 of 184 Hardware User Guide UG-438 INTERRUPTS INTERRUPT ARCHITECTURE OVERVIEW The ADV7610 interrupt architecture provides four different types of bits, namely • • • • Raw bits Status bits Interrupt mask bits Clear bits Raw bits are defined as being either edge-sensitive or level-sensitive. The following example compares AVI_INFO_RAW and NEW_AVI_INFO_RAW to demonstrate the difference. AVI_INFO_RAW, IO, Address 0x60[0] (Read Only) Raw status of AVI InfoFrame detected signal. This bit is set to one when an AVI InfoFrame is received and is reset to zero if no AVI InfoFrame is received for more than 7 VSyncs (on the eighth VSync leading edge following the last received AVI InfoFrame), after an HDMI packet detection reset or upon writing to AVI_PACKET_ID. Function AVI_INFO_RAW 0 (default) 1 Description No AVI InfoFrame has been received within the last seven VSyncs or since the last HDMI packet detection reset An AVI InfoFrame has been received within the last seven VSyncs NEW_AVI_INFO_RAW, IO, Address 0x79[0] (Read Only) Status of the new AVI InfoFrame interrupt signal. When set to 1, it indicates that an AVI InfoFrame has been received with new contents. Once set, this bit will remain high until the interrupt is cleared via NEW_AVI_INFO_CLR. Function NEW_AVI_INFO_RAW 0 (default) 1 Description No new AVI InfoFrame received AVI InfoFrame with new content received In the case of AVI_INFO_RAW, this bit always represents the current status of whether or not the part is receiving AVI InfoFrames. It is not a latched bit and never requires to be cleared. This is the definition of a level-sensitive raw bit. In the case of NEW_AVI_INFO_RAW the same strategy would not work. If the NEW_AVI_INFO_RAW bit were to behave in the same way as AVI_INFO_RAW it would go high at the instant the new InfoFrame was received, and would go low again some clock cycles afterwards. This is because a new InfoFrame is only new the instant it is received, and once received it no longer new, so the event to set this bit only last for an instant and is then gone. Having a raw bit that is only held high for an instant is not useful. Therefore, for these types of events, the raw bit is latched, and must be cleared by the corresponding clear bit. Accordingly, the raw bit does not truly represent the current status; instead, it represents the status of an edge event that happened in the past. This is the definition of an edge-sensitive raw bit. All raw bits, with the exceptions of INTRQ_RAW and INTRQ2_RAW, have corresponding status bits. The status bits always work in the same manner whether the raw bit is edge or level sensitive. Status bits have the following characteristics • • A status bit must be enabled by setting either or both of the corresponding interrupt mask bits Status bits are always latched, and must be cleared by the corresponding clear bit. When either of the interrupt mask bits for a given interrupt is set, if that raw bit changes state the corresponding status bit goes high and an interrupt is generated on the INT1 or INT2 pin, depending on which interrupt mask bit was set. The status bit must be cleared using the appropriate clear bit. The status bits, interrupt mask bits, and clear bits for AVI_INFO and NEW_AVI_INFO are described here for completeness. Rev. 0 | Page 153 of 184 UG-438 Hardware User Guide AVI_INFO_ST, IO, Address 0x61[0] (Read Only) Latched status of AVI_INFO_RAW signal. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Once set, this bit will remain high until the interrupt is cleared via AVI_INFO_CLR. Function AVI_INFO_ST 0 (default) 1 Description AVI_INFO_RAW has not changed state AVI_INFO_RAW has changed state NEW_AVI_INFO_ST, IO, Address 0x7A[0] (Read Only) Latched status for the NEW_AVI_INFO_RAW. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Once set, this bit will remain high until the interrupt is cleared via NEW_AVI_INFO_CLR. Function NEW_AVI_INFO_ST 0 (default) 1 Description NEW_AVI_INFO_RAW has not changed state NEW_AVI_INFO_RAW has changed state AVI_INFO_CLR, IO, Address 0x62[0] (Self-Clearing) Clear bit for AVI_INFO_RAW and AVI_INFO_ST bits. Function AVI_INFO_CLR 0 (default) 1 Description No function Clear AVI_INFO_RAW and AVI_INFO_ST NEW_AVI_INFO_CLR, IO, Address 0x7B[0] (Self-Clearing) Clear bit for NEW_AVI_INFO_RAW and NEW_AVI_INFO_ST bits. Function NEW_AVI_INFO_CLR 0 (default) 1 Description No function Clear NEW_AVI_INFO_RAW and NEW_AVI_INFO_ST AVI_INFO_MB1, IO, Address 0x64[0] INT1 interrupt mask for AVI InfoFrame detection interrupt. When set an AVI InfoFrame detection event will cause AVI_INFO_ST to be set and an interrupt will be generated on INT1. Function AVI_INFO_MB1 0 (default) 1 Description Disables AVI Info frame detection interrupt for INT1 Enables AVI Info frame detection interrupt for INT1 AVI_INFO_MB2, IO, Address 0x63[0] INT2 interrupt mask for AVI InfoFrame detection interrupt. When set an AVI InfoFrame detection event will cause AVI_INFO_ST to be set and an interrupt will be generated on INT2. Function AVI_INFO_MB2 0 (default) 1 Description Disables AVI Info frame detection interrupt for INT2 Enables AVI Info frame detection interrupt for INT2 NEW_AVI_INFO_MB1, IO, Address 0x7D[0] INT1 interrupt mask for new AVI InfoFrame detection interrupt. When set a new AVI InfoFrame detection event will cause NEW_AVI_INFO_ST to be set and an interrupt will be generated on INT1. Function NEW_AVI_INFO_MB1 0 (default) 1 Description Disables new AVI InfoFrame interrupt for INT1 Enables new AVI InfoFrame interrupt for INT1 Rev. 0 | Page 154 of 184 Hardware User Guide UG-438 NEW_AVI_INFO_MB2, IO, Address 0x7C[0] INT2 interrupt mask for new AVI InfoFrame detection interrupt. When set a new AVI InfoFrame detection event will cause NEW_AVI_INFO_ST to be set and an interrupt will be generated on INT2. Function NEW_AVI_INFO_MB2 0 (default) 1 Description Disables new SPD InfoFrame interrupt for INT2 Enables new SPD InfoFrame interrupt for INT2 See Figure 62 through Figure 64. xxx_RAW INTERNAL STATUS FLAG xxx_ST CHANGE DETECTION (RISING AND FALLING EDGE) SAMPLING HOLD UNTIL CLEARED APPLY MASK xxx_CLR xxx_MB1 INTERRUPT PATH FOR LEVEL SENSITIVE INTERRUPTS INT OUTPUT OR yyy_CLR SAMPLING INTERRUPT PATH FOR EDGE SENSITIVE INTERRUPTS HOLD UNTIL CLEARED APPLY MASK yyy_RAW yyy_ST 10884-068 INTERNAL PULSE FLAG CHANGE DETECTION (RISING EDGE) yyy_MB1 Figure 62. Level and Edge Sensitive Raw, Status and Interrupt Generation AVI INFOFRAME DETECTION INTERNAL FLAG NO AVI INFOFRAME DETECTED AVI INFOFRAME DETECTED AVI_INFO_RAW AVI_INFO_ST AVI_INFO_CLR SET TO 1 TIME TAKEN BY THE CPU TO CLEAR AVI_INFO_ST TIME TAKEN BY THE CPU TO CLEAR AVI_INFO_ST Figure 63. AVI_INFO_RAW and AVI_INFO_ST Timing Rev. 0 | Page 155 of 184 10884-069 AVI_INFO_CLR SET TO 1 UG-438 Hardware User Guide NEW AVI INFOFRAME DETECTION INTERNAL PULSE FLAG AVI INFOFRAME WITH NEW CONTENT DETECT TIME > 2XTAL PERIODS NEW_AVI_INFO_RAW NEW_AVI_INFO_ST TIME TAKEN BY THE CPU TO CLEAR NEW_AVI_INFO_ST 10884-070 NEW_AVI_INFO_CLR SET TO 1 Figure 64. NEW_AVI_INFO_RAW and NEW_AVI_INFO_ST Timing In this section, all raw bits are classified as being triggered by either level sensitive or edge sensitive events, with the following understanding of the terminology • Level sensitive events are events that are generally either high or low and are not expected to change rapidly. The raw bit for level sensitive events is not latched and therefore always represents the true real-time status of the event in question. • Edge sensitive events are events that only exist for an instant. The raw bits for edge sensitive events are latched and therefore represent the occurrence of an edge sensitive event that happened in the past. Raw bits for edge sensitive events must be cleared by the corresponding clear bit. INTERRUPT PINS The ADV7610 features two dedicated interrupt pins, INT1 and INT2. INT1 is always enabled, but INT2 is disabled by default and must be enabled using the following I2C control. INTRQ2_MUX_SEL[1:0], IO, Address 0x41[1:0] Interrupt signal configuration control for INT2 Function INTRQ2_MUX_SEL[1:0] 00 (default) 01 10 11 Description INT2 disabled INT2 in MCLK/INT2 pin INT2 in SCLK/INT2 pin INT2 in HPA_A/INT2 pin Notes • • • • INT1 is in a high impedance state after reset as the ADV7610 resets with open drain enabled on INT1. The ADV7610 resets with the INT2 disabled. The INTRQ2_MUX_SEL[1:0] bit in the IO Map must be set in order to enable the INT2 function on the one of the pins: MCLK/INT2, SCLK/INT2, HPA_A/INT2. The ADV7610 resets with all interrupts masked off on INT1 and INT2. An interrupt is enabled for a specific event by masking the corresponding mask bit in the IO map. Rev. 0 | Page 156 of 184 Hardware User Guide UG-438 Interrupt Duration The interrupt duration can be programmed independently for INT1 and INT2. When an interrupt event occurs, the interrupt pin INT1 or INT2 becomes active with a programmable duration as described below. INTRQ_DUR_SEL[1:0], IO, Address 0x40[7:6] A control to select the interrupt signal duration for the interrupt signal on INT1. Function INTRQ_DUR_SEL[1:0] 00 (default) 01 10 11 Description 4 Xtal periods 16 Xtal periods 64 Xtal periods Active until cleared INTRQ2_DUR_SEL[1:0], IO, Address 0x41[7:6] A control to select the interrupt signal duration for the interrupt signal on INT2. Function INTRQ2_DUR_SEL[1:0] 00 (default) 01 10 11 Description 4 Xtal periods 16 Xtal periods 64 Xtal periods Active until cleared Interrupt Drive Level The drive level of INT1 and INT2 can be programmed as described below. INTRQ_OP_SEL[1:0], IO, Address 0x40[1:0] Interrupt signal configuration control for INT1. Function INTRQ_OP_SEL[1:0] 00 (default) 01 10 11 Description Open drain Drives low when active Drives high when active Disabled INT2_POL, IO, Address 0x41[2] INT2 polarity control. Function INT2_POL 0 (default) 1 Description INT2 high when active INT2 low when active Interrupt Manual Assertion It is possible to manually generate an interrupt on the INT1 and INT2 pins by setting MPU_STIM_INTRQ. This feature is designed for debug use and not intended for use in normal operation. The appropriate mask bit must be set to generate an interrupt at the pin. MPU_STIM_INTRQ, IO, Address 0x40[2] Manual interrupt set control. This feature should be used for test purposes only. Note that the appropriate mask bit must be set to generate an interrupt at the pin. Function MPU_STIM_INTRQ 0 (default) 1 Description Disables manual interrupt mode Enables manual interrupt mode Rev. 0 | Page 157 of 184 UG-438 Hardware User Guide MPU_STIM_INTRQ_MB1, IO, Address 0x4B[7] INT1 interrupt mask for manual forced interrupt signal. When set the manual forced interrupt will trigger the INT1 interrupt and MPU_STIM_INTRQ_ST will indicate the interrupt status. Function MPU_STIM_INTRQ_MB1 0 (default) 1 Description Disables manual forced interrupt for INT1 Enables manual forced interrupt for INT1 MPU_STIM_INTRQ_MB2, IO, Address 0x4A[7] INT2 interrupt mask for manual forced interrupt signal. When set the manual forced interrupt will trigger the INT2 interrupt and MPU_STIM_INTRQ_ST will indicate the interrupt status. Function MPU_STIM_INTRQ_MB2 0 (default) 1 Description Disables manual forced interrupt for INT2 Enables manual forced interrupt for INT2 Multiple Interrupt Events If an interrupt event occurs, and then a second interrupt event occurs before the system controller has cleared or masked the first interrupt event, the ADV7610 does not generate a second interrupt signal. The system controller should check all unmasked interrupt status bits as more than one may be active. Table 66 lists the interrupt registers available and a brief description of their functions. For more details on the functionality of these interrupt registers, refer to the ADV7610 Software Manual. Refer to the IO Map section of the ADV7610 Software Manual for details of the CP core interrupts and HDMI core interrupts. Table 66. Interrupt Functions Available in ADV7610 Interrupt Register Interrupt Status 1 Interrupt Status 2 Interrupt Status 6 HDMI Lvl Int Status 1 HDMI Lvl Int Status 2 HDMI Lvl Int Status 3 HDMI Lvl Int Status 4 HDMI Edg Int Status 1 HDMI Edg Int Status 2 HDMI Edg Int Status 3 HDMI Edg Int Status 4 HDMI Edg Int Status 5 Location IO Map, Address 0x43 IO Map, Address 0x48 IO Map, Address 0x5C IO Map, Address 0x61 IO Map, Address 0x66 IO Map, Address 0x6B IO Map, Address 0x70 IO Map, Address 0x7A IO Map, Address 0x7F IO Map, Address 0x84 IO Map, Address 0x89 IO Map, Address 0x8E Description CP interrupt status for STDI CP interrupt status forces manual interrupt STDI channels interrupt status HDMI interrupt status for HDMI InfoFrame packets HDMI interrupt status for audio processing changes HDMI interrupt status for HDMI video parameters and cable detection HDMI interrupt status for cable detection and encryption HDMI interrupt status for newly received HDMI InfoFrame packets HDMI interrupt status for audio FIFO, clock regeneration and packet errors HDMI interrupt status for updates in deep color, video, AKSV, and audio HDMI interrupt status for changes in InfoFrame checksum errors HDMI interrupt status for background measurements and changes in InfoFrame checksum error Rev. 0 | Page 158 of 184 Hardware User Guide UG-438 DESCRIPTION OF INTERRUPT BITS This section lists all the raw bits in the IO map of the ADV7610 by category, and states whether the bit is an edge or level sensitive bit. A basic explanation for each bit is provided in the software manual and/or in the corresponding section of the hardware manual. For certain interrupts that require additional explanations, these are provided in the Additional Explanations section. General Operation • • • INTRQ_RAW (level sensitive event) INTRQ2_RAW (level sensitive event) MPU_STIM_INTRQ_RAW (edge sensitive event) HDMI Video Mode • • • • • • STDI_DATA_VALID_RAW (edge/level sensitive event; programmable). STDI_DVALID_CH1_RAW (edge/level sensitive event; programmable). Edge sensitive event on ADV7610 ES1. CP_UNLOCK_RAW (edge/level sensitive event; programmable). Edge sensitive event on ADV7610 ES1. CP_UNLOCK_CH1_RAW (edge/level sensitive event; programmable). Edge sensitive event on ADV7610 ES1. CP_LOCK_RAW (edge/level sensitive event; programmable).Edge sensitive event on ADV7610 ES1. CP_LOCK_CH1_RAW (edge/level sensitive event; programmable).Edge sensitive event on ADV7610 ES1. CEC The following raw bits are all related to CEC operation and are all edge sensitive events; it is, therefore, necessary to clear these bits. • • • • • • • CEC_RX_RDY2_RAW CEC_RX_RDY1_RAW CEC_RX_RDY0_RAW CEC_TX_RETRY_TIMEOUT_RAW CEC_TX_ARBITRATION_LOST_RAW CEC_TX_READY_RAW CEC_INTERRUPT_BYTE[7:0] HDMI Only Mode The following raw bits are all related to HDMI operation and are based on level sensitive events; it is, therefore, not necessary to clear these bits. • • • • • • • • • • • • • • • • • • • • • ISRC2_PCKT_RAW ISRC1_PCKT_RAW ACP_PCKT_RAW VS_INFO_RAW MS_INFO_RAW SPD_INFO_RAW AUDIO_INFO_RAW AVI_INFO_RAW CS_DATA_VALID_RAW INTERNAL_MUTE_RAW AV_MUTE_RAW AUDIO_CH_MD_RAW HDMI_MODE_RAW GEN_CTL_PCKT_RAW AUDIO_C_PCKT_RAW GAMUT_MDATA_RAW TMDSPLL_LCK_A_RAW TMDS_CLK_A_RAW HDMI_ENCRPT_A_RAW CABLE_DET_A_RAW V_LOCKED_RAW Rev. 0 | Page 159 of 184 UG-438 • • • Hardware User Guide DE_REGEN_LCK_RAW VIDEO_3D_RAW RI_EXPIRED_A_RAW The following raw bits are all related to HDMI operation and are based on edge sensitive events; it is, therefore, necessary to clear these bits using the corresponding clear bit. • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • NEW_ISRC2_PCKT_RAW NEW_ISRC1_PCKT_RAW NEW_ACP_PCKT_RAW NEW_VS_INFO_RAW NEW_MS_INFO_RAW NEW_SPD_INFO_RAW NEW_AUDIO_INFO_RAW NEW_AVI_INFO_RAW NEW_GAMUT_MDATA_RAW FIFO_NEAR_OVFL_RAW FIFO_NEAR_UFLO_RAW FIFO_UNDERFLO_RAW FIFO_OVERFLO_RAW CTS_PASS_THRSH_RAW CHANGE_N_RAW PACKET_ERROR_RAW AUDIO_PCKT_ERR_RAW DEEP_COLOR_CHNG_RAW VCLK_CHNG_RAW AUDIO_MODE_CHNG_RAW PARITY_ERROR_RAW NEW_SAMP_RT_RAW AUDIO_FLT_LINE_RAW NEW_TMDS_FRQ_RAW MS_INF_CKS_ERR_RAW SPD_INF_CKS_ERR_RAW AUD_INF_CKS_ERR_RAW AVI_INF_CKS_ERR_RAW AKSV_UPDATE_A_RAW VS_INF_CKS_ERR_RAW ADDITIONAL EXPLANATIONS STDI_DATA_VALID_RAW STDI_DATA_VALID_RAW is programmable as either an edge sensitive bit or a level sensitive bit using the following control. Note that this control also configures whether an interrupt is generated only on the rising edge of STDI_DATA_VALID_RAW or on both edges. STDI_DATA_VALID_EDGE_SEL, IO, Address 0x41[4] A control to configure the functionality of the STDI_DATA_VALID interrupt. The interrupt can be generated for the case when STDI changes to an STDI valid state. Alternatively, it can be generated to indicate a change in STDI_VALID status. Function STDI_DATA_VALID_EDGE_SEL 0 1 (default) Description Generate interrupt for a low to high change in STDI_VALID status Generate interrupt for a low to high or a high to low change in STDI_VALID status Rev. 0 | Page 160 of 184 Hardware User Guide UG-438 CP_LOCK, CP_UNLOCK CP_UNLOCK_RAW is programmable as either an edge sensitive bit or a level sensitive bit using the following control. Note that this control also configures whether an interrupt is generated only on the rising edge of CP_UNLOCK_RAW, or on both edges. CP_LOCK_UNLOCK_EDGE_SEL, IO, Address 0x41[5] A control to configure the functionality of the CP_LOCK, CP_UNLOCK interrupts. Function CP_LOCK_UNLOCK_EDGE_SEL 0 1 (default) Description Generate interrupt for a low to high change in CP_LOCK,UNLOCK status for Ch1. Generate interrupt for a low to high or a high to low change in CP_LOCK,UNLOCK status for Ch1. CP_LOCK_ST, IO, Address 0x43[2] (Read Only) Detailed description available in the List of Interrupt Status Registers section. CP_UNLOCK_ST, IO, Address 0x43[3] (Read Only) Detailed description available in the List of Interrupt Status Registers section. HDMI Interrupts Validity Checking Process All HDMI interrupts have a set of conditions that must be taken into account for validation in the display firmware. When the ADV7610 interrupts the display controller for an HDMI interrupt, the host must check that all validity conditions for that interrupt are met before processing that interrupt. For simplicity, HDMI interrupts can be subdivided into three groups, as listed in the following sections. Group 1 HDMI Interrupts The interrupts listed in Table 67 are valid irrespective of the mode in which the ADV7610 is configured, that is: HDMI mode (PRIM_MODE set to values 0x05 or 0x06). Table 67. HDMI Interrupts Group 1 Interrupts TMDS_CLK_A CABLE_DET_A Group 2 HDMI Interrupts The interrupts listed in Table 68 are valid on the condition that the ADV7610 is configured in HMDI mode. Table 68. HDMI Interrupts Group 2 Interrupts INTERNAL_MUTE VIDEO_PLL_LCK AKSV_UPDATE Rev. 0 | Page 161 of 184 UG-438 Hardware User Guide Group 3 HDMI Interrupts The interrupts listed in Table 69 are valid under the following conditions: • • • ADV7610 is configured in HMDI mode TMDS_CLK_A_RAW is set to 1 if Port A is the active HDMI port TMDSPLL_LCK_A_RAW is set to 1 Table 69. HDMI Interrupts Group 3 Interrupts ISRC2_PCKT ISRC1_PCKT ACP_PCKT VS_INFO MS_INFO SPD_INFO AUDIO_INFO AVI_INFO CS_DATA_VALID AV_MUTE AUDIO_CH_MD AUDIO_MODE_CHNG GEN_CTL_PCKT AUDIO_C_PCKT GAMUT_MDATA V_LOCKED DE_REGEN_LCK HDMI_MODE HDMI_ENCRPT_A NEW_ISRC2_PCKT NEW_ISRC1_ PCKT NEW_ACP_PCKT NEW_VS_INFO NEW_MS_INFO NEW_SPD_INFO NEW_AUDIO_INFO NEW_AVI_INFO FIFO_NEAR_OVFL CTS_PASS_THRSH CHANGE_N PACKET_ERROR AUDIO_PCKT_ERR NEW_GAMUT_MDATA DEEP_COLOR_CHNG VCLK_CHNG PARRITY_ERROR NEW_SAMP_RT AUDIO_FLT_LINE NEW_TMDS_FRQ FIFO_NEAR_UFLO VIDEO_3D_RAW RI_EXPIRED_A_RAW Rev. 0 | Page 162 of 184 Hardware User Guide UG-438 Storing Masked Interrupts STORE_UNMASKED_IRQS, IO, Address 0x40[4] STORE_MASKED_IRQS allows the HDMI status flags for any HDMI interrupt to be triggered regardless of whether the mask bits are set. This bit allows a HDMI interrupt to trigger and allows this interrupt to be read back through the corresponding status bit without triggering an interrupt on the interrupt pin. The status is stored until the clear bit is used to clear the status register and allows another interrupt to occur. Function STORE_UNMASKED_IRQS 0 (default) 1 Description Does not allow x_ST flag of any HDMI interrupt to be set independently of mask bits Allows x_ST flag of any HDMI interrupt to be set independently of mask bits List of Interrupt Status Registers INTERRUPT_STATUS_1 register consists of fields: STDI_DATA_VALID_ST, CP_UNLOCK_ST, and CP_LOCK_ST. STDI_DATA_VALID_ST, IO, Address 0x43[4] (Read Only) Latched signal status of STDI valid interrupt signal. Once set, this bit will remain high until the interrupt is cleared via STDI_DATA_VALID_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function STDI_DATA_VALID_ST 0 (default) 1 Description No STDI valid interrupt has occurred. A STDI valid interrupt has occurred. CP_UNLOCK_ST, IO, Address 0x43[3] (Read Only) Latched signal status of CP Unlock interrupt signal. Once set, this bit will remain high until the interrupt is cleared via CP_UNLOCK_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function CP_UNLOCK_ST 0 (default) 1 Description No CP UNLOCK interrupt event has occurred. A CP UNLOCK interrupt event has occurred. CP_LOCK_ST, IO, Address 0x43[2] (Read Only) Latched signal status of the CP lock interrupt signal. Once set, this bit will remain high until the interrupt is cleared via CP_LOCK_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function CP_LOCK_ST 0 (default) 1 Description No CP LOCK interrupt event has occurred. A CP LOCK interrupt event has occurred. INTERRUPT_STATUS_2 register consists of one field: MPU_STIM_INTRQ_ST. MPU_STIM_INTRQ_ST, IO, Address 0x48[7] (Read Only) Latched signal status of manual forced interrupt signal. Once set, this bit will remain high until the interrupt is cleared via MPU_STIM_INTRQ_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function MPU_STIM_INTRQ_ST 0 (default) 1 Description Forced manual interrupt event has not occurred. Force manual interrupt even has occurred. Rev. 0 | Page 163 of 184 UG-438 Hardware User Guide INTERRUPT_STATUS_6 register consists of fields: CP_LOCK_CH1_ST, CP_UNLOCK_CH1_ST, and STDI_DVALID_CH1_ST. CP_LOCK_CH1_ST, IO, Address 0x5C[3] (Read Only) Function CP_LOCK_CH1_ST 0 (default) 1 Description No change. An interrupt has not been generated from this register. Channel 1 CP input has caused the decoder to go from an unlocked state to a locked state. CP_UNLOCK_CH1_ST, IO, Address 0x5C[2] (Read Only) Function CP_UNLOCK_CH1_ST 0 (default) 1 Description No change. An interrupt has not been generated from this register. Channel 1 CP input has changed from a locked state to an unlocked state and has triggered an interrupt. STDI_DVALID_CH1_ST, IO, Address 0x5C[1] (Read Only) Latched signal status of STDI valid for Sync Channel 1 interrupt signal. Once set, this bit will remain high until the interrupt is cleared via STDI_DATA_VALID_CH1_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function STDI_DVALID_CH1_ST 0 (default) 1 Description No STDI valid for sync Channel 1 interrupt has occurred. A STDI valid for sync Channel 1 interrupt has occurred. HDMI Lvl INT Status 1 register consists of fields: ISRC2_PCKT_ST, ISRC1_PCKT_ST, ACP_PCKT_ST, VS_INFO_ST, MS_INFO_ST, SPD_INFO_ST, and AUDIO_INFO_ST. ISRC2_PCKT_ST, IO, Address 0x61[7] (Read Only) Latched status of ISRC2 packet detected interrupt signal. Once set, this bit will remain high until the interrupt is cleared via ISRC2_INFO_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function ISRC2_PCKT_ST 0 (default) 1 Description No interrupt generated from this register. ISRC2_PCKT_RAW has changed. Interrupt has been generated. ISRC1_PCKT_ST, IO, Address 0x61[6] (Read Only) Latched status of ISRC1 packet detected interrupt signal. Once set, this bit will remain high until the interrupt is cleared via ISRC1_INFO_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function ISRC1_PCKT_ST 0 (default) 1 Description No interrupt generated from this register. ISRC1_PCKT_RAW has changed. Interrupt has been generated. ACP_PCKT_ST, IO, Address 0x61[5] (Read Only) Latched status of audio content protection packet detected interrupt signal. Once set, this bit will remain high until the interrupt is cleared via ACP_INFO_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function ACP_PCKT_ST 0 (default) 1 Description No interrupt generated from this register. ACP_PCKT_RAW has changed. Interrupt has been generated. Rev. 0 | Page 164 of 184 Hardware User Guide UG-438 VS_INFO_ST, IO, Address 0x61[4] (Read Only) Latched status of vendor specific InfoFrame detected interrupt signal. Once set, this bit will remain high until the interrupt is cleared via VS_INFO_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function VS_INFO_ST 0 (default) 1 Description No interrupt generated from this register. VS_INFO_RAW has changed. Interrupt has been generated. MS_INFO_ST, IO, Address 0x61[3] (Read Only) Latched status of MPEG source InfoFrame detected interrupt signal. Once set, this bit will remain high until the interrupt is cleared via MS_INFO_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function MS_INFO_ST 0 (default) 1 Description No interrupt generated from this register. MS_INFO_RAW has changed. Interrupt has been generated. SPD_INFO_ST, IO, Address 0x61[2] (Read Only) Latched status of SPD InfoFrame detected interrupt signal. Once set, this bit will remain high until the interrupt is cleared via SPD_INFO_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function SPD_INFO_ST 0 (default) 1 Description No interrupt generated from this register. SPD_INFO_RAW has changed. Interrupt has been generated. AUDIO_INFO_ST, IO, Address 0x61[1] (Read Only) Latched status of audio InfoFrame detected interrupt signal. Once set, this bit will remain high until the interrupt is cleared via AUDIO_INFO_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function AUDIO_INFO_ST 0 (default) 1 Description No interrupt generated from this register. AUDIO_INFO_RAW has changed. Interrupt has been generated. AVI_INFO_ST, IO, Address 0x61[0] (Read Only) Detailed description is available in the Interrupt Architecture Overview section. HDMI Lvl INT Status 2 register consists of fields: CS_DATA_VALID_ST, INTERNAL_MUTE_ST, AV_MUTE_ST, AUDIO_CH_MD_ST, HDMI_MODE_ST, GEN_CTL_PCKT_ST, AUDIO_C_PCKT_ST, and GAMUT_MDATA_ST. CS_DATA_VALID_ST, IO, Address 0x66[7] (Read Only) Latched status of channel status data valid interrupt signal. Once set, this bit will remain high until the interrupt is cleared via ICS_DATA_VALID_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function CS_DATA_VALID_ST 0 (default) 1 Description CS_DATA_VALID_RAW has not changed. An interrupt has not been generated. CS_DATA_VALID_RAW has changed. An interrupt has been generated. INTERNAL_MUTE_ST, IO, Address 0x66[6] (Read Only) Latched status of internal mute interrupt signal. Once set, this bit will remain high until the interrupt is cleared via INTERNAL_MUTE_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function INTERNAL_MUTE_ST 0 (default) 1 Description INTERNAL_MUTE_RAW has not changed. An interrupt has not been generated. INTERNAL_MUTE_RAW has changed. An interrupt has been generated. Rev. 0 | Page 165 of 184 UG-438 Hardware User Guide AV_MUTE_ST, IO, Address 0x66[5] (Read Only) Latched status of AV mute detected interrupt signal. Once set, this bit will remain high until the interrupt is cleared via AV_MUTE_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function AV_MUTE_ST 0 (default) 1 Description AV_MUTE_RAW has not changed. An interrupt has not been generated. AV_MUTE_RAW has changed. An interrupt has been generated. AUDIO_CH_MD_ST, IO, Address 0x66[4] (Read Only) Latched status of audio channel mode interrupt signal. Once set, this bit will remain high until the interrupt is cleared via AUDIO_CH_MD_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function AUDIO_CH_MD_ST 0 (default) 1 Description AUDIO_CH_MD_RAW has not changed. An interrupt has not been generated. AUDIO_MODE_CHNG_RAW has changed. An interrupt has been generated. HDMI_MODE_ST, IO, Address 0x66[3] (Read Only) Latched status of HDMI mode interrupt signal. Once set, this bit will remain high until the interrupt is cleared via HDMI_MODE_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function HDMI_MODE_ST 0 (default) 1 Description HDMI_MODE_RAW has not changed. An interrupt has not been generated. (No Suggestions) has changed. An interrupt has been generated. GEN_CTL_PCKT_ST, IO, Address 0x66[2] (Read Only) Latched status of general control packet interrupt signal. Once set, this bit will remain high until the interrupt is cleared via GEN_CTL_PCKT_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function GEN_CTL_PCKT_ST 0 (default) 1 Description GEN_CTL_PCKT_RAW has not changed. Interrupt has not been generated from this register. GEN_CTL_PCKT_RAW has changed. Interrupt has been generated from this register. AUDIO_C_PCKT_ST, IO, Address 0x66[1] (Read Only) Latched status of audio clock regeneration packet interrupt signal. Once set, this bit will remain high until the interrupt is cleared via AUDIO_PCKT_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function AUDIO_C_PCKT_ST 0 (default) 1 Description AUDIO_C_PCKT_RAW has not changed. Interrupt has not been generated from this register. AUDIO_C_PCKT_RAW has changed. Interrupt has been generated from this register. GAMUT_MDATA_ST, IO, Address 0x66[0] (Read Only) Latched status of gamut metadata packet detected interrupt signal. Once set, this bit will remain high until the interrupt is cleared via GAMUT_MDATA_PCKT_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function GAMUT_MDATA_ST 0 (default) 1 Description GAMUT_MDATA_RAW has not changed. Interrupt has not been generated from this register. GAMUT_MDATA_RAW has changed. Interrupt has been generated from this register. HDMI Lvl INT Status 3 register consists of fields: TMDSPLL_LCK_A_ST, TMDS_CLK_A_ST, VIDEO_3D_ST, V_LOCKED_ST, and DE_REGEN_LCK_ST. TMDSPLL_LCK_A_ST, IO, Address 0x6B[6] (Read Only) Latched status of Port A TMDS PLL lock interrupt signal. Once set, this bit will remain high until the interrupt is cleared via TMDSPLL_LCK_A_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Rev. 0 | Page 166 of 184 Hardware User Guide Function TMDSPLL_LCK_A_ST 0 (default) 1 UG-438 Description TMDSPLL_LCK_A_RAW has not changed. An interrupt has not been generated. TMDSPLL_LCK_A_RAW has changed. An interrupt has been generated. TMDS_CLK_A_ST, IO, Address 0x6B[4] (Read Only) Latched status of Port A TMDS clock detection interrupt signal. Once set, this bit will remain high until the interrupt is cleared via TMDS_CLK_A_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function TMDS_CLK_A_ST 0 (default) 1 Description TMDS_CLK_A_RAW has not changed. An interrupt has not been generated. TMDS_CLK_A_RAW has changed. An interrupt has been generated. VIDEO_3D_ST, IO, Address 0x6B[2] (Read Only) Latched status for the video 3D interrupt. Once set, this bit will remain high until the interrupt is cleared via VIDEO_3D_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function VIDEO_3D_ST 0 (default) 1 Description VIDEO_3D_RAW has not changed. An interrupt has not been generated. VIDEO_3D_RAW has changed. An interrupt has been generated. V_LOCKED_ST, IO, Address 0x6B[1] (Read Only) Latched status for the vertical sync filter locked interrupt. Once set, this bit will remain high until the interrupt is cleared via V_LOCKED_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function V_LOCKED_ST 0 (default) 1 Description V_LOCKED_RAW has not changed. An interrupt has not been generated. V_LOCKED_RAW has changed. An interrupt has been generated. DE_REGEN_LCK_ST, IO, Address 0x6B[0] (Read Only) Latched status for DE regeneration lock interrupt signal. Once set, this bit will remain high until the interrupt is cleared via DE_REGEN_LCK_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function DE_REGEN_LCK_ST 0 (default) 1 Description DE_REGEN_LCK_RAW has not changed. An interrupt has not been generated. DE_REGEN_LCK_RAW has changed. An interrupt has been generated. HDMI Lvl INT Status 4 register consists of fields: HDMI_ENCRPT_A_ST and CABLE_DET_A_ST. HDMI_ENCRPT_A_ST, IO, Address 0x70[2] (Read Only) Latched status for Port A encryption detection interrupt signal. Once set, this bit will remain high until the interrupt is cleared via HDMI_ENCRPT_A_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function HDMI_ENCRPT_A_ST 0 (default) 1 Description HDMI_ENCRPT_A_RAW has not changed. An interrupt has not been generated. HDMI_ENCRPT_A_RAW has changed. An interrupt has been generated. CABLE_DET_A_ST, IO, Address 0x70[0] (Read Only) Latched status for Port A +5 V cable detection interrupt signal. Once set, this bit will remain high until the interrupt is cleared via CABLE_DET_A_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function CABLE_DET_A_ST 0 (default) 1 Description CABLE_DET_A_RAW has not changed. Interrupt has not been generated from this register. CABLE_DET_A_RAW has changed. Interrupt has been generated from this register. Rev. 0 | Page 167 of 184 UG-438 Hardware User Guide HDMI Edg INT Status 1 register consists of fields: NEW_ISRC2_PCKT_ST, NEW_ISRC1_PCKT_ST, NEW_ACP_PCKT_ST, NEW_VS_INFO_ST, NEW_MS_INFO_ST, NEW_SPD_INFO_ST, and NEW_AUDIO_INFO_ST. NEW_ISRC2_PCKT_ST, IO, Address 0x7A[7] (Read Only) Latched status for the new ISRC2 packet interrupt. Once set, this bit will remain high until the interrupt is cleared via NEW_ISRC2_PCKT_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function NEW_ISRC2_PCKT_ST 0 (default) 1 Description No new ISRC2 packet received. An interrupt has not been generated. ISRC2 packet with new content received. An interrupt has been generated. NEW_ISRC1_PCKT_ST, IO, Address 0x7A[6] (Read Only) Latched status for the new ISRC1 packet interrupt. Once set, this bit will remain high until the interrupt is cleared via NEW_ISRC1_PCKT_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function NEW_ISRC1_PCKT_ST 0 (default) 1 Description No new ISRC1 packet received. An interrupt has not been generated. ISRC1 packet with new content received. An interrupt has been generated. NEW_ACP_PCKT_ST, IO, Address 0x7A[5] (Read Only) Latched status for the new ACP packet interrupt. Once set, this bit will remain high until the interrupt is cleared via NEW_ACP_PCKT_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function NEW_ACP_PCKT_ST 0 (default) 1 Description No new ACP packet received. An interrupt has not been generated. ACP packet with new content received. An interrupt has been generated. NEW_VS_INFO_ST, IO, Address 0x7A[4] (Read Only) Latched status for the new vendor specific InfoFrame interrupt. Once set, this bit will remain high until the interrupt is cleared via NEW_VS_INFO_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function NEW_VS_INFO_ST 0 (default) 1 Description No new VS packet received. An interrupt has not been generated. VS packet with new content received. An interrupt has been generated. NEW_MS_INFO_ST, IO, Address 0x7A[3] (Read Only) Latched status for the new MPEG source InfoFrame interrupt. Once set, this bit will remain high until the interrupt is cleared via NEW_MS_INFO_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function NEW_MS_INFO_ST 0 (default) 1 Description No new MPEG Source InfoFrame received. Interrupt has not been generated. MPEG Source InfoFrame with new content received. Interrupt has been generated. NEW_SPD_INFO_ST, IO, Address 0x7A[2] (Read Only) Latched status for the new source product descriptor InfoFrame interrupt. Once set, this bit will remain high until the interrupt is cleared via NEW_SPD_INFO_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function NEW_SPD_INFO_ST 0 (default) 1 Description No new SPD InfoFrame received. Interrupt has not been generated. SPD InfoFrame with new content received. Interrupt has been generated. Rev. 0 | Page 168 of 184 Hardware User Guide UG-438 NEW_AUDIO_INFO_ST, IO, Address 0x7A[1] (Read Only) Latched status for the new audio InfoFrame interrupt. Once set, this bit will remain high until the interrupt is cleared via NEW_AUDIO_INFO_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function NEW_AUDIO_INFO_ST 0 (default) 1 Description No new Audio InfoFrame received. Interrupt has not been generated. Audio InfoFrame with new content received. Interrupt has been generated. NEW_AVI_INFO_ST, IO, Address 0x7A[0] (Read Only) HDMI Edg INT Status 2 register consists of fields: FIFO_NEAR_OVFL_ST, FIFO_UNDERFLO_ST, FIFO_OVERFLO_ST, CTS_PASS_THRSH_ST, CHANGE_N_ST, PACKET_ERROR_ST, AUDIO_PCKT_ERR_ST, and NEW_GAMUT_MDATA_ST. FIFO_NEAR_OVFL_ST, IO, Address 0x7F[7] (Read Only) Latched status for the audio FIFO near overflow interrupt. Once set, this bit will remain high until the interrupt is cleared via FIFO_OVFL_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function FIFO_NEAR_OVFL_ST 0 (default) 1 Description Audio FIFO has not reached high threshold. Audio FIFO has reached high threshold. FIFO_UNDERFLO_ST, IO, Address 0x7F[6] (Read Only) Latched status for the audio FIFO underflow interrupt. Once set, this bit will remain high until the interrupt is cleared via FIFO_UNDERFLO_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function FIFO_UNDERFLO_ST 0 (default) 1 Description Audio FIFO has not underflowed. Audio FIFO has underflowed. FIFO_OVERFLO_ST, IO, Address 0x7F[5] (Read Only) Latched status for the audio FIFO overflow interrupt. Once set, this bit will remain high until the interrupt is cleared via FIFO_OVERFLO_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function FIFO_OVERFLO_ST 0 (default) 1 Description Audio FIFO has not overflowed. Audio FIFO has overflowed. CTS_PASS_THRSH_ST, IO, Address 0x7F[4] (Read Only) Latched status for the ACR CTS value exceed threshold interrupt. Once set, this bit will remain high until the interrupt is cleared via CTS_PASS_THRSH_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function CTS_PASS_THRSH_ST 0 (default) 1 Description Audio clock regeneration CTS value has not passed the threshold. Audio clock regeneration CTS value has changed more than threshold. CHANGE_N_ST, IO, Address 0x7F[3] (Read Only) Latched status for the ACR N value changed interrupt. Once set, this bit will remain high until the interrupt is cleared via CHANGE_N_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function CHANGE_N_ST 0 (default) 1 Description Audio clock regeneration N value has not changed. Audio clock regeneration N value has changed. Rev. 0 | Page 169 of 184 UG-438 Hardware User Guide PACKET_ERROR_ST, IO, Address 0x7F[2] (Read Only) Latched status for the packet error interrupt. Once set, this bit will remain high until the interrupt is cleared via PACKET_ERROR_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function PACKET_ERROR_ST 0 (default) 1 Description No uncorrectable error detected in packet header. An interrupt has not been generated. Uncorrectable error detected in an unknown packet (in packet header). An interrupt has been generated. AUDIO_PCKT_ERR_ST, IO, Address 0x7F[1] (Read Only) Latched status for the audio packet error interrupt. Once set, this bit will remain high until the interrupt is cleared via AUDIO_PCKT_ERR_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function AUDIO_PCKT_ERR_ST 0 (default) 1 Description No uncorrectable error detected in audio packets. An interrupt has not been generated. Uncorrectable error detected in an audio packet. An interrupt has been generated. NEW_GAMUT_MDATA_ST, IO, Address 0x7F[0] (Read Only) Latched status for the new gamut metadata packet interrupt. Once set, this bit will remain high until the interrupt is cleared via NEW_GAMUT_MDATA_PCKT_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function NEW_GAMUT_MDATA_ST 0 (default) 1 Description No new Gamut metadata packet received or no change has taken place. An interrupt has not been generated. New Gamut metadata packet received. An interrupt has been generated. HDMI Edg Int Status 3 register consists of fields: DEEP_COLOR_CHNG_ST, VCLK_CHNG_ST, AUDIO_MODE_CHNG_ST, PARITY_ERROR_ST, NEW_SAMP_RT_ST, AUDIO_FLT_LINE_ST, NEW_TMDS_FRQ_ST, and FIFO_NEAR_UFLO_ST. DEEP_COLOR_CHNG_ST, IO, Address 0x84[7] (Read Only) Latched status of Deep Color mode change interrupt. Once set, this bit will remain high until the interrupt is cleared via DEEP_COLOR_CHNG_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function DEEP_COLOR_CHNG_ST 0 (default) 1 Description Deep color mode has not changed. Change in deep color has been detected. VCLK_CHNG_ST, IO, Address 0x84[6] (Read Only) Latched status of video clock change interrupt. Once set, this bit will remain high until the interrupt is cleared via VCLK_CHNG_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function VCLK_CHNG_ST 0 (default) 1 Description No irregular or missing pulse detected in TMDS clock Irregular or missing pulses detected in TMDS clock AUDIO_MODE_CHNG_ST, IO, Address 0x84[5] (Read Only) Latched status of audio mode change interrupt. Once set, this bit will remain high until the interrupt is cleared via AUDIO_MODE_CHNG_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function AUDIO_MODE_CHNG_ST 0 (default) 1 Description Audio mode has not changed. Vito: does sentence below refer to the following sections? Audio mode has changed. The following are considered audio modes: No Audio, PCM, DSD, HBR or DST. Rev. 0 | Page 170 of 184 Hardware User Guide UG-438 PARITY_ERROR_ST, IO, Address 0x84[4] (Read Only) Latched status of parity error interrupt. Once set, this bit will remain high until the interrupt is cleared via PARITY_ERROR_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function PARITY_ERROR_ST 0 (default) 1 Description No parity error detected in audio packets Parity error detected in an audio packet NEW_SAMP_RT_ST, IO, Address 0x84[3] (Read Only) Latched status of new sampling rate interrupt. Once set, this bit will remain high until the interrupt is cleared via NEW_SAMP_RT_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function NEW_SAMP_RT_ST 0 (default) 1 Description Sampling rate bits of the channel status data on Audio Channel 0 have not changed. Sampling rate bits of the channel status data on Audio Channel 0 have changed. AUDIO_FLT_LINE_ST, IO, Address 0x84[2] (Read Only) Latched status of new TMDS frequency interrupt. Once set, this bit will remain high until the interrupt is cleared via NEW_TMDS_FREQ_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function AUDIO_FLT_LINE_ST 0 (default) 1 Description Audio sample packet with flat line bit set has not been received. Audio sample packet with flat line bit set has been received. NEW_TMDS_FRQ_ST, IO, Address 0x84[1] (Read Only) Latched status of new TMDS frequency interrupt. Once set, this bit will remain high until the interrupt is cleared via NEW_TMDS_FREQ_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function NEW_TMDS_FRQ_ST 0 (default) 1 Description TMDS frequency has not changed by more than tolerance. TMDS frequency has changed by more than tolerance. FIFO_NEAR_UFLO_ST, IO, Address 0x84[0] (Read Only) Latched status for the audio FIFO near underflow interrupt. Once set, this bit will remain high until the interrupt is cleared via FIFO_UFLO_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function FIFO_NEAR_UFLO_ST 0 (default) 1 Description Audio FIFO has not reached low threshold. Audio FIFO has reached low threshold. HDMI Edg Status 4 register consists of fields: MS_INF_CKS_ERR_ST, SPD_INF_CKS_ERR_ST, AUD_INF_CKS_ERR_ST, AVI_INF_CKS_ERR_ST, RI_EXPIRED_A_ST, and AKSV_UPDATE_A_ST. MS_INF_CKS_ERR_ST, IO, Address 0x89[7] (Read Only) Latched status of MPEG source InfoFrame checksum error interrupt. Once set, this bit will remain high until the interrupt is cleared via MS_INF_CKS_ERR_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function MS_INF_CKS_ERR_ST 0 (default) 1 Description No change in MPEG source InfoFrame checksum error An MPEG source InfoFrame checksum error has triggered this interrupt Rev. 0 | Page 171 of 184 UG-438 Hardware User Guide SPD_INF_CKS_ERR_ST, IO, Address 0x89[6] (Read Only) Latched status of SPD InfoFrame checksum error interrupt. Once set, this bit will remain high until the interrupt is cleared via SPD_INF_CKS_ERR_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function SPD_INF_CKS_ERR_ST 0 (default) 1 Description No change in SPD InfoFrame checksum error An SPD InfoFrame checksum error has triggered this interrupt AUD_INF_CKS_ERR_ST, IO, Address 0x89[5] (Read Only) Latched status of audio InfoFrame checksum error interrupt. Once set, this bit will remain high until the interrupt is cleared via AUDIO_INF_CKS_ERR_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function AUD_INF_CKS_ERR_ST 0 (default) 1 Description No change in audio InfoFrame checksum error An audio InfoFrame checksum error has triggered this interrupt AVI_INF_CKS_ERR_ST, IO, Address 0x89[4] (Read Only) Latched status of AVI InfoFrame checksum error interrupt. Once set, this bit will remain high until the interrupt is cleared via AVI_INF_CKS_ERR_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function AVI_INF_CKS_ERR_ST 0 (default) 1 Description No change in AVI InfoFrame checksum error An AVI InfoFrame checksum error has triggered this interrupt RI_EXPIRED_A_ST, IO, Address 0x89[2] (Read Only) Latched status of Port A Ri expired interrupt. Once set, this bit will remain high until the interrupt is cleared via RI_EXPIRED_A_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function RI_EXPIRED_A_ST 0 (default) 1 Description No Ri expired on Port A Ri expired on Port A AKSV_UPDATE_A_ST, IO, Address 0x89[0] (Read Only) Latched status of Port A AKSV update interrupt. Once set, this bit will remain high until the interrupt is cleared via AKSV_UPDATE_A_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function AKSV_UPDATE_A_ST 0 (default) 1 Description No AKSV updates on Port A Detected a write access to the AKSV register on Port A Rev. 0 | Page 172 of 184 Hardware User Guide UG-438 HDMI Edg Int Status 5 register consists of the VS_INF_CKS_ERR_ST field. VS_INF_CKS_ERR_ST, IO, Address 0x8E[0] (Read Only) Latched status of MPEG source InfoFrame checksum error interrupt. Once set, this bit will remain high until the interrupt is cleared via MS_INF_CKS_ERR_CLR. This bit is only valid if enabled via the corresponding INT1 or INT2 interrupt mask bit. Function VS_INF_CKS_ERR_ST 0 (default) 1 Description No change in VS InfoFrame checksum error A VS InfoFrame checksum error has triggered this interrupt CEC_STATUS1_INT_STATUS register consists of fields: • • • • • • CEC_RX_RDY2_ST CEC_RX_RDY1_ST CEC_RX_RDY0_ST CEC_TX_RETRY_TIMEOUT_ST CEC_TX_ARBITRATION_LOST_ST CEC_TX_READY_ST CEC_STATUS2_INT_STATUS register consists of the CEC_INTERRUPT_BYTE_ST[7:0] field. CEC_INTERRUPT_BYTE_ST[7:0], IO, Address 0x98[7:0] (Read Only) Function CEC_INTERRUPT_BYTE_ST[7:0] 0 (default) 1 Description No change One of the 8 opcodes received Rev. 0 | Page 173 of 184 UG-438 Hardware User Guide REGISTER ACCESS AND SERIAL PORTS DESCRIPTION The ADV7610 has three 2-wire serial (I2C compatible) ports: • • One main I2C port, SDA/SCL, allows a system I2C master controller to control and configure the ADV7610 I2C port, DDC Port A allows an HDMI host to access the internal EDID and the HDCP registers MAIN I2C PORT Register Access The ADV7610 has eight 256-byte maps that can be accessed via the main I2C ports, SDA and SCL. Each map has its own I2C address and acts as a standard slave device on the I2C bus. IO MAP CP MAP CEC MAP INFOFRAME MAP SLAVE ADDRESS: 0x98/0x9A SLAVE ADDRESS: PROGRAMMABLE SLAVE ADDRESS: PROGRAMMABLE SLAVE ADDRESS: PROGRAMMABLE SCL SDA SLAVE ADDRESS: PROGRAMMABLE SLAVE ADDRESS: PROGRAMMABLE SLAVE ADDRESS: PROGRAMMABLE HDMI MAP EDID MAP REPEATER MAP DPLL MAP 10884-071 SLAVE ADDRESS: PROGRAMMABLE Figure 65. ADV7610 Register Map Access through Main I2C Port Seven out of the eight maps have a programmable I2C address. This facilitates the integration of the ADV7610 in systems that have multiple slaves on the general I2C bus. Table 70. Register Maps and I2C Addresses Map IO Map CP Map HDMI Map Repeater Map EDID Map InfoFrame Map CEC Map DPLL Map 1 2 Default Address1 0x98 or 0x9A2 0x00 (disabled) 0x00 (disabled) 0x00 (disabled) 0x00 (disabled) 0x00 (disabled) 0x00 (disabled) 0x00 (disabled) Programmable Address Not programmable Programmable Programmable Programmable Programmable Programmable Programmable Programmable Location at which Address can be Programmed Not applicable IO Map Register 0xFD IO Map Register 0xFB IO Map Register 0xF9 IO Map Register 0xFA IO Map Register 0xF5 IO Map Register 0xF4 IO Map Register 0xF8 Map is disabled if its address is set to 0x00. IO map address can be changed by pulling up or down VS/FIELD/ALSB pin. IO I2C Map Address It is possible to set the address of the IO Map by using the VS/FIELD/ALSB pin. Follow these steps to set the address of IO map: 1. 2. 3. Pull up the VS/FIELD/ALSB pin with a 10 kΩ resistor to 3.3 V to set the IO map to 0x9A. It should be left floating for 0x98. If the line VS/FIELD/ALSB is not pulled up, the following steps will have no effect and the IO Map will remain 0x98. On power up, VS pin is tristated and the IO Map will have an address of 0x98, regardless of the pull-up. Set SAMPLE ALSB to 1; this causes the VS/FIELD/ALSB line to be sampled. a. If VS/FIELD/ALSB was pulled high with a 10 kΩ resistor to 3.3 V, the IO Map address will become 0x9A. b. If VS/FIELD/ALSB was pulled low, or was left floating, the IO Map address will remain 0x98. This solution allows connecting two ADV7610 on the one I2C bus. One part should have a 10 kΩ resistor pull-up on the VS/FIELD/ALSB pin; Pin VS/FIELD/ALSB on the second part should be left floating. After reset, both parts will have Address 0x98. After sending an I2C Rev. 0 | Page 174 of 184 Hardware User Guide UG-438 write command to IO 0x1B, SAMPLE_ALSB, one part (with VS/FIELD/ALSB left floating) will get Address 0x98 and the second part (with VS/FIELD/ALSB pulled high) will have an address of 0x9A. SAMPLE_ALSB, IO, Address 0x1B[0] When HIGH, VS/FIELD/ALSB pin is sampled to be used as ALSB value for IO map. Function SAMPLE_ALSB 0 (default) 1 Description Use previously stored ALSB value Sample new ALSB value Addresses of Other Maps CEC_SLAVE_ADDR[6:0], IO, Address 0xF4[7:1] Programmable I2C slave address for CEC map. Function CEC_SLAVE_ADDR[6:0] 0x00 (default) 0xXX Description Map not accessible CEC Map Slave address INFOFRAME_SLAVE_ADDR[6:0], IO, Address 0xF5[7:1] Programmable I2C slave address for InfoFrame map. Function INFOFRAME_SLAVE_ADDR[6:0] 0x00 (default) 0xXX Description Map not accessible Infoframe Map Slave address KSV_SLAVE_ADDR[6:0], IO, Address 0xF9[7:1] Programmable I2C slave address for KSV (Repeater) map Function KSV_SLAVE_ADDR[6:0] 0x00 (default) 0xXX Description Map not accessible Repeater Map Slave address EDID_SLAVE_ADDR[6:0], IO, Address 0xFA[7:1] Programmable I2C slave address for EDID map. Function EDID_SLAVE_ADDR[6:0] 0x00 (default) 0xXX Description Map not accessible EDID Map Slave address HDMI_SLAVE_ADDR[6:0], IO, Address 0xFB[7:1] Programmable I2C slave address for HDMI map Function HDMI_SLAVE_ADDR[6:0] 0x00 (default) 0xXX Description Map not accessible HDMI Map Slave address CP_SLAVE_ADDR[6:0], IO, Address 0xFD[7:1] Programmable I2C slave address for CP map Function CP_SLAVE_ADDR[6:0] 0x00 (default) 0xXX Description Map not accessible CP Map Slave address Rev. 0 | Page 175 of 184 UG-438 Hardware User Guide DPLL_SLAVE_ADDR[6:0], IO, Address 0xF8[7:1] Programmable I2C slave address for DPLL map Function DPLL_SLAVE_ADDR[6:0] 0x00 (default) 0xXX Description Map not accessible DPLL Map Slave address Protocol for Main I2C Port The system controller initiates a data transfer by establishing a start condition, defined by a high to low transition on SDA while SCL remains high. This transition indicates that an address/data stream will follow. All peripherals respond to the start condition and shift the next eight bits (7-bit address and R/W bit). The bits are transferred from MSB down to LSB. The peripheral that recognizes the transmitted address responds by pulling the data line low during the ninth clock pulse. This is known as an acknowledge bit. All other devices withdraw from the bus at this point and maintain an idle condition. In the idle condition, the device monitors the SDA and SCL lines for the start condition and the correct transmitted address. The R/W bit determines the direction of the data. A Logic 0 on the LSB of the first byte means that the master will write information to the peripheral. A Logic 1 on the LSB of the first byte means that the master will read information from the peripheral. Each of the ADV7610 maps acts as a standard slave device on the bus. The data on the SDA pin is eight bits long, supporting the 7-bit addresses plus the R/W bit. It interprets the first byte as the map address and the second byte as the starting subaddress. The subaddresses auto-increment, allowing data to be written to or read from the starting subaddress. A data transfer is always terminated by a stop condition. The user can also access any unique subaddress register on a one-by-one basis without having to update all the registers. Stop and start conditions can be detected at any stage during the data transfer. If these conditions are asserted out of sequence with normal read and write operations, these cause an immediate jump to the idle condition. During a given SCLK high period, the user should issue only one start condition, one stop condition, or a single stop condition followed by a single start condition. If an invalid subaddress is issued by the user, the ADV7610 does not issue an acknowledge and returns to the idle condition. If the user exceeds the highest subaddress in auto increment mode, the following actions are taken: • • In read mode, the highest subaddress register contents continue to be output until the master device issues a no acknowledge. This indicates the end of a read. A no acknowledge condition is where the SDA line is not pulled low on the ninth pulse. In write mode, the data for the invalid byte is not loaded into any subaddress register. A no acknowledge is issued by the ADV7610 and the part returns to the idle condition. SCLOCK S 1-7 8 9 START ADDR R/W ACK 1-7 8 SUBADDRESS 1-7 9 ACK 8 DATA 9 P ACK STOP 10884-072 SDATA Figure 66. Bus Data Transfer WRITE SEQUENCE S SLAVE ADDRESS A(S) SUBADDRESS DATA A(S) S SLAVE ADDRESS A(S) … DATA A(S) P LSB = 1 LSB = 0 READ SEQUENCE A(S) SUBADDRESS A(S) S SLAVE ADDRESS DATA A(M) … DATA A(M) P 10884-073 S = START BIT P = STOP BIT A(S) = ACKNOWLEDGE BY SLAVE A(M) = ACKNOWLEDGE BY MASTER A(S) = NO ACKNOWLEDGE BY SLAVE A(M) = NO ACKNOWLEDGE BY MASTER A(S) Figure 67. Read and Write Sequence Rev. 0 | Page 176 of 184 Hardware User Guide UG-438 DDC PORTS An I2C port, DDC Port A, allows HDMI hosts to access the internal E-EDID and the HDCP registers. Note that the DDC ports are 5 V tolerant, which simplifies the hardware between the HDMI connector and the ADV7610. I2C Protocols for Access to the Internal EDID An I2C master connected on a DDC port can access the internal EDID using the following protocol: • • • Write sequence, as defined in the Protocol for Main I2C Port section Read sequence, as defined in the Protocol for Main I2C Port section Current address read sequence: Allows the master on the DDC port to read access internal E-EDID without specifying the subaddress that must be read. The ADV7610 stores an address counter for DDC port that maintains the value of the subaddress that was last accessed. The address counter is incremented by one every time a read or a write access is requested on the DDC port. LSB = 1 CURRENT ADDRESS READ SEQUENCE S SLAVE ADDRESS A(S) DATA(1) DATA(N) A(S) A(M) P 10884-077 S = START BIT P = STOP BIT A(S) = ACKNOWLEDGE BY SLAVE A(M) = NO ACKNOWLEDGE BY MASTER Figure 68. Current Address Read Sequence I C Protocols for Access to HDCP Registers 2 An I2C master connected on a DDC port can access the internal EDID using the following protocol: • • • Write sequence, as defined in the Protocol for Main I2C Port section Read sequence, as defined in the Protocol for Main I2C Port section Short read format, as defined in the High-bandwidth Digital Content Protection (HDCP) System Specifications DDC Port A The DDC lines of the HDMI Port A comprise the DDCA_SCL and DDCA_SDA pins. An HDMI host connected to the DDC Port A accesses the internal E-EDID at address 0xA0 in read only mode, and the HDCP registers at address 0x74 in read/write mode (refer to Figure 69). The internal E-EDID for Port A is described in the Structure of Internal E-EDID section. Refer to the High-bandwidth Digital Content Protection (HDCP) System Specifications for detailed information on the HDCP registers. INTERNAL E-EDID HDCP REGISTERS SA: 0xA0 SA: 0x74 10884-074 DDCA_SCL DDCA_SDA Figure 69. Internal E-EDID and HDCP Registers Access from Port A (SA = Slave Address) Rev. 0 | Page 177 of 184 UG-438 Hardware User Guide APPENDIX A PCB LAYOUT RECOMMENDATIONS The ADV7610 is a high precision, high speed, mixed signal device. It is important to have a well laid out PCB board, in order to achieve the maximum performance from the part. The following sections are a guide for designing a board using the ADV7610. POWER SUPPLY BYPASSING It is recommended to bypass each power supply pin with a 0.1 µF and a 10 nF capacitor where possible. The fundamental idea is to have a bypass capacitor within about 0.5 cm of each power pin. The bypass capacitors should be physically located between the power plane and the power pin. Current should flow from the power plane to the capacitor to the power pin. The power connection should not be made between the capacitor and the power pin. Generally, the best approach is to place a via underneath the 100 nF capacitor pads down to the power plane (refer to Figure 70). VIA TO GND LAYER AND GND PIN 0.1µF VIA TO VDD PIN VDD SUPPLY 10884-075 10nF Figure 70. Recommended Power Supply Decoupling It is particularly important to maintain low noise and good stability of the PVDD (the clock generator supply). Abrupt changes in the PVDD supply can result in similarly abrupt changes in sampling clock phase and frequency. This can be avoided by careful attention to regulation, filtering, and bypassing. It is highly desirable to provide separate regulated or heavily filtered supplies for each of the analog circuitry groups (CVDD, TVDD, and PVDD). Some graphic controllers use substantially different levels of power when active (during active picture time) and when idle (during horizontal and vertical synchronization periods). This can result in a measurable change in the voltage supplied to the analog supply regulator, which can in turn produce changes in the regulated analog supply voltage. This can be mitigated by regulating the analog supply, or at least PVDD, from a different, cleaner, power source, for example, from a +12 V supply. It is also recommended to use a single ground plane for the entire board. Repeatedly, experience has shown that the noise performance is the same or better with a single ground plane. Using multiple ground planes can be detrimental because each separate ground plane is smaller and long ground loops can result. In some cases, using separate ground planes is unavoidable. For those cases, it is recommended to place, at least, a single ground plane under the ADV7610. It is important to place components wisely because the current loops are much longer when using split ground planes as the current takes the path of least resistance. Example of a Current Loop Power plane → ADV7610 → digital output trace → digital data receiver→ digital ground plane → analog ground plane DIGITAL OUTPUTS (DATA AND CLOCKS) The trace length that the digital outputs have to drive should be minimized. Longer traces have higher capacitance, which requires more current that can cause more internal digital noise. Shorter traces reduce the possibility of reflections. Adding a series resistor of value between 33 Ω to 200 Ω can suppress reflections, reduce EMI, and reduce the current spikes inside the ADV7610. If series resistors are used, they should be placed as close as possible to the ADV7610 pins and the trace impedance for these signals should match that of the termination resistors selected. If possible, the capacitance that each of the digital outputs drives should be limited to is less than 15 pF. This can be accomplished easily by keeping traces short and by connecting the outputs to only one device. Loading the outputs with excessive capacitance increases the current transients inside the ADV7610, creating more digital noise on its power supplies. Rev. 0 | Page 178 of 184 Hardware User Guide UG-438 DIGITAL INPUTS The following digital inputs on the ADV7610 are 3.3 V inputs that are 5.0 V tolerant: • • DDCA_SCL DDCA_SDL Any noise that gets onto the HS and VS inputs trace will add jitter to the system. Therefore, the trace length should be minimized; and digital or other high frequency traces should not be run near it. XTAL AND LOAD CAP VALUE SELECTION The ADV7610 uses 28.6363MHz crystal. Figure 71 shows an example of a reference clock circuit for the ADV7610. Special care must be taken when using a crystal circuit to generate the reference clock for the ADV7610. Small variations in reference clock frequency can cause auto detection issues and impair the ADV7610 performance. C1 47pF C2 47pF 10884-076 XTAL 28.63636MHz Figure 71. Crystal Circuit These guidelines are followed to ensure correct operation: • • Use the correct frequency crystal, which is 28.6363 MHz. Tolerance should be 50 ppm or better. Know the Cload for the crystal part number selected. The value of capacitors C1 and C2 must be matched to the Cload for the specific crystal part number in the user’s system. To find C1 and C2, use the following formula: C1 = C2 = 2(Cload − Cstray) − Cpg where Cstray is usually 2 pF to 3 pF, depending on board traces and Cpg (pin-to-ground-capacitance) is 4 pF for the ADV7610. Example Cload = 30 pF, C1 = 50 pF, C2 = 50 pF (in this case, 47 pF is the nearest real-life cap value to 50 pF) Rev. 0 | Page 179 of 184 UG-438 Hardware User Guide APPENDIX B RECOMMENDED UNUSED PIN CONFIGURATIONS Table 71. Recommended Configuration of Unused Pins Ball No. D4, D5, D6, E4, F4, G4, G5, G6 A1 G1, G2 B1, B2 F7, G7, J10, K10 A10, B10, D7, E7 A4 C2 C1 D2 D1 E2 E1 F2 F1 H1 H2 J1 K1 K2 J2 K3 J3 K4 J4 K5 J5 K6 J6 K7 J7 K8 J8 K9 J9 H10 H9 G10 G9 F10 E10 F9 E9 D10, C10, D9, C9 A9 B9 A8 B8 B7 Mnemonic GND HPA_A/INT2 CVDD TVDD DVDDIO DVDD PVDD RXA_C− RXA_C+ RXA_0− RXA_0+ RXA_1− RXA_1+ RXA_2− RXA_2+ P23 P22 P21 P20 P19 P18 P17 P16 LLC P15 P14 P13 P12 P11 P10 P9 P8 P7 P6 P5 P4 P3 P2 P1 P0 DE HS VS/FIELD/ALSB I2S0 to I2S3 SCLK/INT2 LRCLK MCLK/INT2 SCL SDA Type Ground Miscellaneous digital Power Power Power Power Power HDMI input HDMI input HDMI input HDMI input HDMI input HDMI input HDMI input HDMI input Digital video output Digital video output Digital video output Digital video output Digital video output Digital video output Digital video output Digital video output Digital video output Digital video output Digital video output Digital video output Digital video output Digital video output Digital video output Digital video output Digital video output Digital video output Digital video output Digital video output Digital video output Digital video output Digital video output Digital video output Digital video output Miscellaneous digital Digital video output Digital input/output Miscellaneous digital Miscellaneous digital Miscellaneous digital Miscellaneous digital Miscellaneous digital Miscellaneous digital Description Ground. Float this pin. This pin is always connected to comparator supply voltage (1.8 V). This pin is always connected to comparator supply voltage (3.3 V). This pin is always connected to comparator supply voltage (3.3 V). This pin is always connected to comparator supply voltage (1.8 V). This pin is always connected to comparator supply voltage (1.8 V). Float this pin. Float this pin. Float this pin. Float this pin. Float this pin. Float this pin. Float this pin. Float this pin. Float this pin. Float this pin. Float this pin. Float this pin. Float this pin. Float this pin. Float this pin. Float this pin. This pin is always connected to the pixel clock input. Float this pin. Float this pin. Float this pin. Float this pin. Float this pin. Float this pin. Float this pin. Float this pin. Float this pin. Float this pin. Float this pin. Float this pin. Float this pin. Float this pin. Float this pin. Float this pin. Float this pin. Float this pin. Float this pin. Float this pin. Float this pin. Float this pin. Float this pin. This pin is always connected to the I2C clock line of a control processor. This pin is always connected to the I2C data line of a control processor. Rev. 0 | Page 180 of 184 Hardware User Guide Ball No. A7 B6 A6 A5 B4 B5 A3 B3 A2 Mnemonic INT1 RESET XTALP XTALN CEC CS DDCA_SCL DDCA_SDA RXA_5V UG-438 Type Miscellaneous digital Miscellaneous digital Miscellaneous analog Miscellaneous analog Digital input/output Miscellaneous digital HDMI input HDMI input HDMI input Description Float this pin. This level of this pin must be controlled by an external processor. This pin is always connected to 28.63636 MHz crystal. This pin is always connected to 28.63636 MHz crystal. Float this pin. Float this pin. Connect this pin to ground via a 10 kΩ resistor. Float this pin. If RXA_5V is not used, float RXA_5V and set DIS_CABLE_DET_RST to 0. In the case where Port A is not used, RXA_5V can be left unconnected. Rev. 0 | Page 181 of 184 UG-438 Hardware User Guide APPENDIX C PIXEL OUTPUT FORMATS Table 72. SDR 4:2:2 and 4:4:4 Output Modes OP_FORMAT_SEL[7:0] Pixel Output P23 P22 P21 P20 P19 P18 P17 P16 P15 P14 P13 P12 P11 P10 P9 P8 P7 P6 P5 P4 P3 P2 P1 P0 1 0x0 1 8-Bit SDR ITU-R BT.656 Mode 0 High-Z High-Z High-Z High-Z High-Z High-Z High-Z High-Z Y7, Cb7, Cr7 Y6, Cb6, Cr6 Y5, Cb5, Cr5 Y4, Cb4, Cr4 Y3, Cb3, Cr3 Y2, Cb2, Cr2 Y1, Cb1, Cr1 Y0, Cb0, Cr0 High-Z High-Z High-Z High-Z High-Z High-Z High-Z High-Z 0x0A1 12-Bit SDR ITU-R BT.656 Mode 2 Y3, Cb3, Cr3 Y2, Cb2, Cr2 Y1, Cb1, Cr1 Y0, Cb0, Cr0 High-Z High-Z High-Z High-Z Y11, Cb11, Cr11 Y10, Cb10, Cr10 Y9, Cb9, Cr9 Y8, Cb8, Cr8 Y7, Cb7, Cr7 Y6, Cb6, Cr6 Y5, Cb5, Cr5 Y4, Cb4, Cr4 High-Z High-Z High-Z High-Z High-Z High-Z High-Z High-Z SDR 4:2:2 0x80 16-Bit SDR ITU-R BT.656 4:2:2 Mode 0 High-Z High-Z High-Z High-Z High-Z High-Z High-Z High-Z Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 Cb7, Cr7 Cb6, Cr6 Cb5, Cr5 Cb4, Cr4 Cb3, Cr3 Cb2, Cr2 Cb1, Cr1 Cb0, Cr0 0x8A 24-Bit SDR ITU-R BT.656 4:2:2 Mode 2 Y3 Y2 Y1 Y0 Cb3, Cr3 Cb2, Cr2 Cb1, Cr1 Cb0, Cr0 Y11 Y10 Y9 Y8 Y7 Y6 Y5 Y4 Cb11, Cr11 Cb10, Cr10 Cb9, Cr9 Cb8, Cr8 Cb7, Cr7 Cb6, Cr6 Cb5, Cr5 Cb4, Cr4 For the 656 8-/10-/12-bit modes, refer to the DLL Settings for 656, 8-/10-/12-bit modes in the DLL on LLC Clock Path section. Rev. 0 | Page 182 of 184 SDR 4:4:4 0x40 24-Bit SDR 4:4:4 Mode 0 R7 R6 R5 R4 R3 R2 R1 R0 G7 G6 G5 G4 G3 G2 G1 G0 B7 B6 B5 B4 B3 B2 B1 B0 Hardware User Guide UG-438 Table 73. DDR 4:2:2 and 4:4:4 Output Modes OP_FORMAT_SEL[7:0] Pixel Output P23 P22 P21 P20 P19 P18 P17 P16 P15 P14 P13 P12 P11 P10 P9 P8 P7 P6 P5 P4 P3 P2 P1 P0 DDR 4:2:2 Mode (Clock/2) 0x20 8-Bit DDR ITU-656 (Clock/2 Output) 4:2:2 Mode 0 Clock Rise Clock Fall High-Z High-Z High-Z High-Z High-Z High-Z High-Z High-Z High-Z High-Z High-Z High-Z High-Z High-Z High-Z High-Z Cb7, Cr7 Y7 Cb6, Cr6 Y6 Cb5, Cr5 Y5 Cb4, Cr4 Y4 Cb3, Cr3 Y3 Cb2, Cr2 Y2 Cb1, Cr1 Y1 Cb0, Cr0 Y0 High-Z High-Z High-Z High-Z High-Z High-Z High-Z High-Z High-Z High-Z High-Z High-Z High-Z High-Z High-Z High-Z DDR 4:2:2 Mode (Clock/2) 0x2A 12-Bit DDR ITU-656 (Clock/2 Output) 4:2:2 Mode 2 Clock Rise Clock Fall Cb3, Cr3 Y3 Cb2, Cr2 Y2 Cb1, Cr1 Y1 Cb0, Cr0 Y0 High-Z High-Z High-Z High-Z High-Z High-Z High-Z High-Z Cb11, Cr11 Y11 Cb12, Cr12 Y12 Cb9, Cr9 Y9 Cb8, Cr8 Y8 Cb7, Cr7 Y7 Cb6, Cr6 Y6 Cb5, Cr5 Y5 Cb4, Cr4 Y4 High-Z High-Z High-Z High-Z High-Z High-Z High-Z High-Z High-Z High-Z High-Z High-Z High-Z High-Z High-Z High-Z Rev. 0 | Page 183 of 184 DDR 4:4:4 Mode (Clock/2) 0x60 24-Bit DDR RGB (Clock/2 Output) Clock Rise Clock Fall R7-0 R7-1 R6-0 R6-1 R5-0 R5-1 R4-0 R4-1 R3-0 R3-1 R2-0 R2-1 R1-0 R1-1 R0-0 R0-1 G7-0 G7-1 G6-0 G6-1 G5-0 G5-1 G4-0 G4-1 G3-0 G3-1 G2-0 G2-1 G1-0 G1-1 G0-0 G0-1 B7-0 B7-1 B6-0 B6-1 B5-0 B5-1 B4-0 B4-1 B3-0 B3-1 B2-0 B2-1 B1-0 B1-1 B0-0 B0-1 UG-438 Hardware User Guide NOTES I2C refers to a communications protocol originally developed by Philips Semiconductors (now NXP Semiconductors). HDMI, the HDMI Logo, and High-Definition Multimedia Interface are trademarks or registered trademarks of HDMI Licensing LLC in the United States and other countries. ESD Caution ESD (electrostatic discharge) sensitive device. Charged devices and circuit boards can discharge without detection. Although this product features patented or proprietary protection circuitry, damage may occur on devices subjected to high energy ESD. Therefore, proper ESD precautions should be taken to avoid performance degradation or loss of functionality. Legal Terms and Conditions By using the evaluation board discussed herein (together with any tools, components documentation or support materials, the “Evaluation Board”), you are agreeing to be bound by the terms and conditions set forth below (“Agreement”) unless you have purchased the Evaluation Board, in which case the Analog Devices Standard Terms and Conditions of Sale shall govern. Do not use the Evaluation Board until you have read and agreed to the Agreement. Your use of the Evaluation Board shall signify your acceptance of the Agreement. This Agreement is made by and between you (“Customer”) and Analog Devices, Inc. (“ADI”), with its principal place of business at One Technology Way, Norwood, MA 02062, USA. Subject to the terms and conditions of the Agreement, ADI hereby grants to Customer a free, limited, personal, temporary, non-exclusive, non-sublicensable, non-transferable license to use the Evaluation Board FOR EVALUATION PURPOSES ONLY. Customer understands and agrees that the Evaluation Board is provided for the sole and exclusive purpose referenced above, and agrees not to use the Evaluation Board for any other purpose. Furthermore, the license granted is expressly made subject to the following additional limitations: Customer shall not (i) rent, lease, display, sell, transfer, assign, sublicense, or distribute the Evaluation Board; and (ii) permit any Third Party to access the Evaluation Board. As used herein, the term “Third Party” includes any entity other than ADI, Customer, their employees, affiliates and in-house consultants. The Evaluation Board is NOT sold to Customer; all rights not expressly granted herein, including ownership of the Evaluation Board, are reserved by ADI. CONFIDENTIALITY. This Agreement and the Evaluation Board shall all be considered the confidential and proprietary information of ADI. Customer may not disclose or transfer any portion of the Evaluation Board to any other party for any reason. Upon discontinuation of use of the Evaluation Board or termination of this Agreement, Customer agrees to promptly return the Evaluation Board to ADI. ADDITIONAL RESTRICTIONS. Customer may not disassemble, decompile or reverse engineer chips on the Evaluation Board. Customer shall inform ADI of any occurred damages or any modifications or alterations it makes to the Evaluation Board, including but not limited to soldering or any other activity that affects the material content of the Evaluation Board. Modifications to the Evaluation Board must comply with applicable law, including but not limited to the RoHS Directive. TERMINATION. ADI may terminate this Agreement at any time upon giving written notice to Customer. Customer agrees to return to ADI the Evaluation Board at that time. LIMITATION OF LIABILITY. THE EVALUATION BOARD PROVIDED HEREUNDER IS PROVIDED “AS IS” AND ADI MAKES NO WARRANTIES OR REPRESENTATIONS OF ANY KIND WITH RESPECT TO IT. ADI SPECIFICALLY DISCLAIMS ANY REPRESENTATIONS, ENDORSEMENTS, GUARANTEES, OR WARRANTIES, EXPRESS OR IMPLIED, RELATED TO THE EVALUATION BOARD INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTY OF MERCHANTABILITY, TITLE, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS. IN NO EVENT WILL ADI AND ITS LICENSORS BE LIABLE FOR ANY INCIDENTAL, SPECIAL, INDIRECT, OR CONSEQUENTIAL DAMAGES RESULTING FROM CUSTOMER’S POSSESSION OR USE OF THE EVALUATION BOARD, INCLUDING BUT NOT LIMITED TO LOST PROFITS, DELAY COSTS, LABOR COSTS OR LOSS OF GOODWILL. ADI’S TOTAL LIABILITY FROM ANY AND ALL CAUSES SHALL BE LIMITED TO THE AMOUNT OF ONE HUNDRED US DOLLARS ($100.00). EXPORT. Customer agrees that it will not directly or indirectly export the Evaluation Board to another country, and that it will comply with all applicable United States federal laws and regulations relating to exports. GOVERNING LAW. This Agreement shall be governed by and construed in accordance with the substantive laws of the Commonwealth of Massachusetts (excluding conflict of law rules). Any legal action regarding this Agreement will be heard in the state or federal courts having jurisdiction in Suffolk County, Massachusetts, and Customer hereby submits to the personal jurisdiction and venue of such courts. The United Nations Convention on Contracts for the International Sale of Goods shall not apply to this Agreement and is expressly disclaimed. ©2013 Analog Devices, Inc. All rights reserved. Trademarks and registered trademarks are the property of their respective owners. UG10884-0-2/13(0) Rev. 0 | Page 184 of 184