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:UBoot 显示驱动程序

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

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1128416/sn65dsi83-uboot-display-dirver

器件型号:SN65DSI83

大家好、

我使用的是 SN65DSI83 MIPI 转 LVDS 转换器、该转换器连接到 MIPI 端的 iMX8M Mini SoC 和 LVDS 端的10.1英寸显示屏

它在内核5.10中起作用、我正在为同一个开发 Uboot 驱动程序、我采用了 I2C 转储形式的内核、并在 Uboot 中进行了相同的寄存器配置。 PLL_EN 和 PLL_EN_STAT 存在矛盾、即0x0D 和0x0A 寄存器。 PLL_EN 值为1、其中 PLL_EN_STAT 为0

PFB 图像:

内核 I2C 转储:

UBoot I2C 转储:

   

PLL_EN_STAT 寄存器说明。

PLL_EN 寄存器说明:

0x0D 位为1、即 PLL 已启用、但我们可以从 PLL_EN_STAT 看到它未启用。

 

我通过在0x3c 寄存器中写入0x10来启用测试模式。 我可以在显示屏的左侧看到一条垂直线。  

在显示测试图案时、请在此处帮助我们了解问题。

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

    您好、Kaushal、

    首先、请确保根据显示屏的数据表正确设置寄存器。  为方便起见、我提供了以下链接:  

    逐步配置指南: https://training.ti.com/configuring-sn65dsi8x-single-channel-dsi-single-link-lvds-operation

    寄存器配置工具: https://www.ti.com/tool/DSI-TUNER

    第二、请参阅 DSI83数据表的第7.4.2节、以确保您遵循此应用的正确初始化序列。

    最后、再次尝试使用测试模式函数、看看是否会出现相同的结果。

    谢谢、

    扎赫

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

    你好、Zach、

    内核中的 I2C 寄存器配置显示正常、但同一 I2C 配置在 Uboot 中不工作。

    我遵循了数据表中提供的相同电源序列。 PFB 图像。

    它们只有一个 I2C 寄存器配置在内核中是不同的0x0A、其值为0x85、在 uboot 中为0x05

    0x85十六进制= 10000101和0x05 = 00000101、我们可以从0x0A 寄存器表中看到、第7位是只读位。

    它是 PLL_EN 状态位、我们可以看到0x0D 寄存器为0x01、该位已启用。

    请告诉我们这种矛盾的原因。

    此致、

    Kaushal Verma

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

    您好、Kaushal、

    这个问题似乎源自工作内核与 Uboot 实现的差异。  

    我建议确定 Uboot 实现与工作内核的区别。

    谢谢、

    扎赫  

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

    你好、Zach、

    请确认、我们需要 MIPI 信号来创建测试图案。

    根据我的知识、我们不需要任何 MIPI 数据即可打印测试图形、只需将0x3C 寄存器写入0x10即可。

    获得测试图案后、我将进一步挖掘、以将工作中的 SN65DSI83桥接器连接到 MIPI 数据、从而打印初始屏幕。

    注意:我进行了更改、将显示时序参数解析为 mipi_DSI 驱动器。

    此致、

    Kaushal Verma

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

    Kaushal、

    测试模式不需要 MIPI DSI 数据。 (请参阅 数据表的7.3.3 LVDS 模式生成)

    假设您使用的显示屏与 DSI83器件兼容、如果您根据显示屏的数据表正确设置了器件寄存器、则应获得良好的测试图案。

    谢谢、

    扎赫

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

    你好、Zach、

    除了0x0A 寄存器、SN65DSI83的 I2C 寄存器配置在工作内核和 Uboot 实现中是相同的。  

    请参阅上述邮件了解详细信息。

    我的案例中、"0x0D 寄存器和0x0A 寄存器的第7位代表0x0D 寄存器的状态"、您能不能提出相矛盾的原因吗?

    此致、

    Kaushal Verma

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

    您好、Kaushal、

    问题似乎在于 Uboot 与 DSI83的连接能力。  

    我建议查看 Uboot 文档、以了解它与器件的连接 方式与工作内核的不同。

    谢谢、

    扎赫

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

    Zach、

    已理解、我发现了内核和 Uboot 之间的差异。 当我启用0x0D 寄存器时、它会自动更新内核中的0x0A 寄存器。 但它在 Uboot 中没有变化。

    您能不能再看看这个。

    此致、

    Kaushal Verma

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

    Kaushal、

    我不确定 Uboot 的实现方式以及为什么不允许更新0x0A。

    我建议在您的应用中使用有效的内核、而不是 Uboot。

    谢谢、

    扎赫

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

    Zach、

    我需要开发 uboot 显示驱动程序以在显示屏上显示闪屏。  

    当我打开器件时、我看不到13秒内核启动时间的任何情况。  

    这就是我开发驱动程序的原因。

    此致、

    Kaushal Verma

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

    Kaushal

    您是否使用 MIPI DSI 或参考时钟作为时钟源? 您能否探测时钟和 DSI83 EN 引脚、以确保在 EN 从低电平变为高电平之前时钟已启动并运行?

    谢谢

    David

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 David:
    我们使用 MIPI DSI 时钟来驱动 SN65DSI83。
    我在内核启动之前测量了 DSI 时钟、即在 Uboot 中测量的频率为1.049GHz。 但在内核中、它是228MHz。
    PFB 波形:
    尽管我在显示时序参数和 SN65DSI83驱动器中添加了228MHz 时钟频率。
    您能不能建议、MIPI DSI 时钟频率存在这种巨大差异的原因是什么。
    此致、
    Kaushal Verma
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Kaushal

    您能否与 MIPI 源供应商核实 MIPI 时钟是如何配置的?

    谢谢

    David

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

    Kaushal

    在这方面、我还有什么可以帮助您的吗?  

    如果没有、我们可以关闭此 TT。

    谢谢、

    扎赫

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

    你好、Zach、

    请告诉我将 SN65DSI83 MIPI 置于 LP11状态的 LVDS 转换器的过程。

    请告诉我验证天气是否处于 LP11模式或正常模式的过程。

    谢谢、

    Kaushal Verma

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

    您好、Kaushal、

    当 MIPI 输入 被驱动至 LP11时、这意味着所有 MIPI DSI 差分对的 P 和 N 对都被驱动至单端高电平~1.2V。

    这可以通过示波器探测 MIPI DSI 的 P 和 N 对来验证。

    谢谢、
    扎赫

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

    你好、Zach、

    了解了您对如何在硬件方面将 SN65DSI83置于 LP11模式的看法、但您能否帮助我了解如何使用软件将其置于 LP11模式。 以及如何从 LP11模式更改为正常模式。

    我们现在没有示波器、除了使用示波器之外、还有任何方法可以验证模式。

    谢谢、

    Kaushal Verma

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

    Kaushal、

    LP11模式由 DSI 信号源使用的模式驱动、而不是由 DSI84器件驱动。

    以下网站可帮助您了解 LP11和 HS 模式之间的转换过程: https://circuitcellar.com/resources/quickbits/mipi-display-serial-interface/

    谢谢、
    扎赫

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

    您好!

    你还有其他问题吗?

    如果没有、请单击"此问题已解决"按钮以关闭此主题。

    谢谢、

    扎赫

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

    你好、Zach、

    感谢您的支持。

    我们在 MIPI DSI 中获得1049MHz、我使用时钟分频器14使其在 LVDS 中约为76MHz、并且可以在具有开发的驱动程序的 Uboot 中看到 LVDS 中的正确测试模式。

    当我禁用测试模式时、我可以看到波动的闪屏。

    根据我的观察结果、问题是 SN65DSI83的0x12寄存器。

    CHA_DSI_CLK_RANGE
    该域指定的 DSI 时钟频率范围、单位为5MHz
    DSI 通道 A 时钟
    0x00到0x07–保留
    0x08–≤μ s 频率< 45MHz
    0x09–45≤频率< 50MHz
    …μ A
    0x63–495≤频率< 500MHz
    0x64–500 MHz
    0x65到0xFF–保留

    我们只能使用高达500MHz 的 DSI 时钟、在本例中为1049MHz。

    请在此处提供您的输入并帮助我调试此问题。

    此致、

    Kaushal Verma  

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

    您好、Kaushal、

    您是否已向 MIPI 源供应商咨询、以了解如何按照上述建议配置 MIPI 时钟?

    谢谢、

    扎赫

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

    你(们)好、扎赫

    我使用 NXP 进行了检查、但我没有获得有关如何更改 Uboot MIPI DSI 时钟的任何支持。 默认情况下为1049MHz、因此我将设置0x0B 寄存器 DSI_CLK_DIVIDER 14以获得约76MHz 的时钟、但初始屏幕会波动、因为我无法将 CHA_DSI_CLK_RANGE 设置 为超过500MHz。

    请在 uboot 中帮助我将 MIPI DSI 时钟设置为低于500MHz、或者如果您有任何权变措施来将  CHA_DSI_CLK_RANGE 设置为1049MHz。

    感谢你的帮助。

    此致、

    Kaushal Verma

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

    Kaushal、

    符合规格的 DSI 时钟速率需要低于500MHz。  如果 MIPI 源提供的电压高于使用 Uboot 的电压、则 DSI 器件无法支持该电压。

    但是、您可以尝试使用 REFCLK 而不是 DSI CLK。

    谢谢、

    扎赫