DMI 输入接口采用宏晶微 MS7200 HMDI 接收芯片,HDMI 输出接口采用宏晶微 MS7210 HMDI发送芯片。芯片兼容 HDMI1.4b 及以下标准视频的 3D 传输格式,最高分辨率高达 4K@30Hz,最高采样率达到 300MHz,支持 YUV 和 RGB 之间的色彩空间转换,数字接口支持 YUV 及 RGB 格式。
MS7200 和 MS7210 的 IIC 配置接口与 FPGA 的 IO 相连,通过 FPGA 的编程来对芯片进行初始化和配置操作。
MES50HP 开发板上将 MS7200 的 SA 管脚下拉到地,故 IIC 的 ID 地址为 0x56,将 MS7210 的SA 管脚上拉到电源电压,故 IIC 的 ID 地址为 0xB2(详情请查看“MES50HP 开发板硬件使用手册”)。
一、实验目的
实验 1:MES50HP 开发板通过 HDMI 在屏幕上显示彩条;
实验 2. MES50HP 开发板 HDMI IN 接收,通过 HDMI OUT 实现环路输出;
二、实验原理
a.显示原理
下图表示一个 8*8 像素的画面,图中每个格子表示一个像素点,显示图像时像素点快速点亮的过程按表格中编号的顺序逐个点亮,从左到右,从上到下,按图中箭头方向的“Z”字形顺序。
以上图为例,每行 8 个像素点,每完成一行信号的传输,会转到下一行信号传输,直到完成第 8 行数据的传输,就完成了一个画面的数据传输了,一个画面也称为一场或一帧,显示每秒中刷新的帧数称为帧率。比如 1920*1080P 像素,就是 1 行有效像素点 1920,一场有效行为1080 行。
每个像素点的像素值数据,对应每个像素点的颜色。常见的像素值表示格式比如:RGB888,RGB 分别代表:红 R,绿 G,蓝 B,888 是指 R、G、B 分别有 8bit,也就是 R、G、B 每一色光有28=256 级 阶 调 , 通 过 RGB 三 色 光 的 不 同 组 合 , 一 个 像 素 上 最 多 可 显 示 24 位 的256256256=16,777,216 色。
像素数据源源不断输送进来,行、场的切换通过行场同步信号来控制,即 hsync(行同步)和 vsync(场同步信号)。
上图中 Addressable 部分内容是在显示器中可看到的区域,像素点是否有效通过 DE 信号标识;Border 可理解为显示黑边或者显示边框,通常 Border 显示的像素值是 0(黑色)。行、场切换过程都是在用户感受不到的区域进行的,这个区域就是 Blanking 部分,称为消隐区间。同步信号上升沿表示新的一行/一场开始,Hsync 对应行,Vsync 对应场。
彩条产生:
本实验采用 1920*1080@60 的视频规格,详细时序参数如下:
(其他视频规格参数详情请查阅: MES50HP_v1\7_doc\VESA)
HDMI 显示的数据源采用 verilog 编写的显示时序产生模块 sync_vg 实现上图的时序,彩条生成模块 pattern_vg 根据像素点所在位置,即列数和行数确定像素值,实现彩条图案。
彩条按照每行均匀分成 8 部分,根据每行的像素点数的范围对像素值设置成对应的颜色,实现彩条信号。
b.HDMI_PHY 配置
MS7200 为 HMDI 接收芯片,MS7210 为 HMDI 发送芯片,芯片的 IIC 配置接口已与 FPGA 的IO 相连,芯片正常使用需要通过 FPGA 的对芯片进行初始化和配置操作。
hdmi_loop 例程包含对 MS7200 和 MS7210 的配置模块 ms72xx_ctl,已将 MS7200 和 MS7210配置成 1920*1080@60 RGB888 模式,配置流程参考源码,用户可例化模块 ms72xx_ctl 使用,。
三、实验源码设计
实验 1: hdmi_test
HDMI 输出彩条显示例程,分成 4 个模块,时钟模块 pll、MS7210 配置模块 ms72xx_ctl、显示时序产生模块 sync_vg、彩条生成模块 pattern_vg,以下为模块拓扑图,源码详情请查看
demo。
实验 2:hdmi_loop
HDMI 环路例程,将 MS7200 接收的信号给到 MS7210 即可实现 HDMI 环路输出,以下为模块拓扑图,源码详情请查看 demo。
四、实验现象
实验 1 现象: hdmi_test
连接好 MES50HP 开发板和显示器,下载程序,可以看到显示器显示 8 条彩条。
实验 2 现象:hdmi_loop
连接好 MES50HP 开发板、视频源和显示器,注意视频源设置为 1920*1080@60,下载程序,可以看到显示器显示与视频源一致的图像。