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.

[参考译文] SN65DSI83:使用 DSI83时 LVDS 屏幕损坏

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1231429/sn65dsi83-lvds-screen-corrupted-when-using-the-dsi83

器件型号:SN65DSI83

大家好!

 

我们正在开发基于 i.MX8M-MINI Android 11的定制器件、该器件使用 SN65DSI83 MIPI DSI 转 LVDS 桥接器。

一般而言、我们的设备工作正常、但是我们注意到一个很少见的问题、需要多次打开/关闭设备屏幕才能发生。 如您所见 附加的 f1.png 图像、当问题发生时、屏幕上半部分损坏、同时屏幕下半部分仍正常工作。

e2e.ti.com/.../TI_2D00_images.zip

通常可以通过锁定和解锁器件屏幕来解决此问题、以便重新初始化 LCD、但我们需要了解相应的根本原因。

我们已根据显示屏数据表在 Linux LCD 驱动器上尝试了许多显示时序、并在 DSI83驱动器上设置了额外延迟、但没有成功。

我们注意到、发生该问题时、如果我们从 DSI83 (0x3C = 0x10)发送测试模式、则干扰不可见、 但当返回到正常视频流(0x3C = 0x00)时、屏幕问题再次出现、这使我们认为问题出在 i.MX CPU 的 MIPI DSI 部分、 但是、我们想让您从 DSI83的角度了解您是否可以为我们提供任何调试步骤。

 

非常感谢您提出任何建议、

谢谢。此致、

埃斯特班五世

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

    埃斯特班五世

    在打开/关闭器件屏幕时、是否正在对 MIPI SOC 或 DSI83进行下电上电?  

    如果通过写入0xFF 清除寄存器0xE5、然后在发生此特定问题时再次读取寄存器、您是否看到寄存器0xE5中的任何位已设置好?  

    如果 在发生该问题时设置了 SOFT_RESET 位、这也能解决问题吗?

    谢谢

    大卫

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

    David、您好!

     

    感谢您的快速回复、关于您的问题、请在下面找到我的评论。

     

    1.-关闭我们的器件屏幕时、Linux/Android 关闭 MIPI DSI 部分、从 DSI83角度、OS 将 EN 信号设为低电平、然后清除 RESET (0x9寄存器)、并禁用 PLL (0xD 寄存器)。

     

    2.-我们使用的驱动程序版本稍有不同。

    https://elixir.bootlin.com/linux/latest/source/drivers/gpu/drm/bridge/ti-sn65dsi83.c#L487

    目前我注释出了488和489行、这些行在初始化后清除了错误。

    我重复了这个问题的两次、第一次读取0xE5=0x89、第二次读取0xE5=0x49、但是从下面可以看出、手动清除错误寄存器时、没有错误仍然存在。

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    #First time.
    ams_trex_8mm:/ # i2cget -y -f 0x3 0x2d 0xe5
    0x89
    ams_trex_8mm:/ # i2cset -y -f 0x3 0x2d 0xe5 0xFF b
    ams_trex_8mm:/ # i2cget -y -f 0x3 0x2d 0xe5
    0x00
    #Second time.
    ams_trex_8mm:/ # i2cget -y -f 0x3 0x2d 0xe5
    0x49
    ams_trex_8mm:/ # i2cset -y -f 0x3 0x2d 0xe5 0xFF b
    ams_trex_8mm:/ # i2cget -y -f 0x3 0x2d 0xe5
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
     

    3.-如果我在运行时设置软重置,用下面的命令,屏幕会闪烁一点,然后返回正常操作,但当出现问题时,执行命令前后视觉上的不一致之处都存在。

     

    Fullscreen
    1
    2
    3
    4
    5
    ams_trex_8mm:/ # i2cget -y -f 0x3 0x2d 0x9
    0x00
    ams_trex_8mm:/ # i2cset -y -f 0x3 0x2d 0x9 0x1 b
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     

    期待您的评论、

    谢谢。此致、

    埃斯特班五世

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

    尊敬的 Esteban:

    您是否按照数据表中的表7-2中的初始化顺序进行了操作? 当 EN 引脚从低电平变为高电平时、您是否可以使用示波器确保 CLK 处于 HS 状态、数据处于 LP11状态?

    谢谢 Allison

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

    您好 Allison:

     

    很抱歉这么晚才回复、我们正在审核您关于测量的建议、代码似乎遵循了正确的顺序、 但我们需要仔细检查示波器上的信号、因为我们的 i.MX8器件是带有外壳的平板电脑、测量请求的信号相当困难、但我们正在努力解决。

     

    我们会向您发布我们的调查结果、

    此致、

    埃斯特班五世

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

    尊敬的 Allison 和 David

     

    我们获得了所请求的测量值,请查看以下所附每张图片的说明。

    1.- NOKStart.bmp: 显示了当 EN 引脚从低电平变为高电平时的 CLK、DATA 和 EN 信号、在这种情况下、发现了 LCD 损坏问题。

    2.- nok01.bmp: 显示了视频传输期间的 CLK、数据和 EN 信号、在这种情况下、观察到 LCD 损坏问题。

    3.- OKStart.bmp: 显示了当 EN 引脚从低电平变为高电平时的 CLK、DATA 和 EN 信号、在这种情况下、未发现 LCD 损坏问题。

    4.- OK01.bmp: 显示了视频传输期间的 CLK、数据和 EN 信号、在这种情况下、未发现 LCD 损坏问题。

     e2e.ti.com/.../InitSequence.zip

    您能否告诉我们、所涉及的信号在初始化序列方面是否按预期行为?

    期待您的评论、

    谢谢。此致、

    埃斯特班五世

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

    尊敬的 Esteban:

    在 EN 引脚从低电平切换到高电平之前、DSI 数据通道应处于 LP11状态、如下所示:

    在示波器屏幕截图中、EN 引脚在数据处于 LP11状态之前开始斜升。 您还可以在 EN 引脚上添加一个外部电容器以延迟斜坡。

    最好的,Allison

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

    您好 Allison:

     

    感谢您的意见和建议、需要指出的是、目前我们的硬件通过电容器控制 DSI83 EN 信号、如 图8 信息。

     

    我们之前共享的测量是通过对 EN 信号进行硬件返工完成的、以便由 GPIO 控制、如所示 图9

    但是、首先我们想了解 图8 是有效的设置以及在这种情况下的正确初始化顺序、因为在待机(即锁定和解锁我们的平板电脑显示屏)情况下、它不会延迟、因为它在上电后始终处于高电平。

     

    期待您的评论、

    谢谢。此致、

    埃斯特班五世

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

    尊敬的 Esteban:

    两种配置都是有效设置、它们都需要遵循我之前提供的相同初始化序列。

    在锁定/解锁平板电脑显示屏期间、Vcc 是否保持高电平? 如果是、DSI83仍需要复位、这可以通过按照相同的初始化序列来完成。 如果在 Vcc 为高电平时复位 DSI83、EN 引脚必须保持低电平至少10ms、然后才能置为高电平、以确保器件正确复位。 当器件处于复位状态时、DSI CLK 通道必须处于 HS 模式、并且必须将 DSI 数据通道驱动至 LP11、然后 EN 引脚才会置位为高电平。

    最好的,Allison

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

    您好 Allison:

     

    感谢您的答复。 关于您的问题、请在下面查找我的评论。

    是的、我们测量了 VCC、它在给器件上电后始终处于高电平。

    2.-我们正在处理相应的初始化序列、目前我们正在通过 GPIO 控制 EN 信号、请找到下图所示的相应初始化序列。

     

    我在前面展示的测量中看到、DSI 时钟和 DSI 数据信号处于 LP11状态2.28ms、但之后它们进入 HS、这在 EN 信号从低电平变为高电平之前发生、我的理解是否正确?

     

    期待您的评论、

    谢谢。此致、

    埃斯特班五世

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

    尊敬的 Esteban:

    感谢您的评论。 请在下方查看我的回答。

    1.感谢您的观看。 再次、请确保在平板电脑锁定/解锁时重置 DSI83。

     时钟和数据通道是单端测量还是差动测量? 如果是差分电压、则 HS 模式峰峰值电压最小值为140mV、标称值为200mV、最大值为270mV。 如果它们是单端的、则  HS 模式峰峰值电压为最小值280mV、标称值400mV、最大值540mV。 LP11模式在1.2V 时保持恒定的高电平。 您能否确认这是否是您所读的内容? DSI CLK 在上电后必须处于 HS 模式、数据通道必须保持 LP11模式、同时 EN 引脚从低电平斜升至高电平。

    最好的,Allison

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

    您好 Allison:

     

    感谢您的答复、我们会测量请求的信号、请查看此帖子随附的结果。

    e2e.ti.com/.../Approach-1-_2800_12.07.2023_2900_.pdfe2e.ti.com/.../Approach-3-_2800_10.07.2023_2900_.pdf

    根据我们的了解、在 DSI83 EN 引脚生效之前时钟处于 HS 状态、我们使用的以下驱动器版本略有不同、实际上是 方法#1 方法#3 PDF 文件上的名称是指我们尝试在正确的时间将 EN 信号置位的两种不同源代码修改。

    https://elixir.bootlin.com/linux/v5.15/source/drivers/gpu/drm/bridge/ti-sn65dsi83.c

     

    1.-您是否使用过前面显示的内核驱动程序?

    2.-您是否针对此驱动器实施了任何权变措施来实现预期的上电序列?

    3.-上电顺序是否会影响显示的图像、从而导致偶发问题? (需要注意的是、如果我们从 DSI83发送测试图形、干扰不可见、但当 IC 恢复正常运行时、问题再次出现)。

     

    期待您的评论、

    谢谢。此致、

    Esteban V:

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

    尊敬的 Esteban:

    我们使用 I2C 来 初始化 DSI83、因此我们没有 特定的 DSI 驱动程序。  是否有办法可以尝试使用 I2C 控制器初始化器件?  如果未遵循初始化序列、我们无法保证器件正常工作。

    话虽如此、我们在此有一个旧的参考代码: https://e2e.ti.com/support/interface/f/138/p/549283/2006135#2006135。它可能会实现较旧版本的初始化序列。 您仍需要遵循数据表中初始化序列的最新版本。  

    最好的,Allison

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

    您好 Allison:

     

    感谢您的意见和参考代码、在测试我们最新的软件修改时、上电序列由如下所示的测量结果决定。

     

    正如我所看到的、当 DSI CLK 处于 HS 模式且 DSI 数据通道处于 LP-11模式时、EN 信号设置为高电平、我认为这涵盖了预期的上电序列、电压似乎在预期范围内。

    不过、仍然会出现干扰(即屏幕上显示的图像有一半偶尔损坏)、您是否对我们从 SN65DSI83的角度进行测试有任何其他建议?

     

    期待您的评论、

    谢谢。此致、

    埃斯特班五世

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

    尊敬的 Esteban:  

    使用差动时钟测量时、HS 模式的峰峰值电压要求 最小值为140mV、标称值为200mV、最大值为270mV。 您是否可以验证示波器上的时钟读数是差分读数? 所示的峰峰值电压似乎为单端电压。 此外、时钟必须在 EN 引脚开始斜升至高电平之前至少处于 HS 模式10ms。

    最好的,Allison