本文转载自: XILINX开发者社区
本文作者:赛灵思产品工程师 Nathan Xu
Xilinx HDMI 1.4/2.0 TX的解决方案是由HDMI 1.4/2.0 Transmitter Subsystem IP作为MAC和Video PHY Controller IP作为PHY组成, 在板上, 还有SN65DP159被用作TMDS level shifter。
在PHY层, 也就是Video PHY Controller IP, 常见的问题是如果需要支持HDMI 2.0所有的分辨率PHY需要哪些时钟。以GTH为例, 见下图, 对于TX而言, PHY只需要一个TX reference clock, 就能支持所有的分辨率。下图中dru refclk, rxoutclk是RX的, 在上篇的 HDMI RX 文章中已介绍过。
请注意, TX refclk是来自外部得clock generator,见下图,而且tx refclk的频率是取决于输入video的分辨率,最大不超过297MHz,因此, 在XDC的约束文件里,可以对tx refclk的clock period约束为297MHz。
对于tx refclk, 同时需要外部clock generator提供tx_refclk_rdy, 来表征这个clock是否锁定, 而且tx_refclk_rdy还有三个要求, 见下:
1. Connected to the external clock generator lock pin by default or can be toggled through GPIO. It must be toggled (deasserted then asserted) for every video format change. Alternatively, the TX Frequency Reset bit (bit 3) of the Clock Detector Control register (0x200) can be set if the tx_refclk_rdy port is active.
2. It can only be asserted when the clock at txrefclk_p/n port is stable.
3.At AXILITE CLK = 100 MHz, the tx_refclk_rdy minimum hold time are 5 us and 4 ms for fast switching and non-fast switching modes respectively.
如果不能满足这些要求,会导致HDMI TX不稳定。
HDMI TX的初始化分为VPHY的初始化和HDMI TX的初始化。
VPHY的初始化流程图:
HDMI TX初始化流程图:
常见的问题是VPHY或者HDMI TX初始化有问题,这时候可以打印VPHY和HDMI TX的log,和好的log作对比,看问题出在哪个环节。
另外HDMI 1.4/2.0 TX Subsystem IP提供了很多基于Xilinx开发板的demo,用户在做HDMI的设计或者debug问题, 参考demo是一个有效的手段。
详细内容, 见如下链接中的PG235 -> ch6 example design。
PG235:https://china.xilinx.com/content/dam/xilinx/support/documentation/ip_doc...