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.

[参考译文] DS90UH941AS-Q1:所需协助:带 Raspberry Pi CM4的 DS90UH941AS-Q1 + DS90UH948 (Debian Bookworm)

Guru**** 2445440 points
Other Parts Discussed in Thread: DS90UB941AS-Q1, DS90UH941AS-Q1, DS90UB926QSEVB, ALP

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1487877/ds90uh941as-q1evm-assistance-required-ds90uh941as-ds90uh948-with-raspberry-pi-cm4-debian-bookworm

器件型号:DS90UH941AS-Q1 Q1EVM
主题中讨论的其他器件: DS90UB941AS-Q1、 DS90UB926QSEVBALP

工具/软件:

尊敬的 TI 支持团队:

我正在使用 DS90UH941AS-Q1串行器 DS90UH948解串器 以驱动 800x480 RGB 显示器 。 我能够成功显示中的测试图形 Analog LaunchPad\ 在连接到的 RGB 显示屏上 DS90UH948

但是、当我连接时 Raspberry Pi CM4的 DSI-1输出 (正在运行 Debian Bookworm、Linux 内核6.6 )添加到 DS90UH941AS-Q1 则表示 RGB 显示上没有看到任何视频。 但未显示实际的视频输出。

系统详细信息:

  • 串行器: DS90UH941AS-Q1 Q1EVM
  • 解串器: DS90UH948
  • 拉电流: Raspberry Pi CM4、正在运行 Debian Bookworm (Linux 内核6.6)
  • 显示: 7英寸 RGB TFT (确认使用 TI 的测试模式)
  • DSI 输出: 800x480@60Hz、4通道 DSI

观察结果:

  1. 串行器测试图形正确显示 屏幕上、表示 解串器到 RGB 连接正确
  2. CM4的 DSI 输出处于活动状态 ,但 显示屏未收到视频信号

请求协助:

请提供有关的指导 必要的 I2C 寄存器配置 适用于这两种情况 DS90UH941AS-Q1 DS90UH948 才能正确接收 DSI 视频信号 Raspberry Pi CM4并显示在 RGB 面板上吗?

具体而言、我需要:

  • 正确的寄存器顺序 以配置 DS90UH941AS-Q1 指定 4通道 DSI 输入、800x480@60Hz
  • 所需的 DS90UH948的串行输出设置 以正确解释信号并驱动 RGB 面板
  • 不限 时钟设置、极性调整或链路配置 所需的接地路径。

非常感谢您的协助。 期待您的答复。

此致、

