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.

[参考译文] SN65DSI86:DP 显示 CAN&'t 输出正常

Guru**** 2687405 points

Other Parts Discussed in Thread: SN65DSI86

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1582372/sn65dsi86-the-dp-display-can-t-output-normally

器件型号: SN65DSI86
主题中讨论的其他器件: test2.

尊敬的 TI 专家:

我们最近使用 SN65DSI86 调试 DP 显示、但在启用芯片时出现了一些错误:
1.显示屏的 EDID 为:

                 EDID:00000000:00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff FF 00 10 AC C4 A1 42 4D 34 39
[7.666303][T11]   EDID:00000010:19 20 01 04 A5 35 1e 78 3a 56 25 AB 53 4F 9d 25
[7.666310][T11]   EDID:00000020:10 50 54 A5 4b 00 71 4F 81 80 A9 c0 D1 c0 81 c0
[7.666316][T11]   EDID:00000030:81 CF 01 01 01 01 02 3a 80 18 71 38 2D 40 58 2c
[7.666322][T11]   EDID:00000040:45 00 0f 28 21 00 00 1e 00 00 00 ff 00 4a 44 43
[7.666328][T11]   EDID:00000050:30 46 51 33 0A 20 20 20 20 00 00 fc 00 44
[7.666335][T11]   EDID:00000060:45 4c 4c 20 50 32 34 32 48 0A 20 00 00 FD
[7.666341][T11]   EDID:00000070:00 38 4c 1e 53 11 01 0A 20 20 20 20 20 00 4F

