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.

[参考译文] DS90UB949-Q1:我们希望将存储在 EEPROM 中的 EDID 加载到串行器的 SRAM 中、但我们能够在 SRAM 中看到内部预编程的 EDID。 这表明存储在 EEPROM 中的 EDID 未加载到 SRAM。

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

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/804871/ds90ub949-q1-we-want-the-edid-stored-in-eeprom-to-be-loaded-to-sram-of-serializer-but-we-are-able-to-see-internal-pre-programmed-edid-in-the-sram-this-shows-edid-stored-in-eeprom-is-not-loaded-to-sram

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

我们使用串行器 DS90UB949 EVM 和解串器、EEPROM 通过0x50 (7位)地址连接到该解串器。

问题:我们希望将存储在 EEPROM 中的 EDID 加载到串行器的 SRAM 中、但我们能够在 SRAM 中看到内部预编程的 EDID。 这表明存储在 EEPROM 中的 EDID 未加载到 SRAM。

模式选择配置设置:

对于    外部远程 EDID 配置、我们将 MODE_SEL0保持为1、将 MODE_SEL1保持为4。

下面是串行器(0x0c)和解串器(0x2C)的寄存器转储、

===================================================================================================

msm8996:/data #./i2cdump -f -y 8 0x0c

/i2cdump -f -y 8 0x0c

未指定大小(使用字节数据访问)

    0 1 2 3 4 5 6 7 8 9 A b c d e f   0123456789abcdef

00:18 00 00 da 80 00 58 50 00 04 00 07 25 30 03   ?????????????????????????

10:00 00 00 00 A8 00 00 fe 1e 7f 01 00 00 01 00 0100...   ??????? ...?

20:0b 00 25 00 00 00 00 01 20 20 a0 00 A5 5a   ?%… ?  ????Z

30:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    

40:14 55 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ?u..

