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.

[参考译文] DS90UB949A-Q1:接口论坛

Guru**** 2553450 points
Other Parts Discussed in Thread: ALP

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1294589/ds90ub949a-q1-interface-forum

器件型号:DS90UB949A-Q1
主题中讨论的其他器件:ALP

您好!

我有 HDMI 源-> 949 -> 948 -> 1080p 显示屏。

我尝试始终将 HDMI 源插入949、包括通过下电上电。 但是、这会导致显示使用错误的 EDID 并显示错误的图像。 只能通过拔下并重新插入 HDMI 来正确解析图像。  

我使用949评估板。 我已经尝试将 MODE_1的开关5变为高电平、以便 在上电时将 EXT_CTL 设置为高电平。 但是、这无法正常工作、HDMI 仍然连接并显示错误图像。 此外、读取 寄存器0x54会得到值0x00、而不是预期的0x80。

是否缺少步骤来防止 HDMI 在加载 EDID 之前连接?  

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

    Bruce、您好!

    为了说明这一点、 您应该使用以下哪些用于 HDMI 源的 EDID 信息选项? 还选择了多大数量的 MODE_SEL0?

    1.内部预编程 EDID
    2.内置 EDID 载入器件存储器
    外部本地 EDID (EEPROM)
    4.外部远程 EDID

    此致!

    约什

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

    您好!

    我使用的是通过 I2C 加载的外部远程 EDID。  

    在开关1上选择 MODE_SEL0。  

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

    Bruce、您好!

    在此模式下、若要在远程显示器处从 EEPROM 加载外部 EDID、请将 串行器 MODE_SEL0设置 为1。 对于 MODE_SEL1、 还必须设置 REM_EDID_LOAD = 1且 EXT_CTL = 1。 请注意、远程 EDID 访问可能会影响显示系统、因此您可能 需要 知道、解 串器上电后、即启用了 PDB、串行器将在 1ms 内访问解串器的本地 I2C 总线、寻找地址0xA0 (8位地址)。

    此致!

    约什

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

    您能否进一步解释一下 PDB 使能的影响是什么?  

    我正在尝试通过 MCU 和 I2C 加载 EDID。 是否可以禁用949上的 HDMI 链接、直到加载正确的 EDID、这样我就不会在显示屏上获得错误的图像?

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

    Bruce、您好!

    您能否尝试延迟 INIT B、直到 HDMI 源的 HDMI 时钟变得稳定后、才能使其正常工作? 请参阅以下数据表的屏幕截图、了解 PDB、HDMI 和 I2C 本地之间的序列以及设置寄存器以进行配置。 如果仍然无法正常工作、请分享所需的 PCLK:图像分辨率和帧速率、错误的图像现象以及寄存器转储。

    此致!

    约什

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

    您好!  

    延迟 INIT B 不能解决该问题。 我一直在使用 ALP 来尝试解决该问题。 我们发现、取消选中"Disable Auto HDCP"框、然后单击"Deassert Hot-Plug"可解决问题。 但是、我找不到这两种设置的寄存器控制。 您能否建议如何通过 I2C 和寄存器访问来更改这两种设置?

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

    Bruce、您好!  

    为了说明这一点、您使用的是 UB949A 还是 UH949A? 在 UH949A 数据表中、0x54 [3]表示 自动 HDCP_CTRL 设置。  

    请参阅此 E2E 主题、了解如何 实现"使热插拔无效"。 (链接)请注意、 s.hot_plug_not = 0x01000000

    此致!

    约什

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

    您好!

    我正在使用 UB949、数据表中保留了0x54[3]。 谢谢!

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

    为了确认、I2C 寄存器写入命令将为:

    #assert HPD
    #选择 HDMI APB 接口。
    board.WriteI2C (UB0949、0x48、0x01)
    board.WriteI2C (UB0949、0x49、0x00)
    board.WriteI2C (UB0949、0x4A、0x00)


    board.WriteI2C (UB0949、0x4B、0x01)
    board.WriteI2C (UB0949、0x4C、0x00)
    board.WriteI2C (UB0949、0x4D、0x00)
    board.WriteI2C (UB0949、0x4E、0x00)

    API 是这样的吗?

    S.HDMI_SETUP_CTRL = 0x0000;# HDMI Setup CTL Reg
    S.hot_plug_not = 0x01000000;#置位 未检测到热插拔

    如果我想取消置位然后使热插拔生效、我是否需要在这两条命令之间延迟? 例如:

    S.HDMI_SETUP_CTRL = 0x0000;# HDMI Setup CTL Reg
    S.hot_plug_not = 0x01000000;#置位 未检测到热插拔

    延迟(xxx 时间)  ### xxx 时间是否需要> 0? ###

    S.HDMI_SETUP_CTRL = 0x0000;# HDMI Setup CTL Reg
    S.hot_plug_detect = 0x01000001;#置位 未检测到热插拔

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

    Bruce、您好!

    我已更新链接的以上评论。 UB 版本不支持 HDCP、这就是 UB949数据表中保留了它的原因。

    此致!

    约什

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

    您好!

    我能否确认用于热插拔检测的 I2C 命令?

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

    Bruce、您好!

    是的。  我建议在将 HPD 拉低和再次拉高之间存在延迟、这样主机就有足够的时间知道 HPD 是否下降。 请参阅此有关 HPD 延迟的 E2E 主题、因为可能需要更多步骤:(链接)

    此致!

    约什

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

    感谢您确认链接似乎不起作用、您可以重新链接新主题吗?

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

    Bruce、您好!

    很抱歉、网站内部发布了。 我已经复制了响应。

    请查看它是否与以下步骤配合使用:

    -在进行切换之前,使用以下949配置手动将 HPD 拉低:

    0x48 = 0x01
    0x49 = 0x00
    0x4A = 0x00
    0x4B = 0x01
    0x4C = 0x00
    0x4D = 0x00
    0x4E = 0x00

    此时,将 HDMI 多路复用器切换到另一个来源  

    -在切换完成后,通过设置0x01 = 0x01在没有寄存器的情况下执行数字复位949

    - Re -启用来自949的 HPD 信号:

    0x48 = 0x01
    0x49 = 0x00
    0x4A = 0x00
    0x4B = 0x01
    0x4C = 0x00
    0x4D = 0x00
    0x4E = 0x01

    -现在 HDMI 源应该识别并通过正常的过程来启动显示器  

    -在 HDMI 源启动后,远程解串器锁定到该输入的新时钟速率, 通过设置解串器0x01 = 0x01来向解串器发出数字复位命令、以确保 AEQ 从最低电平开始、这使得过程确定。

    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    还有一个建议、只要您经历 HPD 周期和 HDMI 接口重新连接、就不需要对949进行完全复位、但最好在 TMDS 时钟稳定后按照949数据表中的步骤发出命令:

    -在进行切换之前,使用以下949配置手动将 HPD 拉低:

    0x48 = 0x01
    0x49 = 0x00
    0x4A = 0x00
    0x4B = 0x01
    0x4C = 0x00
    0x4D = 0x00
    0x4E = 0x00

    此时,将 HDMI 多路复用器切换到另一个来源

    - Re -启用来自949的 HPD 信号:

    0x48 = 0x01
    0x49 = 0x00
    0x4A = 0x00
    0x4B = 0x01
    0x4C = 0x00
    0x4D = 0x00
    0x4E = 0x01

    -等待新的 TMDS 时钟从 HDMI 源稳定

    -通过写入以下寄存器重置 HDMI PLL :

    0x40 = 0x10
    0x41 = 0x49
    0x42 = 0x10
    0x42 = 0x00

    -通过写入以下寄存器重置 FPD PLL:

    0x40 = 0x14
    0x41 = 0x49
    0x42 = 0x10
    0x42 = 0x00

    -通过 FPD-Link BCC 发出0x01 = 0x01来重置948

    此过程结束后、您不需要对0x48-0x4E 执行任何操作、直到要再次切换源

     此致!

    约什

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

    这解决了我的问题、感谢您的帮助!