HDMIHigh-Definition Multimedia Interface Mythri P K September 2010
Introduction • HDMI is a compact audio/video interface for transmitting digital data.
HDMI communication channels • HDMI has three physically separate communication channels, which are the DDC, TMDS, and the optional CEC • The HDMI cable and connectors carry four differential pairs that make up the TMDS data and clock channels. • Audio, video and auxiliary data is transmitted across the three TMDS data channels. • A TMDS clock, typically running at the video pixel rate, is transmitted on the TMDS clock channel
HDMI communication channels contd.. • HDMI carries a VESA DDC channel. The DDC is used for configuration and status exchange between a single transmitter and a single receiver. • The DDC is used by the transmitter to read the receiver’s Enhanced Extended Display Identification Data (E-EDID) in order to discover the receiver’s configuration and capabilities. • The optional CEC protocol provides high-level control functions between all of the various audiovisual products in a user’s environment.
HDMI connector • There are 3 Types of HDMI connector, Type A , B and C. All three connectors carry all required HDMI signals, including a TMDS link. • The Type B connector is slightly larger and carries a second TMDS link, which is necessary to support very high resolution displays using dual link. • The Type C connector carries the same signals as the Type A but is more compact and intended for mobile applications. • The HDMI connector provides a pin allowing the transmitter to supply +5.0 Volts to the cable and receiver. • All HDMI transmitters shall assert the +5V Power signal whenever the transmitter is using the DDC or TMDS signals
HDMI Link • The HDMI link operates in one of three modes: • Video Data Period - the active pixels of an active video line are transmitted • Data Island period - audio and auxiliary data are transmitted using a series of packets. • This auxiliary data includes InfoFrames and other data describing the active audio or video stream or describing the transmitter. • Control period- It is used when no video, audio, or auxiliary data needs to be transmitted. It is required between any two periods that are not control periods.
Video Data on HDMI • Video data can have a pixel size of 24, 30, 36 or 48 bits. Color depths greater than 24 bits are defined to be “Deep Color” modes. • Video at the default 24-bit color depth is carried at a TMDS clock rate equal to the pixel clock rate. • Video Pixels Video Data Coding is such that the 8 bits converted to 10 bits by HDMI transmitter. • The video pixels can be encoded in either RGB, YCBCR 4:4:4 or YCBCR 4:2:2 formats. • Deep Color modes are optional though if an HDMI transmitter or receiver supports any Deep Color mode*, it shall support 36-bit mode.
AVI Infoframe • An InfoFrame packet carries one InfoFrame. The InfoFrame provided by HDMI is limited to 30 bytes plus a checksum byte. • HDMI transmitter shall always transmit an AVI InfoFrame at least once per two video fields if the transmitter supports. • The AVI InfoFrame shall be transmitted even while such a transmitter is transmitting RGB and non pixel-repeated video. • For AVI infoframe format refer : Section 8.2 in HDMI 1.3 specification
EDIDExtended display identification data • HDMI transmitter shall read the EDID and first CEA Extension to determine the capabilities supported by the receiver. • HDMI transmitter shall check the E-EDID for the presence of an HDMI Vendor Specific Data Block within the first CEA Extension to determine whether it is an HDMI/DVI device. • All the receiver supports 640 * 480P video format by default. • For detailed information on EDID format refer to http://en.wikipedia.org/wiki/Extended_display_identification_data
Hot-Plug detect • An HDMI receiver shall assert high voltage level on its Hot Plug Detect pin when the E-EDID is available for reading. • HDMI receiver shall indicate any change to the contents of the E-EDID by driving a low voltage level pulse on the Hot Plug Detect pin.
Code flow in OMAP4 • hdmi_init- • It is called during bootup during the DSS probe along with other blocks like dispc, dsi , dpi etc. • This registers the HDMI driver to DSS and registers HDMI IRQ handler. • hdmi_exit – • Called from omapdss_remove , it will free IRQ handler.
Call flow when echo 1 > sys/devices/platform/omapdss/display*/enabled Is called • hdmi_enable_display • Does the GPIO configuration for DDC and hot-plug detect level shifter (GPIO60 and 41). • Enabled dss clk -> hdmi_enable_clocks • Reads EDID by calling hdmi_read_edid to determine the timing supported by TV. See http://omappedia.org/wiki/RFCs RFC for autodetect for more information/ • Computes PLL based on the timing that is selected after reading EDID. • Configures the HDMI PLL and PHY blocks hdmi_pll_program and hdmi_phy_init • Configures the video and auxillary infoframe inforamtion based on the EDID by calling hdmi_lib_enable. • Configures the dispc(display controller) gamma table and HDMI switch.
Call flow when echo 0 > sys/devices/platform/omapdss/display*/enabled Is called • hdmi_disable_display • Disabled the dss_clk requested by HDMI. Hdmi_enable_clocks(0). • Sets the power state of the HDMI PLL block to ALL_OFF HDMI_W1_SetWaitPllPwrState • Set the PHY block to off hdmi_phy_off • GPIO configurations are pulled down.
References • TI OMAP4 TRM http://focus.ti.com/general/docs/wtbu/wtbudocumentcenter.tsp?templateId=6123&navigationId=12667 • HDMI 1.3 specification http://www.hdmi.org/learningcenter/faq.aspx • EDID information http://en.wikipedia.org/wiki/Extended_display_identification_data http://www.hdmi.org/learningcenter/presentations.aspx (Implementing EDID that works) • Connector http://pinouts.ru/Video/hdmi_pinout.shtml