50:97 a0 1e 00 28 0c 00 00 00 dd a0 02 06 44 48   ???(????????DH

60:22 02 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00   “…………………………………………

70:78 28 a0 00 00 00 78 28 a0 00 00 00 00 00 00 00   x (?... x (?...

80:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    

90:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    

A0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    

B0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    

C0:00 00 A8 00 28 00 60 c0 00 00 00 00 00 00 00 00 00 ff 00   ………(`………………

D0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    

E0:00 00 A8 00 28 38 00 00 00 00 00 00 00 00 00 00 00 00   ...(8个)

F0:5F 55 42 39 34 39 00 00 00 00 00 00 00 00 00   _UB949 .........

msm8996:/data #

msm8996:/data #

msm8996:/data #./i2cdump -f -y 8 0x2C

/i2cdump -f -y 8 0x2C

未指定大小(使用字节数据访问)

    0 1 2 3 4 5 6 7 8 9 A b c d e f   0123456789abcdef

00:58 04 00 f0 fe 1e 00 18 00 00 00 00 00 00 00 00 X   ??????

10:00 00 00 00 00 00 00 00 01 00 0b 13 50 05    ????P?

20:00 00 40 28 08 00 83 84 01 00 00 00 00 00 00 00 00 00..   @(?????……

30:00 00 90 25 01 00 9e 00 00 00 01 20 e0 23 00   ..?%?...? ?#。

40:43 03 00 60 88 00 0f 82 00 08 00 63 00   C????`??????????????

50:03 10 00 01 80 00 00 00 00 7f 20 00 00 00 00 00 00 00   ????????  …

60:00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ……?…

70:00 00 00 07 08 00 00 00 00 00 00 5d 02 00 00 00 00   ...??? ]?...

80:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    

90:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    

A0:00 00 8c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00...   ?..........

B0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    

C0:00 00 00 00 00 00 00 c0 00 00 00 00 00 00 00 00 00    ?。

D0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    

E0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    

F0:5F 55 42 39 34 38 00 00 00 00 00 00 00 00 00   00 _UB948 .........

msm8996:/data #

===================================================================================================

 

下面是从数据表中获取的串行器的0x4f 寄存器设置、

从这里我们可以看到0x4f[0]是只读的、所有其他都是 RW 位、但我们可以写入0x4f[0][3][4]位、无法写入0x4f[1][2]位。

 

我们还进行了一些其他实验、以确保支持的其他 EDID 配置正常工作。 以下是实验结果、

费用1:将 EEPROM 连接到 DDC I2C:

       外部本地 EDID (EEPROM): 我们能够以十六进制格式从“/sys/devices/virtual/graphics/fb1/edid_raw_data”节点读取 EEPROM 中存储的 EDID。

2.       内部 EDID (SRAM): 我们能够以 ASCII 格式从“/sys/devices/virtual/graphics/fb1/edid_raw_data”和“/sys/devices/virtual/graphics/fb1/edid”节点读取 EEPROM 中存储的 EDID。

 

在这两种情况下、我们都能够读取 EDID 的某些部分、而不是我们在 EEPROM 上写入的完整256字节。

               

exp2:将 EEPROM 连接到 I2C (BLSP_8):

       外部本地 EDID (EEPROM): 我们无法从“EDID”或“EDID_RAW_DATA”节点读取任何 EDID。

2.       内部 EDID (SRAM): 在本例中、我们能够读取内部预编程 EDID。

 您能不能调试这个问题?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Pradeep、大家好、我们来看看、希望星期四能收到回复。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Mike Leister:

    我们正在等待您的答复。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Prabhu、您好!

    0x4F (1)在 EDID 读取后自行清除。 您能否在 DDC I2C 时钟/数据上设置逻辑/I2C 分析器、设置串行器0x4F (1)并捕获 EDID 从 EEPROM 到解串器的传输?
    •如果完整的256字节 EDID 不能准确地从 EEPROM 发送、请检查 EEPROM 是否已正确编程、并且可以使用另一个器件进行完全正确的读取。 听起来您已经在 exp1中完成了此操作。
    •设置0x4F (1)后、轮询0x50 (4)直到它变为高电平。 在 EDID 传输完成之前、请勿运行任何代码。 这将确保您在完成之前不会切断 EDID 传输。
    •如果 EEPROM 发送的是完整的256字节、而上一步不允许完整的 EDID 传输、请使用串行器0x52和0x53寄存器进行实验。 这些操作会调整 DDC I2C 链路。

    如果这不起作用、请执行 EDID 传输10次、并记录每次正确传输的字节数。

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

    您好!

    即使在将1写入0x4F (1)后、我们也能够在0x4F (1)位上看到0。 我们无法设置0x4F (1)位。 和0x50寄存器具有0x97值(0x50 (3)= REM_EDID_LOAD 为0)。

    根据数据表、0x4F (0)是只读位、0x4F (1)(2)是 R/W 但我们可以设置0x4F (0)、而不是0x4F (1)(2)。 这有什么原因吗?

    我们注意到以下内容、当我们尝试设置0x4F 寄存器时、

    我们已将0x54寄存器设置为0x00。 但是、写入0x4F 寄存器后、0x54设置为0x28。

    0x54寄存器上的值0x28表示禁用了远程 EDID 加载(0x54 (5)= DIS_REM_EDID 设置为1)。 这样做有什么特殊原因吗?

     

    谢谢、

    Prathibha

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

    您好、Prathibha、

     

    以下是0x4F (1)序列:

    1. 您可以在串行器中设置0x4F (1)
    2. 串行器连接到解串器、并开始解串器和 EEPROM 之间的 DDC 通信
    3. EDID 从 EEPROM 传输到解串器、然后传输到串行器、并存储在串行器 SRAM 中
    4. 串行器复位0x4F (1)

    如果您在设置0x4F (1)后但在256字节被传输之前读取它、您可能会看到1。  否则、您将看到0、因为当从 EEPROM 加载 EDID 完成时、串行器将重置该位。

    寄存器0x54不应加载0x28。  0x00正确。  我假设您没有对0x54寄存器进行编程。

    设置0x4F (1)后、您是否看到 EEPROM 发出的全部256字节?

    Mike

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

    尊敬的 Mike:

    我们只有串行器侧才有 DDC i2c 线路。 解串器和 EEPROM 之间没有 DDC 通信。

    解串器和 EEPROM 之间只有 i2c 通信。 EEPROM 连接到 i2c_8 (BLSP_8)、串行器/解串器也连接到同一个 i2c 线路。

    我们将0x4F (1)位设置为1、在下一次读取该寄存器时、我们不会看到0x4F (1)位设置为1。

    为了确保在该0x4F 寄存器中设置了所有的位、我们将0xFF 写入了0x4F。 在下一个时刻、我们读取0x4F 寄存器、值为0x19。 在本实验中、我们看到0x4F (1)(2)未设置、0x4F (0)已设置。 根据数据表说明、这是不正确的。 这有什么原因吗? 或者、在串行器复位该寄存器之前、我们如何读取0x4F?

    器件启动后、我们在寄存器0x54中读取0x28、因此我们在串行器驱动程序中将该寄存器编程为0x00。 但是、每当我们设置0x4F 寄存器时、0x54寄存器就会重置为0x28。

    谢谢、

    Prathibha

     

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

    尊敬的 Mike:

    有什么输入吗?

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

    您好、Prathibha、

    我认为 EEPROM 位于解串器侧的显示屏中。  这可能会解释0x4F 行为。  您能否发送方框图?

    Mike

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

    你好

    请查找随附的方框图文档。

    这里、我们将 EDID 数据存储在 EEPROM 中、并希望将 EDID 数据加载到串行器的 SRAM 中。

    谢谢、

    Prathibha

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

    谢谢 Prathibha、

    这很好、您可以按照 EDID -> SRAM 的设计工作方式进行配置。

    请使用编程工具验证 EEPROM 是否具有完整的 EDID。

    请设置示波器或串行端口分析器来捕获 EEPROM 解串器 DDC 总线、设置0x4F (1)、并捕获256字节传输。  有几种可能的结果:

    • 整个 EDID 被传输到解串器、下一步是查看其中有多少数据传输到 SRAM
    • 部分 EDID 传输正确、部分已损坏
    • 部分 EDID 传输正确、然后传输停止
    • 其他?

    请告诉我结果。

    您能否发送已编程的 EEPROM 以便复制您的设置?

    Michael Leister c/o Texas Instruments

    2900半导体博士

    Santa Clara CA 95051

    Mike

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

    尊敬的 Mike:

    我们尝试捕获 EEPROM 解串器 I2C 线路、以检查 EEPROM 与解串器之间是否有任何数据传输。 但我们无法在 I2C 线路上看到任何数据。

    我们尝试将0x4F (1)位设置为1并捕获 EEPROM 解串器 I2C 线路、但当我们回读0x4F (1)时、它为0。  

    结果:我们在 I2C 线路上看不到任何数据、并且0x4F (1)位在设置为1后也是0。

    请向我们说明您在 EEPROM 解串器之间谈论的 DDC 总线。 因为 EEPROM 解串器之间仅连接了 I2C 线路(解串器的引脚编号45和46)。

    谢谢、

    Prathibha

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

    尊敬的 Mike:

    对此进行了任何更新?

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

    您好、Prathibha、

    我看到949 0x50 (4)是高电平、这很好。    必须在设置0x4F (1)之前对此进行测试。

    您提到 EEPROM 7位地址为0x50。  在这种情况下、必须将0x50写入949寄存器0x51 (7-1)。  您已将其编程为0xA0、因此948将在该地址查找 EEPROM。

    949 0x50 (3)为低电平。  在读取 SRAM 之前、此值必须为高电平。

    949 0x54 (5)阻止远程 EDID 读取。  检查 MODE_SEL_0和 MODE_SEL_1自举、其自举方式与报告的方式不同。  该位需要为低电平。

    Mike

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

    正确、EEPROM 总线的解串器是 I2C。

    Mike

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

    尊敬的 Mike:

    TI: 您提到 EEPROM 7位地址为0x50。  在这种情况下、必须将0x50写入949寄存器0x51 (7-1)。  您已将其编程为0xA0、因此948将在该地址查找 EEPROM。

    重放:0x50 7位地址编程到949寄存器0x51 (7-1)中、但由于0x51 (0)位设置为0、您可以将0x51寄存器读取为0xA0 (请参阅949数据表寄存器映射)。

    TI: 949 0x50 (3)为低电平。  在读取 SRAM 之前、此值必须为高电平。

    重放:是的、此0x50 (3)位必须变为高电平、以指示 EDID SRAM 已从远程 EDID EEPROM 加载。 我们能否知道为什么该位没有设置为高电平?

    TI: 949 0x54 (5)正在阻止远程 EDID 读取。  检查 MODE_SEL_0和 MODE_SEL_1自举、其自举方式与报告的方式不同。  该位需要为低电平。

    重放:MODE_SEL_0设置为1、MODE_SEL_1设置为4、以选择远程 EDID 配置。 如果我们将 MODE_SEL_1设置为4、则不应将0x54 (5)设置为1。 但该位仍会变为高电平、因此我们在内核中将0x54寄存器编程为0x00。

    如果我们要设置0x4F 寄存器、正如我们在之前的帖子中已经问过的那样、0x54 (5)位将设置为1 (0x54设置0x28)。 我们能否知道原因?

    谢谢、

    Prathibha

     

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

    尊敬的 Mike:

    是否有更新?

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

    您好、Prathibha、

    请注意下周初设置调试调用的电子邮件。  我希望这可以是一个工作会议、您可以在其中访问设置。

    Mike

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

    您好、Prathiba、

    我注意到949 寄存器0x54为0x28或00101000b、因此位5为1。  从949数据表表表中的表10第5位:"如果该位设置为1、则将绕过远程 EDID 负载。"

    请将 MODE_SEL1从4更改为  3.

    Mike

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

    尊敬的 Mike:

    是的、949寄存器0x54位5不应为1。 但是、即使我们将 MODE_SEL1设置为4或3、寄存器0x54位5也仅设置为1。

    为了将0x54 (5)位设为0、我们将0x00写入内核串行器驱动程序文件中的寄存器0x54、正如我们在之前的注释中所提到的那样。

    我们能否知道您为什么建议我们将 MODE_SEL1设置为3?  因为、如果我们将 MODE_SEL1设置为3、则 REM_EDID_LOAD 选项变为0。  

    将 REM_EDID_LOAD 选项设置为0意味着"使用内部 SRAM EDID"。  但我们的目标是将 EDID 从远程 EEPROM 加载到串行器的 SRAM 中。

    有关详细说明 、请参阅数据表中"7.4.1模式选择配置设置(MODE_SEL[1:0])"部分。  

    谢谢、

    Prathibha

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

    您好、Prathibha、

    有趣;0x54 (5)描述似乎与表6冲突。

    "禁用远程 EDID 加载:禁止从远程 EDID 自动加载 EDID SRAM

    EEPROM。 默认情况下、该器件将通过检查远程 I2C 总线是否有 EEPROM

    EDID、并将 EDID 数据加载到本地 EDID SRAM。 如果该位设置为1、则

    将绕过远程 EDID 加载。 该值从上的 MODE_SEL1引脚加载

    加电。"

    在数据表表表6中、如果 REM_EDID_LOAD 为高电平、"如果可用、远程 EDID 会复制到内部 SRAM EDID 中。"

    我从您的寄存器转储中看到该位被清除、因此 EDID 加载应该起作用。  我将要求 FAE 与我本人和94x 专家一起设置电话调试会话、以便我们可以找到最下面的内容。

    Mike

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

    尊敬的 Mike:

    我们用两种情况进行了测试。 一次、通过将 MODE_SEL1设置为3、另一次、通过将 MODE_SEL1设置为4。 在这两种情况下、我们只能将0x54寄存器读取为0x28、将0x50寄存器读取为0x97。

    请在这两种情况下找到串行器的以下寄存器转储  

    ===================================================================================================

    MODE_SELl1 = 3
    ===========================
    msm8996:/#./data/i2cdump -f -y 8 0x0c
    /data/i2cdump -f -y 8 0x0c
    未指定大小(使用字节数据访问)
        0 1 2 3 4 5 6 7 8 9 A b c d e f   0123456789abcdef
    00:18 00 00 da 80 00 58 50 50 00 10 00 07 25 35 03   ????????。XPP???%5?
    10:00 00 00 00 A8 00 00 fe 1e 7f 01 00 0c 00 01 00   ……?????? ???
    20:0b 00 25 00 00 00 00 01 20 A8 00 A5 5a   ?%。。。 ?  ????Z
    30:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    
    40:14 55 00 80 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00?u..    
    50:97 a0 1e 00 28 0c 15 00 00 dd a0 02 06 44 48   ???(??????????DH
    60:22 02 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00   “…………………………………………
    70:78 BA a0 00 00 00 78 BA a0 00 00 00 00 00 00 00 00   x?... x?
    80:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    
    90:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    
    A0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    
    B0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    
    C0:00 00 A8 00 28 38 00 c0 00 00 00 00 00 00 00 00 ff 00   ..(8...?..
    D0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    
    E0:00 00 A8 00 28 38 00 00 00 00 00 00 00 00 00 00 00 00   ...(8个)
    F0:5F 55 42 39 34 39 00 00 00 00 00 00 00 00 00   _UB949 .........
    msm8996:/#

    MODE_SELl1 = 4
    ===========================
    msm8996:/#./data/i2cdump -f -y 8 0x0c
    /data/i2cdump -f -y 8 0x0c
    未指定大小(使用字节数据访问)
        0 1 2 3 4 5 6 7 8 9 A b c d e f   0123456789abcdef
    00:18 00 00 da 80 00 58 50 50 00 03 00 07 25 35 03   ?????????。XPP???%5?
    10:00 00 00 00 A8 00 00 fe 1e 7f 01 00 0c 00 01 00   ……?????? ???
    20:0b 00 25 00 00 00 00 01 20 20 a0 00 A5 5a   ?%… ?  ????Z
    30:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    
    40:14 55 00 80 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00?u..    
    50:97 a0 1e 00 28 0c 00 00 00 dd a0 02 06 44 49   ???(???????DI
    60:22 02 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00   “…………………………………………
    70:78 BA a0 00 00 00 78 BA a0 00 00 00 00 00 00 00 00   x?... x?
    80:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    
    90:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    
    A0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    
    B0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    
    C0:00 00 A8 00 28 00 60 c0 00 00 00 00 00 00 00 00 00 ff 00   ………(`………………
    D0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    
    E0:00 00 A8 00 28 38 00 00 00 00 00 00 00 00 00 00 00 00   ...(8个)
    F0:5F 55 42 39 34 39 00 00 00 00 00 00 00 00 00   _UB949 .........
    msm8996:/#
    谢谢、
    Prathibha
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Prathibha、

    我有一个 EEPROM、并将其焊接 到我的948 EVM I2C 总线。  如果系统按如下所述进行配置、EDID 将在加电时加载、而无需任何干预或寄存器编程。

    下面是我加载远程 EEPROM 时遵循的顺序:

    • 设置 MODE_SEL0和 MODE_SEL1电阻器、以便以下949寄存器位将为零。
      • 0x54位7 = 0允许内部桥接控制功能正常工作
      • 0x54位5 = 0当为低电平时启用远程 EDID 负载
      • 0x5B 位7 = 0这是 STP 电缆的设置。  如果使用同轴电缆、则应为1。
      • 0x4F 位0 = 0当设置为低电平时、通过 DDC/I2C 启用 EDID 访问。  我已经提交了一个 TT 来澄清数据表。
    • 使用948 SCL、SDA 和系统电源上的示波器探针为 SERDES 对加电。  在系统电源的上升沿触发。  如果 EEPROM 与949中的 EDID 地址匹配、并且948在 I2C 总线上看到 EEPROM、 则 EDID 传输将如下图所示。  请注意、波形被压缩、并且存在一些混叠;随后是特写图像。
    • I2C 时钟的特写
    • I2C 数据特写
    • 如果 I2C 活动非常短(一个字节或两个字节)、则948未检测到 EEPROM 或949配置不正确。
    • 检查这些949寄存器位、如果它们不匹配、则修复 MODE_SEL0和 MODE_SEL1
        • 0x54位7 = 0允许内部桥接控制功能正常工作
        • 0x54位5 = 0当为低电平时启用远程 EDID 负载
        • 0x5B 位7 = 0这是 STP 电缆的设置。  如果使用同轴电缆、则应为1。
        • 0x4F 位0 = 0当设置为低电平时、通过 DDC/I2C 启用 EDID 访问。  我已经提交了一个 TT 来澄清数据表。

    • 如果以下位被置位、那么 EDID 在949 SRAM 中可用。  这些位在我的设置中设置:
    • 0x50位3 = 1加载到 SRAM 的远程 EDID
    • 0x50位0 =通过1 EDID 传输校验和

    我断电、移除 EEPROM、然后上电以观察 EDID 加载失败。

    • 系统加电时、948 I2C 上的超短时时时钟脉冲
    • 0x50位3 = 0表示无远程 EDID 传输

    请严格遵循此顺序。  如果不起作用、请在调试电话调用中准备好以下内容:

    • 948 I2C 时钟/数据和系统加电的示波器图
    • 949/948寄存器转储
    • MODE_SEL0和 MODE_SEL1加电时的示波器图以及每个稳压器稳定后的电压测量值。

    Mike

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

    尊敬的 Mike:

    您能给我们发送一张工作设置的图片吗?

    因为在本例中、即使在设置 MODE_SEL 开关后、0x54 (5)也是1和0x50 (3)也是0。

    谢谢、

    Prathibha

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

    您好、Prathibha、

    这是我的设置。

    如果 MODE_SEL0和 MODE_SEL1电压与表7和8不匹配、请检查1.8V 电源轨电压并调整电阻器以获得正确的 MODE_SEL0和 MODE_SEL1电压。

    Mike

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

    尊敬的 Mike:

    当我们将 MODE_SEL1设置为4或3时、我们将读取0x54寄存器作为0x28、其中它将设置 DIS_REM_EDID 位(0x54[5])。

    但是、当我们将 MODE_SEL1设置为2时、我们能够将寄存器0x54读取为0x08。 这不是设置 DIS_REM_EDID 位、而是将0x5B 寄存器设置为0x20。

    在您的设置中、您要将 MODE_SEL1设置为2、这将启用 REM_EDID_LOAD 选项、此外、由于您未使用同轴电缆、此模式选择是正确的。

    现在的区别是、我们使用的是同轴电缆。 因此、我们必须将 MODE_SEL1设置为4、以保留 REM_EDID_LOAD 和同轴电缆选项。 但这会设置0x54寄存器的 DIS_REM_EDID 位、并且我们将读取0x50为0x97、这表示 EDID 加载不成功。

    正如您建议检查电压一样、MODE_SEL1电压与表8相匹配。

    谢谢、

    Prathibha

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

    您好、Prathibha、

    当我将 MODE_SEL1设置为位置4时、我获得了加电时所需的设置。

    • 0x54 (7)=0内部桥接控制被使能
    • 0x5B (7)=1电缆 为同轴电缆
    • 0x54 (5)=1启用远程 EDID 加载(将更新数据表)

    我在 MODE_SEL1 = 4的情况下进行了测试、方法是上电、捕获948 I2C 上的 EEPROM 读数并验证0x50=1。  因此、这也应该在您的设置中正常工作。

    我做了一些实验、发现它对加电缓慢很敏感。  当我在连接线束的情况下通过打开电源来加电时、我并不总是读取 EEPROM。  当我通过将电源线热插拔到已经打开的电源上电时、稳压后、它始终读取 EEPROM。  您能否热插拔电源并采集948 I2C SCL?  如果您的3.3V 电源轨在3ms 或更短时间内启动、则 EEPROM 读取应在通电后大约30ms 开始。

    Mike

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

    尊敬的 Mike:

    我们测试了电源线热插拔、但在 I2C SCL 线路上仍然看不到时钟。

    串行器寄存器0x50中的值为0x97、表示0x50位3 (REM_EDID_LOAD)仍然为0。

    谢谢、

    Prathibha

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

    您好、Prathibha、

    MODE_SEL1 = 4是需要解决的问题。

    位置4电阻分压器对可能发生机械损坏或值错误。  请根据数据表表替换它们。  请添加一个与下电阻器并联的100pF 电容器。  如果存在噪声、这将对其进行滤波、并可能有所帮助。  是否对949 EVM 进行了任何更改?

    如果这不起作用、请尝试每个 MODE_SEL1设置、并在对寄存器进行任何更改之前记录您在加电时看到的以下位。  如果任何位置与下面的位匹配、请重新测试该设置、我们将对加载错误模式的方式进行分类。

    • 0x54 (7)=0内部桥接控制被使能
    • 0x5B (7)=1电缆 为同轴电缆
    • 0x54 (5)=1启用远程 EDID 加载(将更新数据表)

    Mike

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

    尊敬的 Mike:

    我使用所有 MODE_SEL1设置进行了测试、每次我看到949寄存器0x50[3]仅为0 (0x50[3]= REM_EDID_LOAD)。

    您可以共享949寄存器转储吗?

    谢谢、

    Prathibha

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

    尊敬的 Mike:

    是否有更新?

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

    尊敬的 Mike:

    如果我们从您的工作设置中获取949寄存器转储、我们可以检查是否有任何其他寄存器设置发生了变化。  

    是否可以共享949寄存器转储?

    谢谢、

    Prathibha

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

    您好、Prathibha、

    以下是成功读取 EDID 后的寄存器转储:

    [寄存器]
    器件= ALP Nano 1 - DS90UB949、连接器1
    注释="REM_EDID_LOAD=1"
    日期= 2019年7月8日
    时间= 17:52:48
    寄存器= 0、0x0000.0x18
    寄存器= 0、0x0001、0x00
    寄存器= 0、0x0003、0xDA
    寄存器= 0、0x0004、0x80
    寄存器= 0、0x0005、0x00
    寄存器= 0、0x0006、0x58
    寄存器= 0、0x0007、0x00
    寄存器= 0、0x0008、0x00
    寄存器= 0、0x0009、0x00
    寄存器= 0、0x000A、0x00
    寄存器= 0、0x000B、0x00
    寄存器= 0、0x000C、0x01
    寄存器= 0、0x000D、0x20
    寄存器= 0、0x000E、0x00
    寄存器= 0、0x000F、0x00
    寄存器= 0、0x0010、0x00
    寄存器= 0、0x0011、0x00
    寄存器= 0、0x0012、0x00
    寄存器= 0、0x0013、0xB8
    寄存器= 0、0x0014、0x00
    寄存器= 0、0x0015、0x01
    寄存器= 0、0x0016、0xFE
    寄存器= 0、0x0017、0x1E
    寄存器= 0、0x0018、0x7F
    寄存器= 0、0x0019、0x7F
    寄存器= 0、0x001A、0x01
    寄存器= 0、0x001B、0x00
    寄存器= 0、0x001C、0x00
    寄存器= 0、0x001D、0x00
    寄存器= 0、0x001E、0x01
    寄存器= 0、0x001F、0xF6
    寄存器= 0、0x0020、0x0B
    寄存器= 0、0x0021、0x00
    寄存器= 0、0x0022、0x25
    寄存器= 0、0x0023、0x00
    寄存器= 0、0x0024、0x00
    寄存器= 0、0x0025、0x00
    寄存器= 0、0x0026、0x00
    寄存器= 0、0x0027、0x00
    寄存器= 0、0x0028、0x01
    寄存器= 0、0x0029、0x20
    寄存器= 0、0x002A、0x20
    寄存器= 0、0x002B、0xA0
    寄存器= 0、0x002C、0x00
    寄存器= 0、0x0030、0x00
    寄存器= 0、0x0031、0x00
    寄存器= 0、0x0032、0x00
    寄存器= 0、0x0033、0x00
    寄存器= 0、0x0034、0x00
    寄存器= 0、0x0035、0x00
    寄存器= 0、0x0036、0x00
    寄存器= 0、0x0037、0x00
    寄存器= 0、0x0038、0x00
    寄存器= 0、0x0039、0x00
    寄存器= 0、0x003A、0x00
    寄存器= 0、0x003B、0x00
    寄存器= 0、0x003C、0x00
    寄存器= 0、0x003D、0x00
    寄存器= 0、0x003E、0x00
    寄存器= 0、0x003F、0x00
    寄存器= 0、0x0040、0x14
    寄存器= 0、0x0041、0x55
    寄存器= 0、0x0042、0x00
    寄存器= 0、0x0043、0x00
    寄存器= 0、0x0044、0x80
    寄存器= 0、0x0045、0x00
    寄存器= 0、0x0046、0x00
    寄存器= 0、0x0047、0x00
    寄存器= 0、0x0048、0x00
    寄存器= 0、0x0049、0x00
    寄存器= 0、0x004A、0x00
    寄存器= 0、0x004B、0x00
    寄存器= 0、0x004C、0x00
    寄存器= 0、0x004D、0x00
    寄存器= 0、0x004E、0x00
    寄存器= 0、0x004F、0x00
    寄存器= 0、0x0050、0x1F
    寄存器= 0、0x0051、0xA1
    寄存器= 0、0x0052、0x1E
    寄存器= 0、0x0053、0x00
    寄存器= 0、0x0054、0x08
    寄存器= 0、0x0055、0x0C
    寄存器= 0、0x0056、0x00
    寄存器= 0、0x0057、0x00
    寄存器= 0、0x0058、0x00
    寄存器= 0、0x0059、0x00
    寄存器= 0、0x005A、0x92
    寄存器= 0、0x005B、0xA0
    REG = 0、0x005C、0x02
    寄存器= 0、0x005D、0x06
    寄存器= 0、0x005E、0x44
    寄存器= 0、0x005F、0x00
    寄存器= 0、0x0060、0x22
    寄存器= 0、0x0061、0x02
    寄存器= 0、0x0062、0x00
    寄存器= 0、0x0064、0x10
    寄存器= 0、0x0065、0x00
    寄存器= 0、0x0066、0x00
    寄存器= 0、0x0067、0x00
    寄存器= 0、0x0068、0x00
    寄存器= 0、0x0069、0x00
    寄存器= 0、0x006A、0x00
    寄存器= 0、0x006B、0x00
    REG = 0、0x006C、0x00
    寄存器= 0、0x0070、0x00
    寄存器= 0、0x0071、0x00
    寄存器= 0、0x0072、0x00
    寄存器= 0、0x0073、0x00
    寄存器= 0、0x0074、0x00
    寄存器= 0、0x0075、0x00
    寄存器= 0、0x0076、0x00
    寄存器= 0、0x0077、0x00
    寄存器= 0、0x0078、0x00
    寄存器= 0、0x0079、0x00
    寄存器= 0、0x007A、0x00
    寄存器= 0、0x007B、0x00
    寄存器= 0、0x007C、0x00
    寄存器= 0、0x007D、0x00
    寄存器= 0、0x0080、0x00
    寄存器= 0、0x0081、0x00
    寄存器= 0、0x0082、0x00
    寄存器= 0、0x0083、0x00
    寄存器= 0、0x0084、0x00
    寄存器= 0、0x0090、0x00
    寄存器= 0、0x0091、0x00
    寄存器= 0、0x0092、0x00
    寄存器= 0、0x0093、0x00
    寄存器= 0、0x0094、0x00
    寄存器= 0、0x0098、0x00
    寄存器= 0、0x0099、0x00
    寄存器= 0、0x009A、0x00
    寄存器= 0、0x009B、0x00
    寄存器= 0、0x009C、0x00
    寄存器= 0、0x009D、0x00
    reg = 0、0x009E、0x00
    寄存器= 0、0x009F、0x00
    寄存器= 0、0x00A0、0x00
    寄存器= 0、0x00A1、0x00
    寄存器= 0、0x00A2、0x00
    寄存器= 0、0x00A3、0x00
    寄存器= 0、0x00C0、0x00
    寄存器= 0、0x00C1、0x00
    寄存器= 0、0x00C2、0xA8
    寄存器= 0、0x00C3、0x00
    寄存器= 0、0x00C4、0x68
    寄存器= 0、0x00C5、0x00
    寄存器= 0、0x00C6、0x00
    寄存器= 0、0x00C7、0xC0
    寄存器= 0、0x00C8、0x40
    寄存器= 0、0x00C9、0x00
    寄存器= 0、0x00CA、0x00
    REG = 0、0x00CB、0x00
    寄存器= 0、0x00CC、0x00
    寄存器= 0、0x00CE、0xFF
    寄存器= 0、0x00D0、0x02
    寄存器= 0、0x00D1、0xA1
    寄存器= 0、0x00D2、0xFF
    寄存器= 0、0x00D3、0x6F
    寄存器= 0、0x00E0、0x00
    寄存器= 0、0x00E1、0x00
    寄存器= 0、0x00E2、0xA8
    寄存器= 0、0x00E3、0x00
    寄存器= 0、0x00E4、0x68
    寄存器= 0、0x00E5、0x08
    寄存器= 0、0x00E6、0x00
    寄存器= 0、0x00E7、0x00
    寄存器= 0、0x00F0、0x5F
    寄存器= 0、0x00F1、0x55
    寄存器= 0、0x00F2、0x42
    寄存器= 0、0x00F3、0x39
    寄存器= 0、0x00F4、0x34
    寄存器= 0、0x00F5、0x39
    寄存器= 0、0x00F6、0x00
    寄存器= 0、0x00F8、0x00
    寄存器= 0、0x00F9、0x00

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Mike:
    感谢您共享寄存器转储。
    现在、我们不包括 SD820、只使用串行器和解串器。 SD820处理器中的串行器和解串器没有任何驱动程序控制。 下面是我们的测试程序、

    1.连接解串器上的 EEPROM
    2.使用 DOUT0端口上的同轴电缆连接串行器和解串器
    3.设置串行器的 MODE_SEL0=1和 MODE_SEL1=4
    4.将串行器和解串器上电12V
    5.按串行器上的 PDB 开关
    如果我们仅加电、则寄存器0x54中的值为0x28、但按下 PDB switch 时、我们会看到0x54为0x08。
    按下 PDB 开关时、我们在 EEPROM 中探测 I2C 线路。 我们看到在线路上进行了一些切换。 请找到所附图片。
    但是、串行器的0x50寄存器仍为0x17 (REM_EDID_LOAD=0)、这表示 EDID 尚未加载。
    按下 PDB 开关时、我们会在串行器的寄存器0x0A 和0x0C 中看到一些 CRC 错误。  
    谢谢、
    Prathibha
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Prathibha、

    很高兴看到您现在在解串器到 EEPROM I2C 总线上有 I2C 活动。

    当您加电但未按下 PDB 时、串行器 RAM 是否正确加载了 EDID 数据?  REM_EDID_LOAD=1吗?

    我复制了一位具有强大 I2C 背景的同事、并将在今天下午与他进行讨论。

    Mike

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

    尊敬的 Mike:

    当我们加电但未按下 PDB 时、REM_EDID_LOAD=0。 串行器未加载远程 EDID。

    下面是我们的测试程序。 请告诉我们、除了按下 PDB、我们是否缺少任何内容?

    1:串行器上的模式选择设置、MODE_SEL0=1和 MODE_SEL1=4

    连接在解串器上使用 EDID 编程的 EEPROM

    3.使用同轴电缆在端口0 (DOUT0)连接串行器和解串器

    4.使用12V 电压为串行器和解串器上电

    完成此操作后、我们将使用 Analog LaunchPAD 检查串行器的寄存器值

    此时、我们得到 REM_EDID_LOAD=0 (0x50=0x17)和 DIS_REM_EDID=1 (0x54=0x28)。

    6.按下 PDB 开关并检查寄存器转储

    此时、我们得到 REM_EDID_LOAD=0 (0x50=0x17)和 DIS_REM_EDID=0 (0x54=0x08)。

    如果我们缺少任何内容、请告知我们。  

    另外、您是否知道为什么按下 PDB 开关后会出现 CRC 错误?

    谢谢、

    Prathibha

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

    尊敬的 Mike:

    是否有更新? 测试过程中是否缺少任何内容?

    谢谢、

    Prathibha

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

    您好、Prathibha、

    您的过程看起来正常。  步骤5完成后、我希望 EDID 在949 RAM 中可用。  不是这样吗?

    按下949上的 PDB 时、可能会出现一些反向通道错误、因为它可能在948反向通道传输的中间重新初始化。  在这种情况下、应存在一些初始误差、但不应在这些误差之后累积。  您看到的是这种情况吗?

    Mike

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

    其他项目、我使用的是 PCF8582C EEPROM。

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

    您好、Prathibha、

    在中、寄存器转储地址0x13包含0xA8、在我的寄存器转储中、它是0xB8。

    这意味着您处于 MODE_SEL1 = 3状态、因此 REM_EDID_LOAD=0并且系统不会尝试获取远程 EEPROM EDID。

    我的寄存器0x13包含0xB8、因此 MODE_SEL1 = 4、REM_EDID_LOAD=1和远程 EEPROM EDID 正在加载。

    请修正 MODE_SEL1电阻器比率。

    您在949侧使用的是 TI EVM 还是内部设计?

    Mike

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

    您好、Prathibha、

    您的 TI FAE 通过电子邮件共享了您的最新寄存器转储。  MODE_SEL1需要是正确的、然后才能取得进展。

    请确保 MODE_SEL1引脚上的电压为0.792V、并查看寄存器中的模式4。

    如果是、请 在示波器上捕获电源轨、PDB 和 MODE_SEL1。

    Mike

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

    尊敬的 Mike:

    在按下 PDB 开关之前、寄存器0x13的值为0xA8、而在按下 PDB 开关之后、寄存器0xB8的值为0xB8。

    我们在模式4引脚上探测 MODE_SEL1开关、并在按下 PDB 开关前后获得大约0.79V 的电压。

    以下是生成 EDID 数据并将其写入 EEPROM 的步骤、

    1.使用"AW EDID Editor"工具根据我们的显示规范生成 EDID 数据

    2.取该 EDID 数据的十六进制值

    3.使用 echo 命令将数据作为字符串写入 EEPROM,例如:-'echo "EDID 数据的十六进制值">/sys/bus/i2c/devices/8-0050/eeprom

    将 EDID 数据写入 EEPROM 的步骤是否正确? 或者、我们能否知道您使用什么方法将 EDID 数据写入 EEPROM?

    谢谢、

    Prathibha

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

    尊敬的 Mike:

    下面是我们捕获的波形。

    通道1电源和通道2 PDB

    通道1-PDB 和通道2-mode4引脚以及 MODE_SEL1开关

    谢谢、

    Prathibha  

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

    尊敬的 Mike:

    将 EDID 数据写入 EEPROM 的过程是否有任何更新?

    我们要遵循的方法是这样吗?

    谢谢、

    Prathibha

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

    您好、Prathibha、

    我没有发现该过程有任何问题、只是 MODE_SEL1出现问题、然后在 PDB 之后进行纠正。  

    这表明 MODE_SEL1引脚以低速斜升。  MODE_SEL1上是否有电容器?  如果是、引脚上的 RC 延迟将解释此行为。  请检查它。

    是否可以同时尝试 PDB 948/949?

    Mike

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

    由于我们直接收到有关此主题的电子邮件和电话、因此我将关闭此 TT、并在我们解决问题后进行更新  

    此致、

    Casey