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.

[参考译文] SN75DP159:按照 DP159作为重定时器文档进行编程后无法获取参考时钟

Guru**** 2455560 points


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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/609275/sn75dp159-unable-to-get-reference-clock-after-programming-as-per-the-dp159-as-retimer-document

器件型号:SN75DP159

您好!

  我一直在使用基于 Xilinx Zynq 的 SOC 和定制的 Display Port 接口。 对于 DP 灌电流实现、我已将 DP159用作重定时器。 我从论坛上了解到、文档 SLLA359不是一个公共文档、它可以帮助我更深入地了解如何调试该问题。 我无法在 AUX_SRCN/AUX_SRCP 上获取任何时钟输出。 请澄清以下几点:

1)在 SLLA358中、可以看到某些寄存器的保留位为0x09位[5:4]、但文档中的示例代码仍然写入这些位。 当执行相同的过程时、我无法读回最初写入的相同值、这是位保留的结果。

2) 2)考虑到保留位只读回0、如何确保 IC 进入 X 模式?

3) 3) OE 置为有效/置为无效以配置这些寄存器、从而使 IC 进入 X 模式、是否有特定的时间周期为100us 左右?

4) 4)寄存器的保留位是否提供与 IC 进入 X 模式后写入示例代码相同的值?

5) 5)函数 WRITE_CSR (addr、data)是正常的 I2C 函数、我是否正确? Xilinx 示例代码利用不同的 API 来配置 DP159并将其称为动态 I2C。 配置这些寄存器的正常 I2C 写入操作是否有区别?

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

    1) 2)页0、寄存器0x09[5]-> x 模式使能
    3) 3)遵循数据表第9.3.2节中的加电时序应该就足够了
    4) 4)所有寄存器应读取相同的写入值
    5) 5) WRITE_CSR 是一种正常的 I2C 功能、您可以在数据表的第9.5.2节中看到 I2C 行为

    此致
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我通过 I2C 按照文档中提到的顺序写入寄存器、写入的值完全相同。 无论是 AUX 引脚上的时钟、还是通过执行 I2C 读取操作来获得相同的写入值、我都无法获得这些值。 读取的值与始终读取为0的保留位不同。 如果只将0x9[5]写入1、X 模式被启用、那么同一寄存器配置序列应该在 AUX 上生成时钟、对吧?
    以下是我当前面临的问题:
    1) 1) AUX 上无时钟
    2) 2)读取的值与写入的值不同
    寄存器配置序列之后执行该操作
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、Moises、  

    我在所附文件中附上了一些意见。 通过仅执行 结构 DP159InitT RBR_HBR_HBR2_Common_Init[]第4节重定时器数据表中的配置、我无法在 AUX 引脚上获取任何时钟。 但是、当参考重定时器数据表第4.5节写入寄存器时、也会获得类似时钟的脉冲、并附加捕获。 在文档中、我有

    1) 1)提供了执行 X 模式配置的配置详细信息。  

    2) 2)突出显示了不读回写入的相同值的寄存器。  

    3) 3)连接了在配置 DP159InitT RBR_HBR_HBR2_Common_Init[]、第4节和第4.5节后获得的时钟、但时钟不干净。 对 DP RX 来说足够了吗?

    e2e.ti.com/.../Obs_5F00_Ref.pdf

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

    您好 Fadil、

    我看到您尝试从第1页向寄存器0x00写入0x40、为什么要这样做?

    请记住、当您设置单个位时、其他位必须保持不变、首先读取寄存器、然后生成或以设置位、最后写入寄存器。

    LOCK_COMPLETE 是一个状态位、您不必编写它。

    第4节中的配置不需要第4.5节中的额外配置、它应仅使用示例脚本输出时钟。

    此致

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

    大家好、Moises、

      我不知道第1页、0x00[4]是一个状态位。 我只是按照第4.5节中提到的内容进行操作。  

      我了解了在从示例脚本读取并写入值后、您希望我写入寄存器值的方式。 即使这样、我也无法在 AUX 引脚上获得任何时钟。 但是、当我写入除0x00[4]写入之外的配置时、我会得到时钟、但它不稳定、看起来像 PWM 信号。

      您能否分享一些更多的故障排除步骤、以便我至少可以从 DP159获取时钟?

      此外、显示不同读取和写入值的地址0xE 会怎么样?

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

    您好 Fadil、

    您不必为第4.5节添加额外的步骤、示例脚本中已设置了所述的步骤、请删除第4.5节的序列、器件应在不添加额外配置的情况下使用示例脚本

    AUX_CFG 位(第0页偏移0Dh 位7)必须设置为1'B1。

    {0x0D, 0x80},//启用 AUX 上的时钟。 选择1/20模式。

    AUX_BRG_EN 位(第0页偏移0Ah 位3)必须设置为1'B1。

    {0x0A、0x7B}、//禁用 HPD_SNK 直通至 HPD_SRC。

    LOCK_COMPLETE 位(第1页偏移00h 位6)必须设置为1'B1。

    U16 LOCK_WAIT = 256;在400kHz I2C 下约为300us。

    ReadBuffer[0]= 0;

    while (ReadBuffer[0]= 0 && LOCK_cnt < LOCK_WAIT){

     Read_CSR (0x00);

     ReadBuffer[0]= ReadBuffer[0]& 0x40;// 0x80;

     lock_cnt++;

    必须启用 TX 通道0 (第1页偏移10h 位0为1'B1、第1页偏移10h 位4为1'b0。

    rtxen =(link_lanecnt=1)? 0xE1:(link_lanecnt=2)? 0xC3:0x0F;
    {0x10、rtxen}、//启用 TX 通道

    有关寄存器0x0E=0x01的说明
    您能否尝试在 IN_CLK 而非 IN_D2上将 TPS1模式(ML0)置为有效的链路训练恢复阶段?
    要获得有效的输出时钟、首先必须将 PLL 锁定在 TPS1模式下。
    此致
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、Moises、

     我已经尝试根据您从重定时器数据表中获取参考的说明进行配置。 但我仍然无法在 AUX_P/N 引脚上获取时钟。

    本文档提供了详细的系统设置和我的观察结果。 请仔细检查、如果我缺少任何内容、建议您查看。

    e2e.ti.com/.../System-Setup.pdf

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

    让我们花几天时间来回顾这个问题

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

    根据 slla358的第4.3.2节、在 LOCK_COMPLETE 位被置位之前、我不希望启用 TX 通道或设置 PLL 寄存器。 在 LOCK_COMPLETE 位被置位后、您能否将写入移动到第1页寄存器0x10和0x00? 由于 PLL 未正确锁定、因此看起来时钟未在 AUX 上发出。

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

    JMMN、您好!

      您提出的问题对我们来说也很模糊、因为我们参考的是我随附的 Xilinx PG064文档指南页面。 在本文档中、第1页的0x00和0x10是在 PLL 锁定之前写入的、这可能会为我们提供要设置的值0xE3 (PLL_clock、LOCK_COMPLETE)位、从而覆盖正确的 PLL 锁定。 但是、Xilinx 还具有一个针对 DPRX、Xapp1178 (开放源码)的已实现软件应用程序、在设置 LOCK_COMPLETE 位后、他们将写入第1页的0x00和0x10。 我将重做您所做的指针并记录观察结果。

      此外,我还需要澄清以下问题:

    1.对于取决于电压摆幅的 DisplayPort 链路协商的时钟恢复阶段、硬件是否对主链路数据通道上的10.2符号执行恢复? 或者它取决于提供的时钟、例如135MHz。 我的理解是、它根据主链路上的符号执行恢复、而不依赖于重定时器预期的135MHz 时钟。

    2.对于显示端口链路协商的通道均衡阶段、需要实现三种状态:Channel_Equalization、Lane_Alignment 和 Symbol_Lock、这取决于预加重级别。 硬件是否根据从主链路恢复的时钟(假设)或重定时器预期的时钟执行 Symbol_Lock 锁存?

     


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

    由于您需要澄清的硬件功能是 Xilinx 设计的一部分、而不是 TI 器件、因此 Xilinx 需要对确切的器件行为进行评论。 话虽如此、我同意您的假设是合理的:

    1.根据规范,我希望主链路数据通道上会发生时钟恢复。
    此外、我希望根据恢复的时钟锁存符号锁定。

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

    如果对此问题有任何进一步的更新、请告知我们。

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

    JMMN、您好!

     非常感谢您的跟进。

      目前、我们已经提供了用于更换 IC 的电路板。 我不确定董事会需要多少天才能与我们联系。 在我们开始调试过程后、我将向您更新观察结果。

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

    我现在将关闭此线程、您可以在获得更多数据后重新发布到该线程以将其打开。

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

    您好,

      我还遇到了同样的问题,如何解决?

     谢谢!!!