我正在设计 HDMI 转 LVDS 桥接器、并使用 TFP401APZP 和 DS90C387VJDX/NOPB 来实现这一点。
我将计算机用作 HDMI 源、需要交换我正在使用的 TFT 的 EDID。 我成功地从 TFT 检索 EDID。
我现在尝试使用外部 EEPROM - M24C02-WMN6TP 来存储 EDID、并在热插拔检测信号变高时将其传输到计算机。
在这里、我从 EEPROM 接收到一个我不了解的行为。 连接 HDMI 电缆后、它会请求 EDID 的最后一个地址(0x7F)和最后一个地址。 如果最后一个地址发生更改、则会请求新的最高地址。 我不明白为何只要求最后一个地址。 最后一个字节的这个请求和交换发生了5次、间隔时间大约为100ms。
当我在工作屏幕上监控 EDID 交换时、它的外观非常不同。 源请求第一个地址(0x00)大约2次、然后第三次传输整个128字节数据块、显示屏开始显示。
要清除、我只尝试让 PC 检测是否存在屏幕。 我目前没有将 TFP401APZP 或 DS90C387VJDX/NOPB 焊接到 PCB 上-但是、EDID 应该被读取、并且应该在我的 PC 上显示为另一个正确的监视器吗?
Q1)使用外部 EEPROM 和 EEPROM 时、是否在工作屏幕中有所不同?
Q2)我有一个 STM32 MC 来将 EDID ONLO 编程到 EEPROM、实际上是有一个2主 I2C 网络、这是否会导致任何问题?
Q3)使用外部 EEPROM 时发生了什么错误、导致 HDMI 源甚至无法正确读取数据?
感谢您对我的问题有任何深入了解、我期待您的回复。
下图是正在工作的截屏的跟踪、显示数据从0x00开始、在2次尝试失败后传输整个128字节块。
下图是我的设计中的迹线。 如您所见、不同尝试之间存在非常大的时间间隔(下一次尝试是相同的、但右侧是100ms)、并且源仅请求最后一个字节? 为什么128字节数据传输不正确?
我还连接了以下电路: