This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TFP401A:TFP401APZP -使用外部 EEPROM 实现 HDMI-EDID - EDID 通信问题

Guru**** 1623435 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1189691/tfp401a-tfp401apzp---implementing-hdmi-edid-using-external-eeprom---edid-communication-issues

器件型号:TFP401A

我正在设计 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字节数据传输不正确?

我还连接了以下电路:

e2e.ti.com/.../1258.Circuit.pdf

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    您是否有可 设置为7位从地址0x50h 的 EEPROM?

    谢谢

    David

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 David:

    我使用的是 M24C02-FMN6TP、可以使用0xA0将其设置为地址0x50 (全部在数据表中说明)。

    我可以将数据写入 EEPROM、由于某种原因、当连接 HDMI 时、它只读取最后一个字节。  

    对于我所做的错误、我感到困惑、我已经检查了硬件、组件和 EDID 寻址、一切看起来都很有序。

    如果您能让我深入了解可能导致这种情况的原因、我将不胜感激。

    谢谢你  

    Kacper

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Kacper

    需要通过上拉电阻器将 HDMI_SCL 和 HDMI_SDA 上拉至 HDMI_+5V、而不是3.3V。

    如果这不起作用、您能否切换到该 EEPROM 、https://www.digikey.com/en/products/detail/microchip-technology/24LC02BT-I-OT/443519?

    谢谢

    David

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 David:

    我已将上拉电压更改为 HDMI +5V、没有任何影响。 波形与我在这个线程中的第一个帖子中保持不变。

    您推荐的 EEPROM 到处都没有库存、您能否推荐另一个 EEPROM、以便我确定不会导致问题。

    但是、我不明白为什么 EEPROM 本身是 EEPROM、因为 M24C02-WMN6TP 是使用一个字节寻址的、所以我是否没有满足 HDMI I2C 的特定类型的寻址? 但是、这会如何导致每次只读取 EEPROM 的最后一个字节?

    此致、

    Kacper

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Kacper

    该 EEPROM 在 DigiKey 中看起来有库存,并支持 增强型 EDID (E-EDID ) 1.3。

    谢谢

    David

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 David:

    24LC02BT-I/OT 目前没有库存、我需要等待3次发货。

    我是否能够使用24LC22A - 2K VESARegisteredE-EDID 串行 EEPROM

    www.mouser.co.uk/.../21683a-25839.pdf

    我唯一的问题是、我不确定如何将其直接连接到 HDMI 连接器、以便源设备可以读取 EDID、同时还可以选择使用新数据对 EEPROM 进行重新编程。

    如何更改原理图连接以适应 VCLK 引脚以及 I2C 引脚(SCL 和 SDA)。

    我是否可以将 HDMI 和微控制器 SDA 线路一起连接到 EEPROM? 然后、SCL 仅从 EEPROM 连接到微控制器 SCL、而 VCLK 引脚连接到 HDMI SCL 引脚?

    en.wikipedia.org/.../HDMI

    如果能够深入了解如何使用这些器件、我将不胜感激。

    此致、

    Kacper

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Kacper

    您是否有办法在外部对该 EEPROM 进行编程、然后将其放在电路板上?

    谢谢
    David

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 David:

    我有一个 STM32 MC 与 HDMI 连接器并联连接到 EEPROM。 允许 MC 对其进行编程、并允许 HDMI 源读取它。

    MC 并联是否存在问题? I2C 允许多个主器件。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    这取决于 HDMI 源 I2C 主设备的行为。 我会从总线上移除 MC、以确保它不会导致 HDMI 源出现问题。

    谢谢

    David

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 David:

    我发布的第一条 EDID 错误跟踪是在 I2C 总线上没有 MC 的情况下进行的。 问题肯定出在 EEPROM 和 HDMI 源之间。

    我可以尝试换用 EPROMS、我提出的问题是否足够? 如何使用附加的 CLK 引脚将其连接到 HDMI?

    遗憾的是、您建议的 EEPROM 目前已缺货、我想让这个问题得到解决、我已经尝试了我能想到的一切。

    我尝试使用258字节 EEPROMS 和更大的 EEPROMS。

    在 EDID 交换发生时、我尝试包括和排除总线上的微控制器。 我在网上找到的所有我尝试过的东西、有什么你可以建议的吗? 非常感谢。

    谢谢、致以最诚挚的问候- kacper

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Kacper

    使用外部 EEPROM 时是否使用相同的 EDID? 寄存器0x7F 是校验和字节 、需要包含一个值、使整个 128字节基础 EDID 的校验和等于00h。 我想知道源是否首先读取0x7F 以确保校验和字节正确。

    谢谢
    David

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 David:  

    感谢您的回复、

    我从 TFT 提供的 AD 板读取 EDID、并从该 EDID 保存寄存器0x00至0x7F (所有其他寄存器为0x00)。

    我接着将每个寄存器的值保存到 EDID 中的同一地址。  

    当我在 HDMI 连接上对 AD 板 EDID 进行采样时、我看到的区别是它开始从地址0x00到0x7F 进行读取。 因此、我不确定 EEPROM 为何从0x7F 启动。

    我附上了我从 AD 板中读取的数据供参考的图片。  

     感谢你的帮助、

    此致、

    Kacper

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Kacper

    您能否将图片发布到此 e2e 线程? 我想知道、对于 EDID、您必须使用特定的 EEPROM 来实现 EDID。 当我查看  M24C02-FMN6TP EEPROM 数据表时、我没有看到任何可以解释主机为什么会首先读取0x7F 的内容。 这就是为什么我认为我们可能需要使用一个特定的 EEPROM 来调用对 EDID 的支持。

    谢谢

    David  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、David、我再次连接了 I2C 布线。 它表明 HDMI 源正在尝试读取数据、但它首先从最后一个字节请求数据(之后没有任何内容)。 在我的跟踪中、您可以看到它请求字节0xFF、因为这是 EDID 中的 lasy 字节、我已经尝试更改为0x7F、但我收到的行为相同、只是请求地址0x7F。

    我已经尝试寻找一些允许 EDID 的 EEPROM、但是它们都在器件处于传输模式时使用一个称为 Vclk 的额外引脚、然后在写入时使用 SCL 总线。

    您能不能建议使用 EEPROM 来尝试一下现成的 EEPROM、并且无需等待数周的库存。 谢谢你

    我之所以使用 M24C02、是因为有许多在线示例展示了使用此器件用于 EDID 的用户、我在下面附上了一个此类示例的链接、也许我会误解某些内容、我非常感谢您的见解。

    Blog.danman.eu/.../

    感谢您的帮助、我非常感谢您的帮助。

    此致、

    KAcper

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    所有 E-EDID EEPROM 都需要 HDMI 源使用 Vclk 线路来提供数据传输时钟。 这是否看起来是可以在我的设计中使用的器件? 如果是、那么提供 Vclk 信号的方法是、因为我的所有微控制器都是 SDA 和 SCL I2C 引脚。

    ww1.microchip.com/.../21682E.pdf

    再次感谢您、

    Kacper

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Kacper

    数据表中有一条注意事项:" Vsync 信号通常用于为24LCS22A 上的 VCLK 引脚推导信号。"

    谢谢

    David