使用 SN65DSI86 内核驱动程序进行调试时、SN65DSI86 芯片会报告一些错误、I2C 寄存器转储在此处:
未指定大小(使用字节数据访问)
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
00:36 38 49 53 44 20 20 20 02 00 83 00 01 00 68ISD?...?...
10:26 00 4c 4c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 &
20:80 07 00 00 38 04 00 00 00 00 00 00 00 00 2c 00 00 00?...8 、。
30: 05 00 00 00 94 00 24 00 58 00 04 00 00 00 00 00 00 00 00 ?...$.X.?
40: 1D 67 00 80 00 98 08 65 04 c0 00 29 00 2c 00……?????????)……
50: 05 00 80 07 38 04 20 00 40 E4 0d 00 10 00 f0 00 ?????8? @………………………
60:A0 60 A4 00 20 06 06 00 00 00 00 00 00 00 00 00 00 ?`?. ??
70: 00 00 00 00 00 01 01 01 80 01 77 00 00 00 00 00… ???? W·····
80:00 00 00 00 00 00 00 00 00 1 f 7c f0 C1 07 1 f 7c ?????|
90:F0 C1 07 34 22 10 01 04 01 00 00 00 00 00 00 00 00??4????
A0:01 ff 00 00 00 00 00 00 00 00 00 00 00 00 00…
b0:04 78 ac ac 08 6c 9c 9c 0c 5c 5c 0c 0c 0c 0c 0c 0c 0c?x??l????
C0:3F 3f 0f 00 00 00 00 00 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 00…
E0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00…
F0:00 03 00 21 23 40 00 03 00 00 00 00 00 00 00 00……!#@………………


您能在这方面给我一些帮助吗? 谢谢!

另一个问题是、如果我们可以使用此设计测试色条、则没有 REFCLK、REFCLK 已连接到 GND?

此致

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

     嗨、Snow、

    请检查数据表中共享的初始化序列、以及它是否与该系统中使用的序列相匹配。 0xF0 - 0xf8 是错误检查寄存器、它会在此寄存器读数中显示 ECC 错误以及同步丢失。 这些寄存器是否在开始时被清除、并在运行期间显示这些错误?

    请清除寄存器并检查这些寄存器中报告了哪些错误。

    在该系统中、由于未使用 REFCLK、因此使用 DPHY HS 时钟。 输入 DSI 时钟是否持续处于 HS 状态?  

    也可以将测试模式与 DSI 时钟一起使用作为输入、而不是使用 REFCLK。 若要通过 I2C 生成寄存器设置和启用、您可以使用此处的计算器工具: 【常见问题解答】SN65DSI86:如何对 SN65DSI86 寄存器进行编程?

    您还能否向我们提供一些有关您系统的信息、例如这是否是定制电路板以及 SoC/源如何连接到器件?

    此致、
    Ikram

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

    你好、 Ikram

    感谢您的帮助、我已经重置了  SN65DSI86 芯片、出现了这些错误。 另外、我发现一个奇怪的问题、0x12 寄存器无法设置为正确的值、因为我们使用的显示模式为 1080p、0x12 的值已使用以下命令将其设置为 0x58:

    i2cset -f -y 4 0x2C 0x12 0x58

    但在设置该寄存器后、我们再次读取它、该寄存器的值仍然是 0x4c、我不知道为什么?μ s
    我们使用 imx8mp mipi DSI、连接如下:


    我使用的测试脚本如下所示:
    ```μ s
    #======= REFCLK 频率:使用 DSI clk =======
    i2cset -f -y 4 0x2C 0x0A 0x03

    #======= DSI 模式 =======
    i2cset -f -y 4 0x2C 0x10 0x26

    #===== DSIA 时钟 =======
    i2cset -f -y 4 0x2C 0x12 0x59

    #===== DSIB 时钟 =======
    i2cset -f -y 4 0x2C 0x13 0x59

    #======= DP 数据速率 =======
    i2cset -f -y 4 0x2C 0x94 0x20

    #======= 启用 PLL =======
    i2cset -f -y 4 0x2C 0x0D 0x01

    #======= 在面板中启用 ASSR ======
    i2cset -f -y 4 0x2C 0x64 0x01
    i2ctransfe -f -y 4 W6@0x2C 0x74 0x00 0x01 0x0A 0x01 0x81
    睡眠 0.01

    #=======  在 DSI86 =========中启用增强型帧
    i2cset -f -y 4 0x2C 0x5A 0x04

    #======= DP 通道数 =======
    i2cset -f -y 4 0x2C 0x93 0x30

    #======= 开始半自动链路训练 ======
    i2cset -f -y 4 0x2C 0x96 0x0A
    睡眠 0.02

    #======= CHA 活动行长度 ======
    i2cset -f -y 4 0x2C 0x20 0x0780 w

    #======= CHB 活动行长度 =======
    i2cset -f -y 4 0x2C 0x22 0x0000 w

    #======= 垂直活动大小 =======
    i2cset -f -y 4 0x2C 0x24 0x0438

    #======= 水平脉宽 =======
    i2cset -f -y 4 0x2C 0x2C 0x002C w

    #======= 垂直脉冲宽度 =======
    i2cset -f -y 4 0x2C 0x30 0x0005 w

    #=======  HBP =====
    i2cset -f -y 4 0x2C 0x34 0x94

    #=======  VBP =====
    i2cset -f -y 4 0x2C 0x36 0x24

    #=====  HFP =====
    i2cset -f -y 4 0x2C 0x38 0x58

    #=====  VFP =====
    i2cset -f -y 4 0x2C 0x3A 0x04

    #===== DP-18BPP 禁用 ======
    i2cset -f -y 4 0x2C 0x5B 0x00

    #===== 色条启用 ======
    i2cset -f -y 4 0x2C 0x3C 0x13

    #===== 增强帧和 Vstream Enable =======
    i2cset -f -y 4 0x2C 0x5A 0x0D
    ```μ s
    此外、我在数据表中看到了说明:
    在此示例中、SN65DSI86 的时钟源为 REFCLK 引脚。 使用 REFCLK 作为时钟源时、支持任何 DSI 时钟频率。 但是、如果时钟源是 DSI A 时钟、则需要将所需的 DSI 时钟频率更改为 SN65DSI86 支持的频率。 在此模式下运行时、可以使用以下任何 DSI A 时钟频率之一:384MHz、416MHz、460.8MHz、468MHz 或 486MHz。 在大多数情况下、eDP 面板支持与理想像素时钟频率之间的某种变化。

    这是否意味着如果我们不使用 REFCLK 、DSI 时钟必须与 384MHz、416MHz、460.8MHz 、468MHz 或 486MHz 选项完全匹配?



    非常感谢!
    雪  
    此致

      

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

    嗨、Snow、感谢您分享这方面的详细信息。 请给我 2 天时间检查并回复您。

    此致、
    Ikram

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

    你好、 Ikram

    如前所述、我们将使用此桥接器连接整个 DisplayPort 监视器 、但正如所述的数据表中所述、此桥接器用于 eDP、因此当我们将此桥接器用于全 DisplayPort 监视器时是否会出现一些问题?

    雪  
    此致

     

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

    嗨、Snow、

    要将此器件与 DP 而非 eDP 配合使用、请使用之前此 E2E 中分享的设置: SN65DSI86:使用桥接器作为 DSI 转 DisplayPort(不是 eDP)

    此致、
    Ikram

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

    你好、 Ikram

    感谢您提供信息、 我看到 寄存器 0x95 中有 market_disable 位、我想知道与寄存器 0x5A 中的 ASSR_CONTROL 有何关系?

    如果我将 markched_disable 设置为 1、是否意味着桥禁用标准 DP 扰频器种子和替代扰频器种子复位 (ASSR)?

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

    嗨、Snow、

    您可以在寄存器 0x5A 上看到有一些选项。 将位 1:0 设置为 0 将选择 标准 DP 扰频器种子而不是 ASSR。 这是因为大多数 DP 监视器不支持 ASSR。

    如果您执行 E2E 主题中提到的寄存器写入和硬件设置、则应该可以使用 DP 配置来设置该器件。

    此致、
    Ikram

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

    你好、 Ikram

    好了、我在 https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/drivers/gpu/drm/bridge/ti-sn65dsi86.c 中检查了 sn65dsi86 驱动程序
    有一些与 ASSR 相关的代码:

    /*
    	 * The SN65DSI86 only supports ASSR Display Authentication method and
    	 * this method is enabled for eDP panels. An eDP panel must support this
    	 * authentication method. We need to enable this method in the eDP panel
    	 * at DisplayPort address 0x0010A prior to link training.
    	 *
    	 * As only ASSR is supported by SN65DSI86, for full DisplayPort displays
    	 * we need to disable the scrambler.
    	 */
    	if (pdata->bridge.type == DRM_MODE_CONNECTOR_eDP) {
    		drm_dp_dpcd_writeb(&pdata->aux, DP_EDP_CONFIGURATION_SET,
    				   DP_ALTERNATE_SCRAMBLER_RESET_ENABLE);
    
    		regmap_update_bits(pdata->regmap, SN_TRAINING_SETTING_REG,
    				   SCRAMBLE_DISABLE, 0);
    	} else {
    		regmap_update_bits(pdata->regmap, SN_TRAINING_SETTING_REG,
    				   SCRAMBLE_DISABLE, SCRAMBLE_DISABLE);
    	}


    我不明白为什么它会禁用完整 DisplayPort 显示的扰频功能、那么我们不应该使用标准 DP  扰频器种子来完整 DisplayPort 显示吗?

    此致、
    Ikram

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

    嗨、Snow、

    由于 DSI86 仅支持 ASSR、因此 应禁用扰频器来使用 DisplayPort 显示器。

    您在使用这些设置时是否遇到任何问题?

    此致、
    Ikram

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

    你好、 Ikram

    是的、我发现使用此驱动程序测试 DisplayPort 显示器时不稳定。  
    我的意思是、如果我们使用 DisplayPort、不应该启用 扰频器并将 0x5A 的 1:0 位设置为 0、以便桥接  器将选择标准 DP 扰频器种子而不是 ASSR。 但是、驱动程序会禁用 扰频器、使其不会选择 ASSR 并且也不使用  标准 DP 扰频器种子、这是否是正确的解决方案?

    此致、

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

    嗨、Snow、

    在这种情况下、您可以尝试将 0x95 设置为启用扰频、将 0x5A 设置为标准 DP 扰频器。 请告诉我们这是否纠正了问题。

    未启用扰频器时、显示是否正确或是否存在闪烁等问题? 出现问题时 、还请检查是否报告了任何错误。

    此致、
    Ikram

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

    你好、 Ikram

    很抱歉,由于一些繁忙的业务延迟回复,我们无法测试 DP 模式,因为硬件限制,我们需要更改硬件布局来解决这个问题。

    BTW、数据表中提供了说明:
    ASSR_CONTROL。该字段控制使用的扰频器种子。 标准 DP 扰频器种子值为 0xFFFF。 ASSR 种子值为 0xFFFF。 如果在 EN 的上升沿对 TEST2 引脚进行高电平采样并且设置第 7 页中偏移 0x16 的位 0、则该字段为 R/W。 否则、此字段为只读。 00 =标准 DP 扰频器种子 01 =备用扰频器种子复位(默认)。 10 =保留。 11 =保留。

    为什么 ASSR 种子 值和标准 DP 扰频器种子值是相同的值 0xFFFF?

    此致、


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

    嗨、Snow、  

    我将检查扰频器种子的此值、然后通过星期二更新返回给您。

    此致、
    Ikram

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

    你好、 Ikram

    您是否有关于 扰频器种子值的任何更新? 谢谢

    此致、

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

    嗨、Snow、  

    我仍在查找有关扰频器的文档。 我将对此进行更新。

    使用标准 DP 扰频器的当前设置是否存在任何问题? 是否已确认工作正常?

    此致、
    Ikram