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.

[参考译文] DS90UB941AS-Q1:双 DSI 输入、1920x1080、图形发生器帮助

Guru**** 2457760 points
Other Parts Discussed in Thread: ALP

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1486625/ds90ub941as-q1-dual-dsi-inputs-1920x1080-pattern-generator-help

器件型号:DS90UB941AS-Q1
Thread 中讨论的其他器件:ALP

工具与软件:

您好!

我准备好了 DS90UB941串行器和 DS90UB948解串器。  I 的 LCD 为1920x1080、所需的像素时钟为143MHz。  由于像素时钟高于105MHz、我需要使用双 DSI 输入。  我仍需解决器件树中的一些错误、因此我想先使用信号发生器测试 LCD。  941数据表具有 独立2:2模式的示例代码、但没有包含任何双模的代码、所以我不确定所有寄存器需要更改的地方。

您能否提供我需要设置的寄存器以便图形发生器与上述面板配合使用?  该面板的时序详细信息如下:

像素时钟:143.28 MHz (60Hz)
水平显示区域:1920
水平前沿:24.
水平后沿:70  
HSYNC 总周期时间:2048

垂直显示区域:1080
垂直前沿:16
垂直后沿:48.
Vsync 总周期时间:1166

谢谢!

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

    您好、Brent:

    您是否有权使用我们的 ALP 工具?  https://www.ti.com/tool/ALP?keyMatch=analogue%20launchpad&tisearch=universal_search 

    您可以使用此处的 PATGEN 选项卡为特定用例生成脚本。  

    请参阅随附的参考脚本"94x PATGEN"。 可以在 ALP 中组合使用"Pattern Generator"和"PATGEN Registers"选项卡来填充变量。 首先、将所需的时序和设置输入到"Pattern Generator"选项卡中、然后点击"Apply"。 然后、导航到"PATGEN Registers"选项卡并使用"Save"按钮保存寄存器。 然后、可以从该输出文件将变量相应地输入到所连接的"94x PATGEN"脚本的"PATGEN 配置"部分。

    请注意 、如果您使用不同的工作模式(即通过外部 CLK 进行内部时序等)、则可能需要调整寄存器0x64和0x65

    e2e.ti.com/.../94x-PATGEN.py

    BR、

    Esther

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

    尊敬的 Esther:

    感谢您的答复。  我不知道该工具、因此我下载并开始查看它。  但是、需要在941和948上设置哪些寄存器、才能在 DS90UB941上启用双 DSI 输入、在 DS90UB948上启用双通道 FPD-Link III 输入、双链路 OpenLDI 输出、这一点尚不清楚。  我的 LCD 面板需要双 LVDS (偶数和奇数数据对)。

    你能在这里指出一个正确的方向吗?  谢谢!

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

    您好、Brent:

    将通过硬件配置(strap)进行这些设置(请参阅数据表中的器件功能模式)。

    对于941、请参阅以下表格来启用 DSI 通道数:

    对于948、请参阅以下表以启用双路 OLDI 输出:

    对于双 FPD-Link III 模式、它将根据 PCLK 自动启用。

    BR、

    Esther

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

    谢谢、我在 DS90UB948 MODE_SEL0上的电压为1.27V、因此解串器配置为双路 OLDI 输出、但看起来我甚至缺少数据、因为我只需要一半的线路。

    现在我只是在解串器上尝试图形发生器、它可以正常工作、但正如您从放大的第二张图片中看到的、我缺少了偶数数据。

    DS90UB948上是否有需要设置的寄存器、以便图形发生器生成和输出奇数数据?

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

    您好、Brent:

    能否提供用于对右侧屏幕进行编程的 ALP 上的"Pattern Generator"选项卡或用于生成屏幕的脚本的屏幕截图? 谢谢。

    BR、

    Esther

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

    尊敬的 Esther:

    这是 ALP 的导出、以及941和948的 I2C 转储。  我已经在941和948上尝试了模式生成。  此外、还连接 LCD 的时序。

    No size specified (using byte-data access)
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: 2c 00 00 9a 00 00 58 00 00 01 11 00 05 30 00 00    ,..?..X..??.?0..
    10: 00 00 00 8b 00 00 fe 9e 7f 7f 01 00 0c 00 01 00    ...?..?????.?.?.
    20: 0b 00 25 00 00 00 00 00 01 20 20 b0 00 00 a5 5a    ?.%.....?  ?..?Z
    30: 00 09 00 05 0c 00 00 00 00 00 00 00 00 00 81 02    .?.??.........??
    40: 10 94 00 00 00 00 00 00 00 00 00 00 00 00 00 8c    ??.............?
    50: 16 00 00 00 02 00 00 02 00 00 c9 00 07 06 44 64    ?...?..?..?.??Dd
    60: 22 02 00 00 01 05 0e 00 00 00 00 00 00 00 20 00    "?..???....... .
    70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7c 00    ..............|.
    80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    c0: 00 00 82 00 38 00 00 64 40 00 00 00 00 02 ff 00    ..?.8..d@....?..
    d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    e0: 00 00 82 00 28 08 00 00 00 00 00 00 00 02 00 00    ..?.(?.......?..
    f0: 5f 55 42 39 34 31 00 00 00 00 00 00 00 00 00 00    _UB941..........

    No size specified (using byte-data access)
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
    00: 58 04 00 f0 fe 1e 00 2c 00 00 00 00 00 00 00 00    X?.???.,........
    10: 00 00 00 00 00 00 00 00 00 01 00 00 33 10 50 00    .........?..3?P.
    20: 99 09 40 30 08 00 83 84 11 00 00 00 00 00 00 00    ??@0?.???.......
    30: 00 00 90 25 01 00 00 ac 00 00 00 04 20 e0 23 00    ..?%?..?...? ?#.
    40: 43 03 03 00 60 88 00 00 0f 80 00 08 00 00 63 00    C??.`?..??.?..c.
    50: 03 10 00 01 80 00 00 00 00 7f 20 20 00 00 00 00    ??.??....?  ....
    60: 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00    ....?...........
    70: 00 00 00 07 07 08 00 00 00 00 00 00 02 00 00 00    ...???......?...
    80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    a0: 00 00 7d 00 00 00 00 00 00 00 00 00 00 00 00 00    ..}.............
    b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
    c0: 00 00 00 00 00 00 00 00 c0 00 00 00 00 00 00 00    ........?.......
    d0: 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    ................
    f0: 5f 55 42 39 34 38 00 00 00 00 00 00 00 00 00 00    _UB948..........

    Register Data Name
    0x0000 0x00 PGRS
    0x0001 0x00 PGGS
    0x0002 0x00 PGBS
    0x0003 0x02 PGCDC1
    0x0004 0x00 PGTFS1
    0x0005 0x08 PGTFS2
    0x0006 0x4B PCTFS3
    0x0007 0x80 PGAFS1
    0x0008 0x87 PGAFS2
    0x0009 0x43 PGAFS3
    0x000A 0x20 PGHSW
    0x000B 0x08 PGVSW
    0x000C 0x20 PGHBP
    0x000D 0x08 PGVBP
    0x000E 0x00 PBSC
    0x000F 0x1E PGFT
    0x0010 0x0C PGTSC
    0x0011 0x21 PGTSO1
    0x0012 0x43 PGTSO2
    0x0013 0x65 PGTSO3
    0x0014 0x87 PGTSO4
    0x0015 0xA9 PGTSO5
    0x0016 0xCB PGTSO6
    0x0017 0xED PGTSO7
    0x0018 0x0F PGTSO8
    0x0019 0x00 PGBE
    0x001A 0x01 PGCDC2

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

    您好、Brent:

    感谢寄存器转储和显示时序。

    只是为了确认、在执行948 PATGEN 时、您会看到缺少偶数数据?

    您能否在运行948 PATGEN 后尝试探测948上的 D4-D7引脚和 CLK2引脚、查看它们是否输出任何视频数据?  

    最后、是使用 ALP 选项卡启用 PATGEN 还是运行脚本? 我提问的原因通常是、我们默认启用了色条、但从您的图片来看、您似乎只是启用了红色。 如果我们可以看到用于编程的 ALP 选项卡的屏幕截图、或为948 PATGEN 运行的脚本、这也会有所帮助。

    这是 PATGEN ALP 选项卡示例。

    感谢您的耐心、

    Esther

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

    尊敬的 Esther:

    我在偶数输出上看不到任何数据、因此我认为一定会在某个位置缺少寄存器设置。  我不使用 ALP 来启用 PATGEN、因为我在定制板上运行这种情况。  我要使用941串行器的直通功能并在 Linux 操作系统中运行 bash 脚本来访问948的 I2C。  此板可用于其他分辨率较低的 LCD、无需双 LVDS。

    下面是我的脚本:

    #!/bin/bash
    
    # Pattern Generator for UB90DS948
    # 1920x1080p60, Dual Link FPD III
    # PCLK = 143.280MHz
    # 4 Lanes DSI
    
    set -e
    
    I2C_BUS=8
    DESER=0x2c
    SER=0x16
    
    # Enable serializer I2C Pass-through
    i2cset -y -f -r $I2C_BUS $SER 0x03 0x9A
    
    # Reset
    i2cset -y -f -r $I2C_BUS $DESER 0x01 0x02
    
    # sleep 0.1s
    sleep .1
    
    #port 0
    i2cset -y -f -r $I2C_BUS $DESER 0x34 0x01
    
    
    # 1. Set Pixel Clock and Active Frame Size
    # pixe clock = 143.280MHz divider = 200/143.280 ≈ 2
    # hactive = 1920 vactive = 1080
    #
    
    #i2cset -y -f -r $I2C_BUS $DESER 0x39 0x02                               
    
    i2cset -y -f -r $I2C_BUS $DESER 0x66 0x03
    i2cset -y -f -r $I2C_BUS $DESER 0x67 0x02
    
    i2cset -y -f -r $I2C_BUS $DESER 0x66 0x07
    i2cset -y -f -r $I2C_BUS $DESER 0x67 0xC0
    
    i2cset -y -f -r $I2C_BUS $DESER 0x66 0x08
    i2cset -y -f -r $I2C_BUS $DESER 0x67 0x83
    
    i2cset -y -f -r $I2C_BUS $DESER 0x66 0x09
    i2cset -y -f -r $I2C_BUS $DESER 0x67 0x43
    
    # 2. Set Total Frame Size
    # Total H Width = 32(hback porch) + 1920(hactive) + 64(hfront porch) + 32(hsync len)
    # = 2048
    # Total V Width = 8(vback porch) + 1080(vactive) + 104(vfront porch) + 8(vsync len)
    # = 1166
    #
    i2cset -y -f -r $I2C_BUS $DESER 0x66 0x04
    i2cset -y -f -r $I2C_BUS $DESER 0x67 0x00
    
    i2cset -y -f -r $I2C_BUS $DESER 0x66 0x05
    i2cset -y -f -r $I2C_BUS $DESER 0x67 0x04
    
    i2cset -y -f -r $I2C_BUS $DESER 0x66 0x06
    i2cset -y -f -r $I2C_BUS $DESER 0x67 0x4B
    
    # 3. Set Back Porch
    # H Back Porch = 70 = 0100 0110
    # V Back Porch = 48 = 0011 0000
    i2cset -y -f -r $I2C_BUS $DESER 0x66 0x0C
    i2cset -y -f -r $I2C_BUS $DESER 0x67 0x10
    
    i2cset -y -f -r $I2C_BUS $DESER 0x66 0x0D
    i2cset -y -f -r $I2C_BUS $DESER 0x67 0x08
    
    # 4. Set Sync Widths
    # H Sync Width = 34 = 0010 0010
    # V Sync Width = 22 = 0001 0110
    i2cset -y -f -r $I2C_BUS $DESER 0x66 0x0A
    i2cset -y -f -r $I2C_BUS $DESER 0x67 0x10
    
    i2cset -y -f -r $I2C_BUS $DESER 0x66 0x0B
    i2cset -y -f -r $I2C_BUS $DESER 0x67 0x08
    
    # 5. Set Sync Polarities
    i2cset -y -f -r $I2C_BUS $DESER 0x66 0x0E
    i2cset -y -f -r $I2C_BUS $DESER 0x67 0x00
    
    # 6. Enable Pattern Generation
    i2cset -y -f -r $I2C_BUS $DESER 0x65 0x05
    
    # Turn on backlight and PWM GPIOs
    i2cset -y -f -r $I2C_BUS $DESER 0x21 0x09
    i2cset -y -f -r $I2C_BUS $DESER 0x1e 0x50
    i2cset -y -f -r $I2C_BUS $DESER 0x20 0x99
    
    echo "Please run: i2cset -y -f -r $I2C_BUS $DESER 0x64 0x01"
    

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

    尊敬的 Esther:

    也许最好能为我需要的所有寄存器生成脚本、以便根据 LCD 时序在948和941上生成模式?  我相信我们的硬件功能良好、因此肯定是寄存器出了点问题、所以将生成的数据与我得到的数据进行比较会很有帮助。  谢谢!

    Pclk:147.456MHz
    H_active:1920
    H_SYNC:32
    h_backp:32
    H_frontp:64
    H_total:2048
    V_active:1080
    V_SYNC:8
    v_backp:8
    V_前锋:104.
    V_total:1200
    FRAME_RATE:60
    LVDS_format:VESA

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

    您好、Brent:

    感谢您提供背景信息。  

    我使用您的时序生成了948 PATGEN 脚本、为寄存器生成的值与为寄存器生成的值相同。 请参阅附加的脚本。 我将 I2C 连接到941并成功启动了948 PATGEN 运行脚本。 我无法重现您在我的 设置中看到的缺失偶数线现象。  

    e2e.ti.com/.../948PATGEN_5F00_CustomScript.py

    您是否尝试过在不同的面板上使用相同的脚本? 这种现象是否仍然发生?

    您是否尝试过在同一个面板(调整 MODE_SEL0并调整时序以减少 PCLK)上使用单个 OLDI 输出、这种现象是否仍然发生?  

    BR、

    Esther

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

    谢谢 Esther 的帮助!

    经过一些测试后,我发现我需要禁用941上的 DSI ,然后948上的图形发生器运行完美。  我必须一直在 DSI 线路上输出一些信号、导致信号发生器产生干扰。  我现在正致力于让图形发生器在941上运行。  使用相同的配置、但更改了脚本、所以我以941为目标、所以我看不到任何输出。  我会继续尝试一下、但是要让图形发生器用于941是否有任何指导?

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

    您好、Brent:

    很好、它正在工作。 对不起,我认为我在上面附上了错误的脚本(用720p 测试),但我们用您的自定义脚本测试了它,并能够提出948 PATGEN 也。  

    对于941 PATGEN、它应该与948相同、但地址调整为941。  

    我再次尝试使用941重新生成时序、我注意到 PGCDC1 = 0x03、而不是0x02。 除此之外,没有什么区别。 您能试试吗?  

    e2e.ti.com/.../3162.941PATGEN_5F00_Custom.py

    BR、

    Esther

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

    我还没有让 PATGEN 在941上工作,但我认为我需要更好地了解这实际上是如何工作的。

    如果我只需要1920x1080p @ 30Hz、我是否应该在独立2:2模式下使用941、因为我的像素时钟将小于105MHz、如下图中的第一项所示?  如果我需要1920x1080p @ 60Hz、是否需要使用下图中所示的第二项或第三项?  我不确定自己是否应该使用941作为双链路或分离器模式。  我真正需要的只是948来生成1920x1080p LCD 的奇偶 LVDS 数据。

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

    实际上、我需要的似乎是双链路1:2模式。  单 DSI 输入和双 FPD-Link 输出。

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

    您好、Brent:

    双 FPD-Link 输出将根据 PCLK 频率自动调整。 DSI 通道的数量和 OLDI 输出的数量取决于前面提到的模式配置(strap)。  

    您能否为941 PATGEN 尝试这一新脚本、其中我更改了寄存器0x65 = 0x4、以便 PATGEN 使用内部时钟和时序? 在运行此 PATGEN 时、请断开 SoC/DSI 源。 刚刚在实验室中对其进行了测试、现在它正在我这边工作  

    e2e.ti.com/.../5773.941PATGEN_5F00_Custom.py

    BR、

    Esther

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

    尊敬的 Esther:

    好消息、现在一切都在运作!  我的部分问题是解串器有一些 GPIO 来控制 LCD 的背光和其他使能引脚、尽管我要打开 GPIO、但似乎每当串行器开始传输 FPD 数据时、解串器都会出于某种原因复位这些 GPIO。  目前、我已对使能引脚进行硬接线、使其始终开启、我们将为生产找到更好的解决方案。  再次感谢您的帮助!