Abhimanyu

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

    尊敬的 Abhimanyu:

    感谢您提供有关系统的背景信息。 我们有一个应用手册、其中概述了在 UH941AS 上出现 DSI 接口问题时应采取的步骤。 在附上链接之前、我先回答您的问题。

    [quote userid="646493" url="~/support/interface-group/interface/f/interface-forum/1487877/ds90uh941as-q1evm-assistance-required-ds90uh941as-ds90uh948-with-raspberry-pi-cm4-debian-bookworm 正确的寄存器顺序 以配置 DS90UH941AS-Q1 指定 4通道 DSI 输入、800x480@60Hz .

    我附加了一个 UH941AS 配置脚本示例。 除了设置 THS-SKIP 寄存器之外、另一个适用的选项是您使用的是同步脉冲或同步事件。 如果您使用同步事件、则需要按照 UH941AS 数据表第8.4.2.2.1节中所述进行额外的编程

    请注意、由于我不知道系统的像素时钟频率或 DSI 通道频率、因此我将 thskip 值留空。 您知道 DSI 频率或像素时钟频率吗?

    e2e.ti.com/.../941_5F00_config_5F00_minda.txt

    [quote userid="646493" url="~/support/interface-group/interface/f/interface-forum/1487877/ds90uh941as-q1evm-assistance-required-ds90uh941as-ds90uh948-with-raspberry-pi-cm4-debian-bookworm DS90UH948的串行输出设置 以正确解释信号并驱动 RGB 面板 .

    如果您看到 PATGEN 的输出正确、则其他寄存器设置是可选的。 UH948将自动对 OLDI 接口上的输入信号和输出进行反序列化。  

    DSI 启动应用手册和步骤

    应用手册: 链接

    DSI TX 要求

    • 时钟通道必须是连续的
    • 不支持低功耗数据传输和低功耗逃逸模式
    • DSI TX 在视频消隐期间至少启用 LP-11一次(请参阅应用手册的第2.3节)

    请注意、第8页概述了 DSI 启动的调试流程。 按照此调试流程将有助于了解 UH941AS 无法识别 DSI 视频的原因。

    串行器 PATGEN 阶跃

    • 使用内部时序和外部时序测试串行器 PATGEN
    • 使用外部时序和外部时钟测试串行器 PATGEN

    此致、

    插孔

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

    下面是我的 DSI 的频率详细信息

    xrandr --newmode "800x480_60.00" 29.58 800 840 968 1056 480 486 494 500 -hsync +vsync
    

    这将定义一种称为的新分辨率模式 "800x480_60.00" 使用以下参数:

    参数 数据值 说明
    "800x480_60.00" Name 标识模式(可以是任意名称)。
    29.58 点时钟(MHz) 像素时钟频率(以 MHz 为单位)。
    800 水平有效像素 每行像素数。
    840 水平同步开始 水平同步脉冲开始。
    968 水平同步结束 水平同步脉冲结束。
    1056 水平总计 每行总像素数(包括消隐)。
    480 垂直有效线 每帧的行数。
    486 垂直同步开始 垂直同步脉冲开始。
    494 垂直同步结束 垂直同步脉冲结束。
    500 垂直总计 每帧总行数(包括消隐)。
    -hsync +vsync 同步极性

    水平同步为 、垂直同步为 正极

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

    您好、Abimanyu、

    感谢您提供视频时序信息。 DSI 时钟速率的计算公式为:fDSI = fPCLK * 12 / Nlanes。 这样我们就可以得到88.74MHz 的 DSI CLK 速率。  

    TSKIP_CNT 值为1、且88.74MHz 的 DSI CLK 为1。 我在脚本中更新了这一点。 我还更新了脚本以反映您希望水平同步极性为负的事实。

    e2e.ti.com/.../4214.941_5F00_config_5F00_minda.txt

    [引述 userid="525435" url="~/support/interface-group/interface/f/interface-forum/1487877/ds90uh941as-q1evm-assistance-required-ds90uh941as-ds90uh948-with-raspberry-pi-cm4-debian-bookworm/5716051 #5716051"]

    串行器 PATGEN 阶跃

    • 使用内部时序和外部时序测试串行器 PATGEN
    • 使用外部时序和外部时钟测试串行器 PATGEN
    [/报价]

    您是否已经尝试过这些步骤? 当您未运行941AS PATGEN 且使用 DSI 时钟时、您能否确认您已使用948锁定?

    此致、

    插孔

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

    您好、Jack、

    在何处以及如何设置以下测试点、以及需要进行哪些其他设置:

    • 使用内部时序和外部时序测试串行器 PATGEN
    • 使用外部时序和外部时钟测试串行器 PATGEN

    如图形生成所示、仅更改时序源选项:

    今天我试过测试:

    首先在使用内部时序源生成的图形中得到了图形、但当我打开 RPI CM4作为 DSI 源后切换到外部时序源时、LCD 上没有任何图形或视频。

    以下是我对总面积1024x800所做的设置:

     在此下面的脚本中、我是否需要根据上面给出的 DSI 源详细信息执行与 fps 分辨率 rgb888相关的任何其他设置。

    #示例941AS 配置脚本

    serAddr = 0x18
    desAddr = 0x58

    board.WriteI2C (serAddr、0x01、0x08)#禁用 DSI

    #在 DSI 端口0上对 TSKIP_CNT 进行编程
    # DSI 端口0 = 177.48Mbps/通道
    board.WriteI2C (serAddr、0x40、0x04)
    board.WriteI2C (serAddr、0x41、0x05)
    board.WriteI2C (serAddr、0x42、0x2)# TSKIP_CNT = 0x1。 左移一
    board.WriteI2C (serAddr、0x41、0x21)#DSI_CONFIG_1
    board.WriteI2C (serAddr、0x42、32)#DSI HS 极性为低电平有效
    board.WriteI2C (serAddr、0x01、0x00)#启用 DSI

    串行器是否会保持设置已保存、或者每次需要进行此设置时。

    此致

    Abhimanyu

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

    I jack、

    今天我用你的脚本做了一些活动,但我没有得到任何显示预期测试 PATTEN (测试 PATTEN 也当时钟源我选择了内部或内部 w/ext 时钟仅在外部工作)。

    以下是我提供的参考详细信息、您可以了解并建议我进行更改。

    我的 TFT LCD 数据表

    我尝试了脚本给你,因为我得到了另一个脚本从互联网,我也尝试了如下

    #!/bin/bash

    I2C_BUS=1 #如果需要、更改(Raspberry Pi 为1)
    SERDES_ADDR=0x0C # DS90UH941AS-Q1 I2C 地址

    回显"启动 DS90UH941AS-Q1配置..."

    #第1步:禁用 DSI 输入(将串行器置于待机状态)
    ECHO "正在禁用 DSI 输入..."
    i2cset -y $I2C_BUS $SERDES_ADDR 0x01 0x08 #设置位3以禁用 DSI 输入

    #第2步:设置 DSI 端口配置
    ECHO "配置 DSI 端口选择..."
    i2cset -y $I2C_BUS $SERDES_ADDR 0x40 0x08 #选择 DSI 端口0 (为 DSI1使用0x08)
    i2cset -y $I2C_BUS $SERDES_ADDR 0x41 0x05 #设置 DSI 的时序
    i2cset -y $I2C_BUS $SERDES_ADDR 0x42 0x02 # TSKIP_CNT = 0x1 (左移一)

    #第3步:配置 DSI 设置
    ECHO "配置 DSI 设置..."
    i2cset -y $I2C_BUS $SERDES_ADDR 0x41 0x21 # DSI_CONFIG_1
    i2cset -y $I2C_BUS $SERDES_ADDR 0x42 0x20 # DSI HS 极性为低电平有效

    #步骤4:配置显示时间(从面板数据表)
    ECHO "设置面板时序参数..."
    i2cset -y $I2C_BUS $SERDES_ADDR 0x4B 0x00 #水平同步宽度(48)
    i2cset -y $I2C_BUS $SERDES_ADDR 0x4C 0x30 #水平后沿(30)
    i2cset -y $I2C_BUS $SERDES_ADDR 0x4D 0xA6 #水平前沿(166)
    i2cset -y $I2C_BUS $SERDES_ADDR 0x4E 0x03 #垂直同步宽度(3)
    i2cset -y $I2C_BUS $SERDES_ADDR 0x4F 0x0F #垂直后沿(15)
    i2cset -y $I2C_BUS $SERDES_ADDR 0x50 #垂直前沿(80)

    #第5步:配置 FPD-Link III 输出(如果需要)
    ECHO "配置 FPD-Link III 输出..."
    i2cset -y $I2C_BUS $SERDES_ADDR 0x4F 0x00 #正常 FPD-Link 模式(需要更改)

    #第6步:重新启用 DSI 输入
    回波"正在启用 DSI 输入..."
    i2cset -y $I2C_BUS $SERDES_ADDR 0x01 0x00 #清除位3以启用 DSI 输入

    ECHO "串行器配置完成!"

    以下是我在 RPI 中进行的设置:  

    我遵循以下文档进行了此配置:

    linux/arch/arm/boot/dts/overles/README、网址为9da8d6df2051478f0ba16d73c65995955c19cb3a raspberrypi/linux··GitHub

    最后、我无法在面板中看到任何视频

    进一步建议我可以做什么。

    此致

    Abhimanyu

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

    尊敬的 Abhimanyu:

    您是否可以在941AS 上运行以下脚本、以便我可以检查 DSI 寄存器?

    e2e.ti.com/.../941_5F00_DSI_5F00_Registers.py

    但我没有得到任何显示预期测试 PATTEN (当时钟源我选择了内部或内部 w/ext 时钟仅在外部工作)。

    如果带有外部时序的 PATGEN 不起作用、这要么意味着来自 DSI 源的 LP11转换不存在、要么来自 DSI 源的时序不正确。

    941AS 的 DSI 启动应用手册中、请按照第4.2节确认是否缺少周期性低功耗转换。

    此致、

    插孔

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

    尊敬的 Jack:

    我已运行给定的脚本、输出是 BLOW:

    ***运行941_DSI_Registers.py ***
    DSI 端口0寄存器
    0x0 = 0x0
    0x1 = 0x0
    0x2 = 0x0
    0x3 = 0x1d
    0x4 = 0x14
    0x5 = 0x2
    0x6 = 0x0
    0x7 = 0x0
    0x8 = 0x0
    0x9 = 0x0
    0xA = 0x0
    0xb = 0x0
    0xc = 0x0
    0xd = 0x0
    0xe = 0x0
    0xF = 0x10
    0x10 = 0x0
    0x11 = 0x0
    0x12 = 0x0
    0x13 = 0x0
    0x14 = 0x0
    0x15 = 0x0
    0x16 = 0x0
    0x17 = 0x0
    0x18 = 0x0
    0x19 = 0x0
    0x1a = 0x0
    0x1b = 0x0
    0x1C = 0x0
    0x1d = 0x0
    0x1E = 0x0
    0x1F = 0x0
    0x20 = 0x7f
    0x21 = 0x20
    0x22 = 0xff
    0x23 = 0x7f
    0x24 = 0x0
    0x25 = 0x0
    0x26 = 0x0
    0x27 = 0x0
    0x28 = 0x0
    0x29 = 0x0
    0x2a = 0x0
    0x2b = 0x0
    0x2C = 0x0
    0x2D = 0x0
    0x2E = 0x0
    0x2F = 0x0
    0x30 = 0x0
    0x31 = 0x20
    0x32 = 0x0
    0x33 = 0x4
    0x34 = 0x0
    0x35 = 0x20
    0x36 = 0x0
    0x37 = 0x0
    0x38 = 0x0
    0x39 = 0x0
    0x3A = 0x2
    DSI 端口1完成
    0x0 = 0x0
    0x1 = 0x0
    0x2 = 0x0
    0x3 = 0x1d
    0x4 = 0x14
    0x5 = 0x2
    0x6 = 0x0
    0x7 = 0x0
    0x8 = 0x0
    0x9 = 0x0
    0xA = 0x0
    0xb = 0x0
    0xc = 0x0
    0xd = 0x0
    0xe = 0x0
    0xF = 0x10
    0x10 = 0x0
    0x11 = 0x0
    0x12 = 0x0
    0x13 = 0x0
    0x14 = 0x0
    0x15 = 0x0
    0x16 = 0x0
    0x17 = 0x0
    0x18 = 0x0
    0x19 = 0x0
    0x1a = 0x0
    0x1b = 0x0
    0x1C = 0x0
    0x1d = 0x0
    0x1E = 0x0
    0x1F = 0x0
    0x20 = 0x7f
    0x21 = 0x20
    0x22 = 0xff
    0x23 = 0x7f
    0x24 = 0x0
    0x25 = 0x0
    0x26 = 0x0
    0x27 = 0x0
    0x28 = 0x0
    0x29 = 0x0
    0x2a = 0x0
    0x2b = 0x0
    0x2C = 0x0
    0x2D = 0x0
    0x2E = 0x0
    0x2F = 0x0
    0x30 = 0x0
    0x31 = 0x20
    0x32 = 0x0
    0x33 = 0x4
    0x34 = 0x0
    0x35 = 0x20
    0x36 = 0x0
    0x37 = 0x0
    0x38 = 0x0
    0x39 = 0x0
    0x3A = 0x2
    ***脚本执行时间0分钟3.658秒***
    >

    请分析并告诉我要采取的进一步步骤。

    Regads

    Abhimanyu

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

    您好、插孔:

    我已运行给定的脚本、输出是 BLOW:

    ***运行941_DSI_Registers.py ***
    DSI 端口0寄存器
    0x0 = 0x0
    0x1 = 0x0
    0x2 = 0x0
    0x3 = 0x1d
    0x4 = 0x14
    0x5 = 0x2
    0x6 = 0x0
    0x7 = 0x0
    0x8 = 0x0
    0x9 = 0x0
    0xA = 0x0
    0xb = 0x0
    0xc = 0x0
    0xd = 0x0
    0xe = 0x0
    0xF = 0x10
    0x10 = 0x0
    0x11 = 0x0
    0x12 = 0x0
    0x13 = 0x0
    0x14 = 0x0
    0x15 = 0x0
    0x16 = 0x0
    0x17 = 0x0
    0x18 = 0x0
    0x19 = 0x0
    0x1a = 0x0
    0x1b = 0x0
    0x1C = 0x0
    0x1d = 0x0
    0x1E = 0x0
    0x1F = 0x0
    0x20 = 0x7f
    0x21 = 0x20
    0x22 = 0xff
    0x23 = 0x7f
    0x24 = 0x0
    0x25 = 0x0
    0x26 = 0x0
    0x27 = 0x0
    0x28 = 0x0
    0x29 = 0x0
    0x2a = 0x0
    0x2b = 0x0
    0x2C = 0x0
    0x2D = 0x0
    0x2E = 0x0
    0x2F = 0x0
    0x30 = 0x0
    0x31 = 0x20
    0x32 = 0x0
    0x33 = 0x4
    0x34 = 0x0
    0x35 = 0x20
    0x36 = 0x0
    0x37 = 0x0
    0x38 = 0x0
    0x39 = 0x0
    0x3A = 0x2
    DSI 端口1完成
    0x0 = 0x0
    0x1 = 0x0
    0x2 = 0x0
    0x3 = 0x1d
    0x4 = 0x14
    0x5 = 0x2
    0x6 = 0x0
    0x7 = 0x0
    0x8 = 0x0
    0x9 = 0x0
    0xA = 0x0
    0xb = 0x0
    0xc = 0x0
    0xd = 0x0
    0xe = 0x0
    0xF = 0x10
    0x10 = 0x0
    0x11 = 0x0
    0x12 = 0x0
    0x13 = 0x0
    0x14 = 0x0
    0x15 = 0x0
    0x16 = 0x0
    0x17 = 0x0
    0x18 = 0x0
    0x19 = 0x0
    0x1a = 0x0
    0x1b = 0x0
    0x1C = 0x0
    0x1d = 0x0
    0x1E = 0x0
    0x1F = 0x0
    0x20 = 0x7f
    0x21 = 0x20
    0x22 = 0xff
    0x23 = 0x7f
    0x24 = 0x0
    0x25 = 0x0
    0x26 = 0x0
    0x27 = 0x0
    0x28 = 0x0
    0x29 = 0x0
    0x2a = 0x0
    0x2b = 0x0
    0x2C = 0x0
    0x2D = 0x0
    0x2E = 0x0
    0x2F = 0x0
    0x30 = 0x0
    0x31 = 0x20
    0x32 = 0x0
    0x33 = 0x4
    0x34 = 0x0
    0x35 = 0x20
    0x36 = 0x0
    0x37 = 0x0
    0x38 = 0x0
    0x39 = 0x0
    0x3A = 0x2
    ***脚本执行时间0分钟3.658秒***
    >

    今天添加了上述 DSI 测试代码日志后、我又执行了一项活动。

    我从 waveshare https://www.waveshare.com/wiki/7inch_DSI_LCD 购买了一个 DSI 显示器

    并连接到我的 cm4的 dsi1端口、并在 cm4 /boot/firmware/config.txt 文件中添加了下面一行

    dtoverlay=vc4-kms-dsi-7inch 

    重新启动后、我得到了这个波浪形 DSI 面板的显示。

    如果驱动程序问题与此序列化兼容、TI 是否支持并提供对使用 Linux 驱动程序
    串行器、我们可以安装/加载 Raspberry Pi CM4。

    请分析并告诉我要采取的进一步步骤。



    此致
    Abhimanyu

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

    尊敬的 Abhimanyu:

    感谢您提供 DSI 寄存器状态。 请允许我在1-2个工作日进一步研究这些问题。

    同时、您是否能够确认是否有任何 LP-11 转换被丢弃? 如 上所述、以下应用手册(链接)的第4.2节介绍了如何确认 DSI 源是否正在输出这些周期性低功耗转换。

    此致、

    尼古拉

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

    您好、Nikolas:

    我捕获了下面所示的 DSI 数据线波形、使用我的 DSI 显示器也测试了相同的波形。 我正在获得有关 DSI 显示的视频、但没有关于串行器/解串器显示的视频。

    请进行分析、让我再也不想再向前迈进了。

    此致

    Abhimanyu

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

    尊敬的 Abhimanyu:

    感谢您的更新。 您能否在红框区域提供更放大的捕获?

    此致、

    尼古拉

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

    您好、Nikolas:

    我可以直接在身体上上传/通过我附加的 OneDrive 链接的波形:DSI 波形

    希望它有助于向前发展。

    此致

    Abhimanyu

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

    尊敬的 Abhimanyu:

    我很快就会跟进。

    此致、

    插孔

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

    尊敬的 Abhimanyu:

    DSI 波形显示在消隐期间没有进入 LP11状态。 下面举例说明了 LP11与 HS 数据传输的对比情况。 根据 D-PHY 标准、LP11约为1.2V。

    在 DSI 启动应用手册中、有两个示例标志可用于查看 DSI 源驱动器中是否有在 BLLP 期间启用 LP11的选项。

    对于在 BLLP 期间每帧不会至少进入一次 LP11的 DSI 源、没有解决方法。

    此致、

    插孔

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

    您好、Jack、

    感谢您的输入、我向我的电路板供应商确认、默认情况下会启用 Raspberry PI LP11。

    参考回复: forums.raspberrypi.com/viewtopic.php

    ...

    这是我捕获的波形、看起来符合预期。

    IMG1

    IMG1

    IMG2.

    img2.

    IMG3.

    img3.

    IMG4

    img4.

    以下是参考内核覆盖层和文档链接:  

    文档: https://github.com/raspberrypi/linux/blob/rpi-6.12.y/Documentation/devicetree/bindings/display/panel/panel-dsi.yaml

    覆盖: https://github.com/raspberrypi/linux/blob/rpi-6.12.y/arch/arm/boot/dts/overlays/vc4-kms-dsi-generic-overlay.dts

    Ref 内核 src: https://github.com/raspberrypi/linux/blob/rpi-6.12.y/drivers/gpu/drm/vc4/vc4_dsi.c#L1183

    请检查并确认。

    此致

    Abhimanyu

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

    尊敬的 Abhimanyu:

    感谢您提供更多示波器截图和论坛链接。 从之前的寄存器转储中可以看出、DSI 间接寄存器0x2A 为0。 941AS DSI 接收器仍无法识别传入的 DSI 数据类型。

    下面是我捕获的波形、看起来符合预期。

    我们看到了 LP11状态、但如果 LP11状态没有在正确的时间发生、或者它影响计时数据包、则仍然可能会出现问题。

    您是否可以尝试启用选项2 (DSI_DISP0_LP_STOP_PERFRAME) 难道不是在每条线上都进入 LP11状态吗? 即使 LP11在不正确的位置发生、每帧至少输入一次、它也可能会干扰941AS 确定传入视频时序的方式。

    此致、

    插孔

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

    您好、Jack、

    我已经检查了此驱动程序 #2 (DSI_DISP0_LP_STOP_PERFRAME) 这将启用、

    以下是适用于图形发生器的连接图:

    我使用的面板中 DE 而不是 Hsync VSYNC 它通过此设置使用图形发生器。

    DP 开关位置令人困惑:

    我按照以下文档表格进行了设置: www.ti.com/.../snlu241a.pdf

    对于其他连接、我也提到了同一个文档。

    但同一文档中的另一个地方是指示仅将一个 DP 开关设为高电平:请参阅下表。

    如果我遵循表2、则必须使许多 DP 开关变为高电平。

    以下是 DP 开关的状态图像:

    另外、这是我之前分享的根据显示屏数据表进行的时序设置:

    dtoverlay=vc4-kms-dsi-generic,clock-frequency=33200000
    dtparam=hactive=800,hfp=166,hsync=48,hbp=30
    dtparam=vactive=480,vfp=80,vsync=3,vbp=15
    dtparam=rgb888,four-lane

    below is the video mode selected in overlay file:
     mode = "MODE_VIDEO", "MODE_VIDEO_BURST", "MODE_NO_EOT_PACKET";

    based on my connection setup, timing configuration and video setting can you provide the initializing script for for ser-des.
    because still I am able to run only pattern generator.

    also let me know if there is any connection issue as DSI I have verified with dsi display.

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

    尊敬的 Abhimanyu:

    [引述 userid="646493" url="~/support/interface-group/interface/f/interface-forum/1487877/ds90uh941as-q1evm-assistance-required-ds90uh941as-ds90uh948-with-raspberry-pi-cm4-debian-bookworm/5752025 #5752025"]

    对于其他连接、我也提到了同一个文档。

    但同一文档中的另一个地方是指示仅将一个 DP 开关设为高电平:请参阅下表。

    如果我遵循表2、则必须使许多 DP 开关变为高电平。

    [/报价]

    对于 EVM 上的 DIP 开关、只需将一个值设置为高电平即可设置正确的 MODE_SEL。 您当前的 DIP 设置没有问题。

    我已经检查了此驱动程序 #2 (DSI_DISP0_LP_STOP_PERFRAME) 这已启用、

    驱动器在每条线之后进入 LP11、因为我们看到这种情况发生在比~16ms 小得多的时间范围内。 之所以发生这种情况、是因为 DSI 驱动器设置为突发模式。

    以下是在覆盖文件中选择的视频模式:
     MODE ="mode_video"、"mode_video_burst"、"mode_no_EOT_packet";

    可以将 mode_video_burst 更改为 mode_video_sync_pulse 吗? 您可能需要使用不同的驱动程序选项来查看哪个选项与941AS 兼容。  

    更改 DSI 驱动器选项后检查 DSI 间接寄存器0x2A、查看941AS 是否正确检测 DSI 数据类型。

    您是连接到941AS DSI 端口0还是941AS DSI 端口1?

    根据我的连接设置、时序配置和视频设置可以为 ser-des 提供初始化脚本。
    因为我仍然只能运行图形生成器。

    我上面所做的相同脚本对于该配置仍然有效。 此时的主要问题是确定是否存在对941AS 有效的驱动器配置。

    此致、

    插孔

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

    您好、Jack、

    我已连接到941AS DSI 端口1、如参考方框图所示。

    我将查看视频建议的 DSI 视频模式设置和更新。

    此致

    Abhimanyu

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

    尊敬的 Abhimanyu:

    好的。 您是否有 DSI 协议分析器的访问权限? 这将使分析 Raspberry Pi 输出变得更容易、并了解其为何会遇到941AS 问题。

    此致、

    插孔

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

    您好、Jack、

    我的解串器器件型号出错

    我之前提到过 DS90UH948、但我的解串器的实际器件型号是 DS90UB926QSEVB、我用于串行器 DS90UB941AS-Q1。

    需要支持更正后的零件号。

    我无法访问 DSI 协议分析仪、因此可以访问 DSO 和数字逻辑分析仪。

    以下是根据建议的更改以及更新的范围图像得出的观察结果。

    将 mode_video_burst 更改为 mode_video_sync_pulse 后、似乎可以看到 LP11正确出现。

    IMG-1

    IMG2.

    IMG3.

    IMG4

    IMG5


     

    以下是将 mode_video_burst 更改为 mode_video_sync_pulse 后的 DSI 电阻器日志、我没有看到 DSI 电阻器0x2A 有任何差异

    ***运行941_DSI_Registers.py ***
    DSI 端口0寄存器
    0x0 = 0x0
    0x1 = 0x0
    0x2 = 0x0
    0x3 = 0x1d
    0x4 = 0x14
    0x5 = 0x3a
    0x6 = 0x0
    0x7 = 0x0
    0x8 = 0x0
    0x9 = 0x0
    0xA = 0x0
    0xb = 0x0
    0xc = 0x0
    0xd = 0x0
    0xe = 0x0
    0xF = 0x10
    0x10 = 0x0
    0x11 = 0x0
    0x12 = 0x0
    0x13 = 0x0
    0x14 = 0x0
    0x15 = 0x0
    0x16 = 0x0
    0x17 = 0x0
    0x18 = 0x0
    0x19 = 0x0
    0x1a = 0x0
    0x1b = 0x0
    0x1C = 0x0
    0x1d = 0x0
    0x1E = 0x0
    0x1F = 0x0
    0x20 = 0x7f
    0x21 = 0x0
    0x22 = 0xff
    0x23 = 0x7f
    0x24 = 0x0
    0x25 = 0x0
    0x26 = 0x0
    0x27 = 0x0
    0x28 = 0x0
    0x29 = 0x0
    0x2a = 0x0
    0x2b = 0x0
    0x2C = 0x0
    0x2D = 0x0
    0x2E = 0x0
    0x2F = 0x0
    0x30 = 0x0
    0x31 = 0x20
    0x32 = 0x0
    0x33 = 0x4
    0x34 = 0x0
    0x35 = 0x20
    0x36 = 0x0
    0x37 = 0x0
    0x38 = 0x0
    0x39 = 0x0
    0x3A = 0x2
    DSI 端口1完成
    0x0 = 0x0
    0x1 = 0x0
    0x2 = 0x0
    0x3 = 0x1d
    0x4 = 0x14
    0x5 = 0x3a
    0x6 = 0x0
    0x7 = 0x0
    0x8 = 0x0
    0x9 = 0x0
    0xA = 0x0
    0xb = 0x0
    0xc = 0x0
    0xd = 0x0
    0xe = 0x0
    0xF = 0x10
    0x10 = 0x0
    0x11 = 0x0
    0x12 = 0x0
    0x13 = 0x0
    0x14 = 0x0
    0x15 = 0x0
    0x16 = 0x0
    0x17 = 0x0
    0x18 = 0x0
    0x19 = 0x0
    0x1a = 0x0
    0x1b = 0x0
    0x1C = 0x0
    0x1d = 0x0
    0x1E = 0x0
    0x1F = 0x0
    0x20 = 0x7f
    0x21 = 0x0
    0x22 = 0xff
    0x23 = 0x7f
    0x24 = 0x0
    0x25 = 0x0
    0x26 = 0x0
    0x27 = 0x0
    0x28 = 0x0
    0x29 = 0x0
    0x2a = 0x0
    0x2b = 0x0
    0x2C = 0x0
    0x2D = 0x0
    0x2E = 0x0
    0x2F = 0x0
    0x30 = 0x0
    0x31 = 0x20
    0x32 = 0x0
    0x33 = 0x4
    0x34 = 0x0
    0x35 = 0x20
    0x36 = 0x0
    0x37 = 0x0
    0x38 = 0x0
    0x39 = 0x0
    0x3A = 0x2
    ***脚本执行时间0分3.773秒***
    >

    是否需要在 DS90UB941AS-Q1或 DS90UB926QSEVB 中进行任何其他设置、因为我在屏幕上看不到任何包含建议设置的视频。

    此致

    Abhimanyu

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

    尊敬的 Abhimanyu:

    通过您4月4日的回复、我可以看到 DSI 信号大致焊接到连接器的侧面。 DSI/D-PHY 布线需要差分布线、我不相信这种在 Raspberry Pi 和941AS EVM 之间焊接的方法将使941AS 能够正确解码 DSI 信号。 您能否确认 Raspberry Pi 是通过这种方式连接到941AS EVM?

    941AS 使用 QSH-020-01-DSI 接口 H-D-DP-A 连接器。 Raspberry Pi 使用一个 2×小型22引脚、0.5mm (细)间距、11.5mm 宽度的连接器、用于 DSI 接口。 我不知道有电缆组件具有这两个连接器。 可制作适配器板来在板之间建立桥接。

    从 DSI 间接寄存器0xF (DPHY_STATUS)可以看到数据通道未处于活动状态。 这表明可能未检测到 D-PHY 传输启动(SOT)序列。  

    我没有关于941AS 设置的进一步建议。

    此致、

    插孔

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

    您好、Jack、

    感谢您的意见、我理解您的担忧。

    我们期待为941AS 和 CM4的此设置准备适当的 JIG 或 PCB。

    在这里、我可以按照您提供的以下脚本直接运行941AS

    #示例941AS 配置脚本

    serAddr = 0x18
    desAddr = 0x58

    board.WriteI2C (serAddr、0x01、0x08)#禁用 DSI

    #在 DSI 端口0上对 TSKIP_CNT 进行编程
    # DSI 端口0 = 177.48Mbps/通道
    board.WriteI2C (serAddr、0x40、0x04)
    board.WriteI2C (serAddr、0x41、0x05)
    board.WriteI2C (serAddr、0x42、0x2)# TSKIP_CNT = 0x1。 左移一
    board.WriteI2C (serAddr、0x41、0x21)#DSI_CONFIG_1
    board.WriteI2C (serAddr、0x42、32)#DSI HS 极性为低电平有效
    board.WriteI2C (serAddr、0x01、0x00)#启用 DSI

    board.WriteI2C (serAddr、0x3、0x96)#启用 I2C 直通

    现在、您可以帮助生成941AS 的分辨率以生成测试模式并选择内部外部时钟、以便在进入 CM4 DSI 之前、我可以首先使用新 Jig 或 PCB 测试模式。

    目前我正在通过 ALP 工具生成测试模式、但在我的 PCB 上、我只能通过941AS 的 i2c 端口进行配置。

    此文章中已提供有关图形生成的配置帮助、供您参考面板分辨率和时序详细信息。

    一旦我的 JIG 完成,我会尝试使用它,并共享 i2c 转储以获得帮助,如果遇到任何问题。

    此致

    Abhimanyu

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

    您好:  

    由于25年4月18日(星期五)美国公众假期、支持将在星期一恢复。 感谢您的耐心。  

    此致、  

    Logan

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

    您好、Abimanyu、

    请参阅所附的具有内部视频时序和外部 PCLK 源的941AS PATGEN 脚本。 客户 JIG 启动并运行后、请告诉我、以便我们可以查看是否成功接收到 DSI 信号。

    仔细检查脚本中的计时、确保它们正确。

    此致、

    插孔

    e2e.ti.com/.../941_5F00_PATGEN_5F00_SparkMinda.py