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-Q1:DP 链路训练失败

Guru**** 2511985 points
Other Parts Discussed in Thread: SN65DSI86

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1367076/sn65dsi86-q1-dp-link-training-fails

器件型号:SN65DSI86-Q1
主题中讨论的其他器件:SN65DSI86TEST2

工具与软件:

您好、TI 团队、

我们 使用 SN65DSI86来显示色条图形、但仅显示黑色。 寄存器0x96的值为0x00、寄存器0xF8的值为0x12。 链路训练失败。

我们使用的 DP 通道数为4、DP 数据速率为1.62Gbps。  

我们想更改"Link  Training Look-Up-Table"默认值、您可以提供相同的建议 、说明合适的值是什么。  

此致

艾米莉

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

    艾米莉

    DSI86-Q1数据表中的表11列出了预加重默认设置、  

    您可以修改 DP 链路训练查找表中的值、但在大多数情况下、默认值应通过链路训练。 如果需要更改、默认值必须取决于 eDP/DP 信号测量结果。  

    您能否共享原理图、eDP/DP 分辨率 EDID 和 DSI86-Q1寄存器编程值?

    谢谢

    大卫

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

    您好, David,

    我们在 SN65DSI86和显示器之间使用的 FPC 为单层、而不是差分接线。 这是导致链路训练失败的原因吗?

     原理图、eDP/DP 分辨率 EDID 和 DSI86-Q1寄存器编程值如下所示。

    我们 通过4.7k 电阻将 TEST2引脚拉至1.8V。

    ADD = 0x0A;//ref clk 27M Hz
    regmap_write (pdata->regmap、add、0x06);
    regmap_read (pdata->regmap、add、&read_val);
    drm_error ("IIC 回读添加%x val %x\n"、添加、read_val);

    ADD = 0x5C;//禁用 HDP
    regmap_write (pdata->regmap、add、0x00);
    DRM_ERROR ("IIC 设置添加%x val 00\n"、添加);
    regmap_read (pdata->regmap、add、&read_val);
    drm_error ("IIC 回读添加%x val %x\n"、添加、read_val);

    ADD = 0xE9;//启用 FAIL 整数
    regmap_write (pdata->regmap、add、0xFF);
    regmap_read (pdata->regmap、add、&read_val);
    drm_error ("IIC 回读添加%x val %x\n"、添加、read_val);

    ADD = 0x10;// 4个 DSI 通道
    regmap_write (pdata->regmap、add、0x26);
    regmap_read (pdata->regmap、add、&read_val);
    drm_error ("IIC 回读添加%x val %x\n"、添加、read_val);

    ADD = 0x12;// DSI CLOCK = freq 221Mhz
    regmap_write (pdata->regmap、add、0x2C);
    regmap_read (pdata->regmap、add、&read_val);
    drm_error ("IIC 回读添加%x val %x\n"、添加、read_val);


    ADD = 0x59;//aling 为3210
    regmap_write (pdata->regmap、add、0x1B);
    regmap_read (pdata->regmap、add、&read_val);
    drm_error ("IIC 回读添加%x val %x\n"、添加、read_val);

    regmap_write (pdata->regmap、0xff、0x07);
    regmap_write (pdata->regmap、0x16、0x01);
    regmap_write (pdata->regmap、0xff、0x00);
    ADD = 0x5A;//F4 POLOR 增强帧和 ASSR
    regmap_write (pdata->regmap、add、0xF4);
    regmap_read (pdata->regmap、add、&read_val);
    drm_error ("IIC 回读添加%x val %x\n"、添加、read_val);

    添加= 0x93;//4 DP 通道、无 SCC
    regmap_write (pdata->regmap、add、0x34);
    regmap_read (pdata->regmap、add、&read_val);
    drm_error ("IIC 回读添加%x val %x\n"、添加、read_val);

    添加= 0x94;//HBR 1.62G bps
    regmap_write (pdata->regmap、add、0x20);
    regmap_read (pdata->regmap、add、&read_val);
    drm_error ("IIC 回读添加%x val %x\n"、添加、read_val);

    ADD = 0x0d;//PLL 启用
    regmap_write (pdata->regmap、add、0x01);
    msleep(10);
    regmap_read (pdata->regmap、add、&read_val);
    drm_error ("IIC 回读添加%x val %x\n"、添加、read_val);
    msleep(10);

    ADD = 0x0A;//训练模式应为0x01
    regmap_read (pdata->regmap、add、&read_val);
    drm_error ("IIC 回读添加%x val %x\n"、添加、read_val);

    添加= 0x95;//
    regmap_write (pdata->regmap、add、0x00);
    regmap_read (pdata->regmap、add、&read_val);
    drm_error ("IIC 回读添加%x val %x\n"、添加、read_val);

    ADD = 0x96;//自动训练
    regmap_write (pdata->regmap、add、0x02);
    msleep(5);
    regmap_write (pdata->regmap、add、0x0A);
    msleep(200 );
    regmap_read (pdata->regmap、add、&read_val);
    drm_error ("IIC 回读添加%x val %x\n"、添加、read_val);
    msleep(10);

    /*配置视频参数*/
    TI_SN_BRIDGE_SET_VIDEO_TIMING (pdata);

    ADD = 0x5B;// 24bpp
    regmap_write (pdata->regmap、add、0x00);
    regmap_read (pdata->regmap、add、&read_val);
    drm_error ("IIC 回读添加%x val %x\n"、添加、read_val);

    添加= 0x3C;//色条
    regmap_write (pdata->regmap、add、0x10);
    regmap_read (pdata->regmap、add、&read_val);
    drm_error ("IIC 回读添加%x val %x\n"、添加、read_val);

    msleep(10);
    ADD = 0x96;//训练模式应为0x01
    regmap_read (pdata->regmap、add、&read_val);
    drm_error ("IIC 回读添加%x val %x\n"、添加、read_val);

    添加= 0x5A;// cn
    regmap_write (pdata->regmap、add、0xFC);
    regmap_read (pdata->regmap、add、&read_val);
    drm_error ("IIC 回读添加%x val %x\n"、添加、read_val);

    msleep(10);

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

    您好!

    您是否已使用 DSI86电子表格计算其寄存器编程值?  对于 DSI86配置、请使用此 e2e 博文中的电子表格、 https://e2e.ti.com/support/interface-group/interface/f/interface-forum/945404/faq-sn65dsi86-how-do-i-programming-the-sn65dsi86-registers

    查看 EDID、垂直前沿值(EDID 寄存器地址0x40和0x41)对于 DSI86寄存器空间来说似乎太大、这意味着 DSI86可能无法支持此特定面板。  

    我随附了带和不带 ASSR 示例的色条、您能看一下其中任何一个示例是否有效吗?

    3513.2DP_4DSI_RBR_800x600_DPR.zip Color_Bar

    2DP_4DSI_RBR_800x600_DSP Color_Bar_ASSR.zip

    谢谢

    大卫

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

    您好, David,

    是的、我们已经使用  DSI86电子表格计算了它的寄存器编程值。

    下表是我们从面板 EDID 获得的 eDP/DP 面板时序。   

    73、51 DCLK
    1280 H 有效
    117 H 消隐
    720 V 有效
    157 V 消隐
    53 水平前沿
    32 水平同步宽度
    32 水平后沿
    63 V 前沿
    10 垂直同步宽度
    84 V 后沿

    SN65DSI86 寄存器设置与 EDID 相同。

    [6.23385][DRM:ti_SN_BRIDGE_ENABLE]* ERROR* IIC 回读添加20 val 0
    [6.2334316][DRM:ti_SN_BRIDGE_ENABLE]* ERROR* IIC 回读添加21 val 5
    [6.234334][DRM:ti_SN_BRIDGE_ENABLE]* ERROR*肖恩桥接设置视频 hdisplay 1280
    [6.237625][DRM:ti_SN_BRIDGE_ENABLE]* ERROR* IIC 回读添加24 val d0
    [6.238119][DRM:ti_SN_BRIDGE_ENABLE]* ERROR* IIC 回读添加25 val 2
    [6.238141][DRM:ti_SN_BRIDGE_ENABLE]* ERROR*肖恩桥接设置视频 vdisplay 720
    [6.238906][DRM:ti_SN_BRIDGE_ENABLE]* ERROR* IIC 回读添加2c val 20
    [6.238924][DRM:ti_SN_BRIDGE_ENABLE]* ERROR*肖恩桥接设置视频结束启动32
    [6.239681][DRM:ti_SN_BRIDGE_ENABLE]* ERROR* IIC 回读添加2D val 80
    [6.239701][DRM:ti_SN_BRIDGE_ENABLE]*错误*肖恩桥接设置视频 HSYNC_POLARITY 128
    [ 6.240460][DRM:ti_SN_BRIDGE_ENABLE]* ERROR* IIC 读回添加30 val a
    [6.240481][DRM:ti_SN_BRIDGE_ENABLE]*错误*肖恩桥接设置视频同步结束-开始10
    [6.242613][DRM:ti_SN_BRIDGE_ENABLE]* ERROR* IIC 读回添加31 val 80
    [6.242641][DRM:ti_SN_BRIDGE_ENABLE]* ERROR*肖恩桥接设置视频 vsync_POLARITY 128
    [6.243402][DRM:ti_SN_BRIDGE_ENABLE]* ERROR* IIC 回读添加34 val 20
    [6.243419][DRM:ti_SN_BRIDGE_ENABLE]*错误*肖恩桥接设置视频总计-结束32
    [6.244174][DRM:ti_SN_BRIDGE_ENABLE]* ERROR* IIC 回读添加36 val 54
    [6.244193][DRM:ti_SN_BRIDGE_ENABLE]*错误*肖恩桥接设置视频 vtotal -结束84
    [6.245838][DRM:ti_SN_BRIDGE_ENABLE]* ERROR* IIC 回读添加38 val 35
    [6.245863][DRM:ti_SN_BRIDGE_ENABLE]* ERROR*肖恩桥接设置视频 hstart - hdisplay 53
    [6.247003][DRM:ti_SN_BRIDGE_ENABLE]* ERROR* IIC 回读添加3a val 3f
    [6.247023][DRM:ti_SN_BRIDGE_ENABLE]* ERROR*肖恩桥接设置视频 vstart - vdisplay 63

    此致

    艾米莉

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

    您好, David,

    对于 DP 显示、我们 通过一个4.7K 电阻将 TEST2引脚拉至1.8V、并 在 AUX_P 上添加1MΩ Ω 电阻器、在 AUX_N 上添加1MΩ Ω 电阻器。 HPD 是选项、需要禁用功能。 是这样吗?

    对于 eDP 显示、TEST2引脚接地、AUX_P 上没有上拉电阻器、AUX_N 上没有下拉电阻器。 HPD 是必要的。 是这样吗?

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

    您好!

    HPD I/O 单元具有一个内部60-kΩ 下拉电阻器。 HPD 引脚需要一个1%串联外部51-kΩ 电阻、如图6所示。 根据 VESA 嵌入式 DisplayPort 标准、对于 DisplayPort 发送器、可以选择使用 HPD。 如果系统设计人员选择不使用 HPD、则软件必须通过设置 HPD_DISABLE 位来禁用 HPD。

    对于 DP AUX、您需要在 AUXP 具有100k 下拉电阻接地、需要在 AUXN 具有100k 上拉电阻连接 DP_PWR。  

    DP 不支持 ASSR、因此您要通过10k 电阻器将 TEST2引脚拉至1.8V、并使用 寄存器0x5A 中的标准 DP 扰频器种子

    对于 eDP、AUX 上的上拉/下拉是可选的、具体取决于 eDP 受电方要求。 如果 eDP 支持 ASSR、则使用 替代扰码器种子复位  

    您是否能够使用我提供的两个示例对 DSI86进行编程、看看它们是否起作用?

    谢谢

    大卫

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

    尊敬的 David:

    对于 DP 面板、显示供应商建议我们  在 AUX_P 上添加一个1MΩ Ω 上拉电阻器、在 AUX_N 上添加1MΩ Ω 下拉电阻器、这与 TI 的要求相冲突。 AUX 通信成功、但链路训练失败。 我们不知道链路训练为什么失败。

    当将面板配置更改为 eDP 接口,Ω 并使 TEST2保持接地、并且 AUX 通道上没有上拉和下拉电阻器时、链路训练成功。 由于 eDP 面板不支持 ASSR、因此无法显示。 我们正在等待可以支持供应商 ASSR 的新配置面板。

    我没有尝试您给我的示例、因为某些寄存器设置与我们的设计不同。 例如、通道配置和极性需要更改。

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

    您好!

    大多数 DP 监视器不 支持 ASSR。 在这种情况下、需要通过设置 ASSR_control 读取/写入来禁用 DSI86的 ASSR、而不是只读。 实现 ASSR_CONTROL 读取/写入的第一步是确保在 EN 引脚的上升沿对 TEST2引脚进行高电平采样。 建议通过一个1k 至10k 电阻器将 TEST2引脚拉至1.8V。 一旦 TEST2为高电平、必须执行以下步骤:

    1.将0x07写入寄存器0xFF。 此时将选择"Page 7"。
    2.将0x01写入寄存器0x16。 这将使 ASSR_control 成为读取/写入。
    3.将0x00写入寄存器0xFF。 这将选择"Page 0"。
    4.将0写入寄存器0x5A 的1:0位。 这会从 ASSR 更改为标准 DP。

    您是否完成了第1步到第4步?

    谢谢

    大卫

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

    您好, David,

    是的、TEST2已通过4.7kΩ 电阻器上拉至1.8V、并且寄存器已配置为 FLW、但 DP 训练失败。

    regmap_write (pdata->regmap、0xff、0x07);
    regmap_write (pdata->regmap、0x16、0x01);
    regmap_write (pdata->regmap、0xff、0x00);
    ADD = 0x5A;//F4 POLOR 增强帧和 ASSR
    regmap_write (pdata->regmap、add、0xF4);

    此致

    艾米莉

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

    艾米莉

    上电 DSI86-Q1后、您将0xFF 写入寄存器0xf8以清除它、在链路训练未能看到报告了哪个错误后、是否可以读取寄存器0xf8?

    是否可以将您使用的 FPC 从单层更改为差分布线?

    谢谢

    大卫

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

    尊敬的 David:

    当 DP 链路训练失败时、0xf8的值为0x12。 当我们将 FPC 从单层更改为差分接线时、DP 链路训练仍然失败。 n‘t 没有 找到 根本原因。

    我们现在有供应商提供的 eDP 面板可以支持 ASSR、现在 它可以正常工作了。

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

    艾米莉

    对于非 ASSR 面板、如果您首先将0x0010 = TPS1写入寄存器0x96、然后写入0x1010 =半自动链路训练、这是否会解决链路训练问题? 或者、由于 ASSR 面板正在进行链路训练、我们是否正在考虑解决该问题?

    谢谢

    大卫