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:DS90UB941与 DS90UB948匹配、并且1920x1080屏幕不显示

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

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1476283/ds90ub941as-q1-ds90ub941-matches-ds90ub948-and-the-1920x1080-screen-is-not-displayed

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

工具与软件:

DS90UB941配置寄存器与 DS90UB948结合使用、可输出1920 × 1080个图像、  

但请参阅 zhcaag5a.pdf 手册的编程示例进行修改、具体寄存器写入如下、但无法在屏幕上显示、而是读取0x06寄存器到941地址不能读取未字符串948的地址、直接使用948地址读取、返回的状态值为 STATUS_I2C_RECEIVED_nACK、不知道、请参考指南进行处理、谢谢

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

    您好!

    我将参考941AS 启动指南、进一步分析此设置: DS90UB941AS-Q1 DSI 启动指南

    从提供的脚本中、我看到了以下配置:

    serAddr = 0x18
    
    # Disable the DSI input
    board.WriteI2c(serAddr, 0x01, 0x08) 
    
    board.WriteI2c(serAddr, 0x1E, 0x01) # TX port select, Port 0 selected
    
    # Continuous DSI CLK
    # Dual DSI
    # DSI Port 0
    # Alternate Lines 3D Mode
    # 4 Lanes
    board.WriteI2C(serAddr, 0x4F, 0xDC)
    
    # Dual Config Registers - FPDTX mode = Forced splitter mode
    board.WriteI2C(serAddr, 0x5B, 0x07) 
    
    # Left/Right 3D Processing
    board.WriteI2C(serAddr, 0x56, 0x80) 
    board.WriteI2C(serAddr, 0x32, 0x80) # IMG_LINE_SIZE0 processing
    board.WriteI2C(serAddr, 0x33, 0x07) # IMG_LINE_SIZE1 processing
    # IMG Line processing set to 1920 px
    
    board.WriteI2c(serAddr, 0x1E, 0x01) # TX port select, Port 0 selected (again)
    board.WriteI2C(serAddr, 0x1E, 0x01) # TX port select, Port 0 selected (again)
    board.WriteI2C(serAddr, 0x36, 0x00) # Crop Start X axis (0) - LSB = 0
    board.WriteI2C(serAddr, 0x37, 0x80) # Crop Start X axis (1) - Crop enable, MSB = 0
    board.WriteI2C(serAddr, 0x38, 0x7F) # Crop Stop X axis (0) - LSB = 0111 0111
    board.WriteI2C(serAddr, 0x39, 0x07) # Crop Stop X axis (1) - MSB = 0111
    # Crop start at 0 goes to 1919
    
    board.WriteI2C(serAddr, 0x3A, 0x00) # Crop Start Y axis (0) - LSB = 0
    board.WriteI2C(serAddr, 0x3B, 0x00) # Crop Start Y axis (1) - MSB = 0
    board.WriteI2C(serAddr, 0x3C, 0x37) # Crop Stop Y axis (0) - LSB = 0011 0111
    board.WriteI2C(serAddr, 0x3D, 0x04) # Crop Stop Y axis (1) - MSB = 0100
    # Crop start at 0 goes to 1079
    
    board.WriteI2C(serAddr, 0x40, 0x04) # DSI/DPHY Port 0 Registers
    board.WriteI2C(serAddr, 0x41, 0x05) # DPHY Skip timing
    board.WriteI2C(serAddr, 0x42, 0x1E) # Set to dec = 15
    
    # Enable DSI
    board.WriteI2C(serAddr, 0x01, 0x00) 

    您能否确认所使用的 DSI 配置、FPD 链路拓扑和 DSI 速率是否适用于相应的配置?

    我有一项建议是确保为 DES/显示配置选择正确的极性、这可通过 DSI 间接页面寄存器上的以下寄存器来实现:

    board.WriteI2C(serAddr,0x40,0x04) # Set HSYNC/VSYNC Polarity DSI0
    board.WriteI2C(serAddr,0x41,0x21) # Set HSYNC/VSYNC Polarity DSI0
    board.WriteI2C(serAddr,0x42,0x60) # Set HSYNC/VSYNC Polarity DSI0

    此外、请确保从正确配置 DSI 时钟设置 数据表的第10.2节

    board.WriteI2C(serAddr,0x40,0x10) # Init DSI Clock Settings (From Section 10.2 of datasheet)
    board.WriteI2C(serAddr,0x41,0x86) # Init DSI Clock Settings (From Section 10.2 of datasheet)
    board.WriteI2C(serAddr,0x42,0x0A) # Init DSI Clock Settings (From Section 10.2 of datasheet)
    board.WriteI2C(serAddr,0x41,0x94) # Init DSI Clock Settings (From Section 10.2 of datasheet)
    board.WriteI2C(serAddr,0x42,0x0A) # Init DSI Clock Settings (From Section 10.2 of datasheet)

    初始化后对948进行数字复位也是一个好主意、这样可以重新启动 AEQ (最后将其放到):

    desAddr = 0x58
    
    board.WriteI2C(UB948,0x01,0x01) # Digital reset to restart AEQ 
    

    [报价 userid="636335" url="~/support/interface-group/interface/f/interface-forum/1476283/ds90ub941as-q1-ds90ub941-matches-ds90ub948-and-the-1920x1080-screen-is-not-displayed 通过941地址读取0x06寄存器无法读取未字符串948的地址、直接使用948地址读取、返回的状态值是 STATUS_I2C_RECEIVED_nACK

    如果您无法读取器件 ID、 可能是未建立 RX 锁定 . 您能否检查948端以确保可以远程访问设备? 我认为、由于硬件配置的原因、从941到948的连接可能无法建立。 请检查948上的锁定/通过状态以确认连接(引脚1和引脚7)。

    如果需要说明、请告诉我!

    此致!

    Miguel

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

    1. 941和948可以在上电后锁定、但开始配置941寄存器时、TI941_WriteRegister (IDX_941、0x01、0x08);而 TI941_WriteRegister (IDX_941、0x4F、0xDC);所以此寄存器将导致 LOCK 断开连接且无法恢复正常连接状态、这是为什么?
    2. 根据以上指针,重新配置寄存器0x41,0x42,然后如何配置相应的相关数据,因为我没有找到参考文章,我最终需要输出1920 × 1080屏幕

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

    您好!

    [报价 userid="636335" url="~/support/interface-group/interface/f/interface-forum/1476283/ds90ub941as-q1-ds90ub941-matches-ds90ub948-and-the-1920x1080-screen-is-not-displayed/5669697 #566969697"]941和948可以在上电后锁定、但在开始配置941寄存器时、可以锁定 TI941_WriteRegister (IDX_941、0x01、0x08);以及在 TI941_WriteRegister (IDX_941、0x4F、0xDC)时、寄存器将导致锁定断开连接、为什么无法恢复正常状态?]

    是、这是预期行为、第一次写入(0x01=0x08)会禁用 DSI 输入、第二次写入会设置 DSI 配置。 当 DSI 处于禁用状态时、941 SER 的 RX 没有输入、这意味着948没有有效的视频吞吐量。

    此时、948将根据寄存器0x34位6 (Rx_LOCK_MODE)对是否有有效视频传入进行采样、从而确认是否已建立锁定

    这就是在配置 DSI 时未建立锁定状态的原因。

    根据上述指针、重新配置寄存器0x41、0x42、然后如何配置相应的相关数据、因为我找不到参考文章、我最终需要输出1920 * 1080屏幕

    我建议参考 DS90UB941AS-Q1 DSI 启动指南 来获得具体的配置帮助、因为我看到这里通过裁剪到两个显示屏来实现分离器模式。

    在调试部分中、建议首先测试内部图形生成、以便验证来自 SER -> DES ->显示器是否正常工作、在 SER -> DES -> x1 Display 的1920x1080p 拓扑中、可以使用 探索 FPD-Link III IVI 器件的内部测试图形生成特性中的寄存器分配生成图形脚本(修订版 G)。

    如果需要、我可以帮助生成此脚本、但我认为生成的图形只会进入一个显示器(其中需要所有时序参数的显示规格)。

    请在此处告诉我您可能需要哪些帮助!

    此致!

    Miguel

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

    如何配置哪些寄存器? 1920*1080为图像输出、时钟频率为142MHz -158MHz。 您能帮助我配置特定的寄存器吗

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

    目前,根据图中的配置,可以显示屏幕,但有一个花屏,你能帮助看到寄存器的配置是否导致花屏? 已检查硬件并发现没有问题。 谢谢你

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

    您好!

    我可以帮助您评估此配置;您能否提供一个花卉屏幕示例或描述具体的异常情况以供说明?

    按照启动指南( https://www.ti.com/lit/an/snla356/snla356.pdf?ts = 1740076915839)、我提供了 PATGEN 脚本、它将通过941AS 直接发送至948内部生成。 您能否通过提供方框图来再次确认所使用的拓扑?

    1920*1080是图像输出、时钟频率是142MHz 频率-158MHz

    我可能还需要显示时序规格以防止由显示侧的视频时序引起的任何问题、但我提供了默认的1920 x 1080分辨率(60fps)(148.5 MHz PCLK) PATGEN。

    有关这些寄存器写入、请参阅以下脚本:

    devAddr = 0x18
    PGIA = 0x66
    PGID = 0x67
    
    
    board.WriteI2C(0x01, 0x08) # Disable DSI input
    board.WriteI2C(0x1E, 0x01) # TX Port Select = FPD Port 0 Sel
    board.WriteI2C(0x5B, 0x03) # TX Mode = Forced Dual FPD-Link III Transmitter mode
    
    # Populate based on expected display timings
    PGRS =      0x00
    PGGS =      0x00
    PGBS =      0x00
    PGCDC1 =    0x02
    PGCDC2 =    0x98
    PGTFS1 =    0x58
    PGTFS2 =    0x46
    PGTFS3 =    0x80
    PGAFS1 =    0x87
    PGAFS2 =    0x43
    PGAFS3 =    0x2C
    PGHSW =     0x05
    PGVSW =     0x94
    PGHBP =     0x24
    PGVBP =     0x00
    PBSC =      0x1E
    PGFT =      0x0C
    PFTSC =     0x21
    PGTS01 =    0x43
    PGTS02 =    0x65
    PGTS03 =    0x87
    PGTS04 =    0xA9
    PGTS05 =    0xCB
    PGTS06 =    0xED
    PGTS07 =    0x0F
    PGTS08 =    0x00
    PGBE =      0x01
    PGCDC2 =    0x00
    
    board.WriteI2C(devAddr, PGIA, 0x00)
    board.WriteI2C(devAddr, PGID, PGRS) #PGRS
    board.WriteI2C(devAddr, PGIA, 0x01)
    board.WriteI2C(devAddr, PGID, PGGS) #PGGS
    board.WriteI2C(devAddr, PGIA, 0x02)
    board.WriteI2C(devAddr, PGID, PGBS) #PGBS
    board.WriteI2C(devAddr, PGIA, 0x03)
    board.WriteI2C(devAddr, PGID, PGCDC1) #PGCDC1
    board.WriteI2C(devAddr, PGIA, 0x04)
    board.WriteI2C(devAddr, PGID, PGTFS1) #PGTFS1
    board.WriteI2C(devAddr, PGIA, 0x05)
    board.WriteI2C(devAddr, PGID, PGTFS2) #PGTFS2
    board.WriteI2C(devAddr, PGIA, 0x06)
    board.WriteI2C(devAddr, PGID, PGTFS3) #PGTFS3
    board.WriteI2C(devAddr, PGIA, 0x07)
    board.WriteI2C(devAddr, PGID, PGAFS1) #PGAFS1
    board.WriteI2C(devAddr, PGIA, 0x08)
    board.WriteI2C(devAddr, PGID, PGAFS2) #PGAFS2
    board.WriteI2C(devAddr, PGIA, 0x09)
    board.WriteI2C(devAddr, PGID, PGAFS3) #PGAFS3
    board.WriteI2C(devAddr, PGIA, 0x0a)
    board.WriteI2C(devAddr, PGID, PGHSW) #PGHSW
    board.WriteI2C(devAddr, PGIA, 0x0b)
    board.WriteI2C(devAddr, PGID, PGVSW) #PGVSW
    board.WriteI2C(devAddr, PGIA, 0x0c)
    board.WriteI2C(devAddr, PGID, PGHBP) #PGHBP
    board.WriteI2C(devAddr, PGIA, 0x0d) 
    board.WriteI2C(devAddr, PGID, PGVBP) #PGVBP
    board.WriteI2C(devAddr, PGIA, 0x0e)
    board.WriteI2C(devAddr, PGID, PBSC) #PBSC, if not working try both positive AND negative polarity
    board.WriteI2C(devAddr, PGIA, 0x0f)
    board.WriteI2C(devAddr, PGID, PGFT) #PGFT
    board.WriteI2C(devAddr, PGIA, 0x10)
    board.WriteI2C(devAddr, PGID, PGTSC) #PGTSC
    board.WriteI2C(devAddr, PGIA, 0x11)
    board.WriteI2C(devAddr, PGID, PGTS01) #PGTS01
    board.WriteI2C(devAddr, PGIA, 0x12)
    board.WriteI2C(devAddr, PGID, PGTS02) #PGTS02
    board.WriteI2C(devAddr, PGIA, 0x13)
    board.WriteI2C(devAddr, PGID, PGTS03) #PGTS03
    board.WriteI2C(devAddr, PGIA, 0x14)
    board.WriteI2C(devAddr, PGID, PGTS04) #PGTS04
    board.WriteI2C(devAddr, PGIA, 0x15)
    board.WriteI2C(devAddr, PGID, PGTS05) #PGTS05
    board.WriteI2C(devAddr, PGIA, 0x16)
    board.WriteI2C(devAddr, PGID, PGTS06) #PGTS06
    board.WriteI2C(devAddr, PGIA, 0x17)
    board.WriteI2C(devAddr, PGID, PGTS07) #PGTS07
    board.WriteI2C(devAddr, PGIA, 0x18)
    board.WriteI2C(devAddr, PGID, PGTS08) #PGTS08
    board.WriteI2C(devAddr, PGIA, 0x19)
    board.WriteI2C(devAddr, PGID, PGBE) #PGBE
    board.WriteI2C(devAddr, PGIA, 0x1a)
    board.WriteI2C(devAddr, PGID, PGCDC2) #PGCDC2
    
    
    board.WriteI2C(devAddr, 0x65, 0x00)
    board.WriteI2C(devAddr, 0x64, 0x05)
    
    

    在这种情况下、您可以将 devAddr 替换为脚本中使用的 IDX_941。

    有关这些配置寄存器的进一步说明、请参阅  探索 FPD-Link III IVI 器件的内部测试图案生成特性(修订版 G)

    由于 PATGEN 将在941内部生成、因此此时无需 DSI 配置-我们将独立于源来测试 SER -> DES -> Display 之间的链路。

    请告知我测试结果、然后我们可以继续执行后续步骤以解决显示异常。

    谢谢!

    Miguel

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

    1、我们的项目是将 MIPI 输入到 LVDS 输出1920 × 1080。 通过您提供的输出内部色条图示例,色条图可以在测试后正常输出。1920 × 1080是图像输出,时钟频率为142MHz -158MHz ;
    2、以上是我对941寄存器的配置,通过以上配置,输出屏幕出现花屏;

    3、为了能正常输出1920 × 1080视频,我该如何配置,请引导我,更渴望、谢谢!

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

    您好!

    感谢您对此进行测试- 941AS 的内部 PATGEN 似乎确认941AS 和948之间的 FPD-Link 配置正确。 现在、我将重点介绍 DSI RX 寄存器配置。

    您能否确认或提供 以下信息? 同时、我会查看您上面提供的代码。

    1. 连续 DSI CLK
    2. 双 DSI (DSI0和 DSI1)
    3. 交替行3D 模式
    4. 每个端口的 DSI 通道数:4
    5. DSI 速率(Mbps)

    期待您的回复!

    此致!

    Miguel

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

    1 μ s、DSI CLK
    2、单 DSI 输入、双输出
    3、非交替行3D 模式
    4、4个 DSI 通道
    5、DSI 速率(Mbps):290Mbps

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

    感谢您提供这些信息、我将立即针对上面的代码提供反馈。

    此致!

    Miguel

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

    5 μ s、 fDSI = 492 MHz 、 4个 DSI 数据 通道 以及 DSI 参考 时钟 模式、  输出 视频 PCLK 频率 将 为 148.5 MHz 、

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

    我将等待你的反馈,目前,我没有线索处理这个问题,谢谢!

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

    您好!

    感谢您提供这些信息、我们将在后续调试步骤中需要执行此操作。

    通过您提供的输出内部色条图示例、色条图可以在测试后正常输出。1920 * 1080是图像输出、时钟频率为142MHz -158MHz

    现在、我们可以继续处理来自 SER 的 PATGEN 成功的流程图(来自 DS90UB941AS-Q1 DSI 启动指南)

    下一个脚本将使用内部时序来确认时钟是否正确(不应用数据通道)。

    devAddr = 0x18
    PGIA = 0x66
    PGID = 0x67
    
    
    board.WriteI2C(0x01, 0x08) # Disable DSI input
    board.WriteI2C(0x1E, 0x01) # TX Port Select = FPD Port 0 Sel
    board.WriteI2C(0x5B, 0x03) # TX Mode = Forced Dual FPD-Link III Transmitter mode
    
    # Populate based on expected display timings
    PGRS =      0x00
    PGGS =      0x00
    PGBS =      0x00
    PGCDC1 =    0x02
    PGCDC2 =    0x98
    PGTFS1 =    0x58
    PGTFS2 =    0x46
    PGTFS3 =    0x80
    PGAFS1 =    0x87
    PGAFS2 =    0x43
    PGAFS3 =    0x2C
    PGHSW =     0x05
    PGVSW =     0x94
    PGHBP =     0x24
    PGVBP =     0x00
    PBSC =      0x1E
    PGFT =      0x0C
    PFTSC =     0x21
    PGTS01 =    0x43
    PGTS02 =    0x65
    PGTS03 =    0x87
    PGTS04 =    0xA9
    PGTS05 =    0xCB
    PGTS06 =    0xED
    PGTS07 =    0x0F
    PGTS08 =    0x00
    PGBE =      0x01
    PGCDC2 =    0x00
    
    board.WriteI2C(devAddr, PGIA, 0x00)
    board.WriteI2C(devAddr, PGID, PGRS) #PGRS
    board.WriteI2C(devAddr, PGIA, 0x01)
    board.WriteI2C(devAddr, PGID, PGGS) #PGGS
    board.WriteI2C(devAddr, PGIA, 0x02)
    board.WriteI2C(devAddr, PGID, PGBS) #PGBS
    board.WriteI2C(devAddr, PGIA, 0x03)
    board.WriteI2C(devAddr, PGID, PGCDC1) #PGCDC1
    board.WriteI2C(devAddr, PGIA, 0x04)
    board.WriteI2C(devAddr, PGID, PGTFS1) #PGTFS1
    board.WriteI2C(devAddr, PGIA, 0x05)
    board.WriteI2C(devAddr, PGID, PGTFS2) #PGTFS2
    board.WriteI2C(devAddr, PGIA, 0x06)
    board.WriteI2C(devAddr, PGID, PGTFS3) #PGTFS3
    board.WriteI2C(devAddr, PGIA, 0x07)
    board.WriteI2C(devAddr, PGID, PGAFS1) #PGAFS1
    board.WriteI2C(devAddr, PGIA, 0x08)
    board.WriteI2C(devAddr, PGID, PGAFS2) #PGAFS2
    board.WriteI2C(devAddr, PGIA, 0x09)
    board.WriteI2C(devAddr, PGID, PGAFS3) #PGAFS3
    board.WriteI2C(devAddr, PGIA, 0x0a)
    board.WriteI2C(devAddr, PGID, PGHSW) #PGHSW
    board.WriteI2C(devAddr, PGIA, 0x0b)
    board.WriteI2C(devAddr, PGID, PGVSW) #PGVSW
    board.WriteI2C(devAddr, PGIA, 0x0c)
    board.WriteI2C(devAddr, PGID, PGHBP) #PGHBP
    board.WriteI2C(devAddr, PGIA, 0x0d) 
    board.WriteI2C(devAddr, PGID, PGVBP) #PGVBP
    board.WriteI2C(devAddr, PGIA, 0x0e)
    board.WriteI2C(devAddr, PGID, PBSC) #PBSC, if not working try both positive AND negative polarity
    board.WriteI2C(devAddr, PGIA, 0x0f)
    board.WriteI2C(devAddr, PGID, PGFT) #PGFT
    board.WriteI2C(devAddr, PGIA, 0x10)
    board.WriteI2C(devAddr, PGID, PGTSC) #PGTSC
    board.WriteI2C(devAddr, PGIA, 0x11)
    board.WriteI2C(devAddr, PGID, PGTS01) #PGTS01
    board.WriteI2C(devAddr, PGIA, 0x12)
    board.WriteI2C(devAddr, PGID, PGTS02) #PGTS02
    board.WriteI2C(devAddr, PGIA, 0x13)
    board.WriteI2C(devAddr, PGID, PGTS03) #PGTS03
    board.WriteI2C(devAddr, PGIA, 0x14)
    board.WriteI2C(devAddr, PGID, PGTS04) #PGTS04
    board.WriteI2C(devAddr, PGIA, 0x15)
    board.WriteI2C(devAddr, PGID, PGTS05) #PGTS05
    board.WriteI2C(devAddr, PGIA, 0x16)
    board.WriteI2C(devAddr, PGID, PGTS06) #PGTS06
    board.WriteI2C(devAddr, PGIA, 0x17)
    board.WriteI2C(devAddr, PGID, PGTS07) #PGTS07
    board.WriteI2C(devAddr, PGIA, 0x18)
    board.WriteI2C(devAddr, PGID, PGTS08) #PGTS08
    board.WriteI2C(devAddr, PGIA, 0x19)
    board.WriteI2C(devAddr, PGID, PGBE) #PGBE
    board.WriteI2C(devAddr, PGIA, 0x1a)
    board.WriteI2C(devAddr, PGID, PGCDC2) #PGCDC2
    
    
    board.WriteI2C(devAddr, 0x65, 0x0C)
    board.WriteI2C(devAddr, 0x64, 0x05)

    当 DSI 源处于启用状态时、它将在这种情况下仅提供时钟、因为外部时钟源选项是启用的、并且时序是在内部生成和配置的。

    请告诉我此测试的结果、我们可能会继续了解这种现象是从哪里发生的。

    此致!

    Miguel

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

    根据您提供的脚本写入后、显示屏上没有图像输出、并且 PGTSC 在您提供的脚本中没有相应的值。 我为测试设置 PGTSC=0。 详细代码如下:

    TI941_WriteRegister (IDX_941、0x01、0x08);/*禁用 DSI 输入*/
    TI941_WriteRegister (IDX_941、0x1E、0x01);/* TX 端口选择= FPD 端口0选择*/
    TI941_WriteRegister (IDX_941、0x5B、0x03);/* TX 模式=强制双 FPD-Link III 发送器模式*/

    TI941_WriteRegister (IDX_941、0x66、0x00);
    TI941_WriteRegister (IDX_941、0x67、0x00);
    TI941_WriteRegister (IDX_941、0x66、0x01);
    TI941_WriteRegister (IDX_941、0x67、0x00);
    TI941_WriteRegister (IDX_941、0x66、0x02);
    TI941_WriteRegister (IDX_941、0x67、0x00);
    TI941_WriteRegister (IDX_941、0x66、0x03);
    TI941_WriteRegister (IDX_941、0x67、0x02);
    TI941_WriteRegister (IDX_941、0x66、0x04);
    TI941_WriteRegister (IDX_941、0x67、0x58);
    TI941_WriteRegister (IDX_941、0x66、0x05);
    TI941_WriteRegister (IDX_941、0x67、0x46);
    TI941_WriteRegister (IDX_941、0x66、0x06);
    TI941_WriteRegister (IDX_941、0x67、0x80);
    TI941_WriteRegister (IDX_941、0x66、0x07);
    TI941_WriteRegister (IDX_941、0x67、0x87);
    TI941_WriteRegister (IDX_941、0x66、0x08);
    TI941_WriteRegister (IDX_941、0x67、0x43);
    TI941_WriteRegister (IDX_941、0x66、0x09);
    TI941_WriteRegister (IDX_941、0x67、0x2C);
    TI941_WriteRegister (IDX_941、0x66、0x0a);
    TI941_WriteRegister (IDX_941、0x67、0x05);
    TI941_WriteRegister (IDX_941、0x66、0x0B);
    TI941_WriteRegister (IDX_941、0x67、0x94);
    TI941_WriteRegister (IDX_941、0x66、0x0C);
    TI941_WriteRegister (IDX_941、0x67、0x24);
    TI941_WriteRegister (IDX_941、0x66、0x0D);
    TI941_WriteRegister (IDX_941、0x67、0x00);
    TI941_WriteRegister (IDX_941、0x66、0x0E);
    TI941_WriteRegister (IDX_941、0x67、0x1E);
    TI941_WriteRegister (IDX_941、0x66、0x0F);
    TI941_WriteRegister (IDX_941、0x67、0x0C);
    TI941_WriteRegister (IDX_941、0x66、0x10);
    TI941_WriteRegister (IDX_941、0x67、0x00); // PGTSC
    TI941_WriteRegister (IDX_941、0x66、0x11);
    TI941_WriteRegister (IDX_941、0x67、0x43);
    TI941_WriteRegister (IDX_941、0x66、0x12);
    TI941_WriteRegister (IDX_941、0x67、0x65);
    TI941_WriteRegister (IDX_941、0x66、0x13);
    TI941_WriteRegister (IDX_941、0x67、0x87);
    TI941_WriteRegister (IDX_941、0x66、0x14);
    TI941_WriteRegister (IDX_941、0x67、0xA9);
    TI941_WriteRegister (IDX_941、0x66、0x15);
    TI941_WriteRegister (IDX_941、0x67、0xCB);
    TI941_WriteRegister (IDX_941、0x66、0x16);
    TI941_WriteRegister (IDX_941、0x67、0xED);
    TI941_WriteRegister (IDX_941、0x66、0x17);
    TI941_WriteRegister (IDX_941、0x67、0x0F);
    TI941_WriteRegister (IDX_941、0x66、0x18);
    TI941_WriteRegister (IDX_941、0x67、0x00);
    TI941_WriteRegister (IDX_941、0x66、0x19);
    TI941_WriteRegister (IDX_941、0x67、0x01);
    TI941_WriteRegister (IDX_941、0x66、0x1A);
    TI941_WriteRegister (IDX_941、0x67、0x00);

    TI941_WriteRegister (IDX_941、0x65、0x0C);
    TI941_WriteRegister (IDX_941、0x64、0x05);

    TI941_WriteRegister (IDX_941、0x01、0x00);/*启用 DSI*/

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

    您好!

    让我们通过不禁用时钟来尝试使用这个相同的脚本->需要 DSI 的该 TX 来配置 PATGEN:

    TI941_WriteRegister(IDX_941, 0x66, 0x00);
    TI941_WriteRegister(IDX_941, 0x67, 0x00);
    TI941_WriteRegister(IDX_941, 0x66, 0x01);
    TI941_WriteRegister(IDX_941, 0x67, 0x00);
    TI941_WriteRegister(IDX_941, 0x66, 0x02);
    TI941_WriteRegister(IDX_941, 0x67, 0x00);
    TI941_WriteRegister(IDX_941, 0x66, 0x03);
    TI941_WriteRegister(IDX_941, 0x67, 0x02);
    TI941_WriteRegister(IDX_941, 0x66, 0x04);
    TI941_WriteRegister(IDX_941, 0x67, 0x58);
    TI941_WriteRegister(IDX_941, 0x66, 0x05);
    TI941_WriteRegister(IDX_941, 0x67, 0x46);
    TI941_WriteRegister(IDX_941, 0x66, 0x06);
    TI941_WriteRegister(IDX_941, 0x67, 0x80);
    TI941_WriteRegister(IDX_941, 0x66, 0x07);
    TI941_WriteRegister(IDX_941, 0x67, 0x87);
    TI941_WriteRegister(IDX_941, 0x66, 0x08);
    TI941_WriteRegister(IDX_941, 0x67, 0x43);
    TI941_WriteRegister(IDX_941, 0x66, 0x09);
    TI941_WriteRegister(IDX_941, 0x67, 0x2C);
    TI941_WriteRegister(IDX_941, 0x66, 0x0a);
    TI941_WriteRegister(IDX_941, 0x67, 0x05);
    TI941_WriteRegister(IDX_941, 0x66, 0x0b);
    TI941_WriteRegister(IDX_941, 0x67, 0x94);
    TI941_WriteRegister(IDX_941, 0x66, 0x0C);
    TI941_WriteRegister(IDX_941, 0x67, 0x24);
    TI941_WriteRegister(IDX_941, 0x66, 0x0D);
    TI941_WriteRegister(IDX_941, 0x67, 0x00);
    TI941_WriteRegister(IDX_941, 0x66, 0x0E);
    TI941_WriteRegister(IDX_941, 0x67, 0x1E);
    TI941_WriteRegister(IDX_941, 0x66, 0x0F);
    TI941_WriteRegister(IDX_941, 0x67, 0x0C);
    TI941_WriteRegister(IDX_941, 0x66, 0x10);
    TI941_WriteRegister(IDX_941, 0x67, 0x21);  // PGTSC
    TI941_WriteRegister(IDX_941, 0x66, 0x11);
    TI941_WriteRegister(IDX_941, 0x67, 0x43);
    TI941_WriteRegister(IDX_941, 0x66, 0x12);
    TI941_WriteRegister(IDX_941, 0x67, 0x65);
    TI941_WriteRegister(IDX_941, 0x66, 0x13);
    TI941_WriteRegister(IDX_941, 0x67, 0x87);
    TI941_WriteRegister(IDX_941, 0x66, 0x14);
    TI941_WriteRegister(IDX_941, 0x67, 0xA9);
    TI941_WriteRegister(IDX_941, 0x66, 0x15);
    TI941_WriteRegister(IDX_941, 0x67, 0xCB);
    TI941_WriteRegister(IDX_941, 0x66, 0x16);
    TI941_WriteRegister(IDX_941, 0x67, 0xED);
    TI941_WriteRegister(IDX_941, 0x66, 0x17);
    TI941_WriteRegister(IDX_941, 0x67, 0x0F);
    TI941_WriteRegister(IDX_941, 0x66, 0x18);
    TI941_WriteRegister(IDX_941, 0x67, 0x00);
    TI941_WriteRegister(IDX_941, 0x66, 0x19);
    TI941_WriteRegister(IDX_941, 0x67, 0x01);
    TI941_WriteRegister(IDX_941, 0x66, 0x1A);
    TI941_WriteRegister(IDX_941, 0x67, 0x00);
    
    TI941_WriteRegister(IDX_941, 0x65, 0x0C);
    TI941_WriteRegister(IDX_941, 0x64, 0x05);

    PGTSC 没有从先前作为0x21的写入中继续-这被校正(但是没有效果、因为自动滚动被禁用)。

    由于 DSI 配置在此设置中不受干扰、因此请尝试以下序列:

    这来自941上电时序控制、此处的建议是在使用上述代码进行初始化之前应用 DSI 输入、以查看输出是否会出现。 这样、我们就可以排除 DSI 时钟是否是此配置中问题的一部分。

    如果不起作用、我们将需要根据调试流程图的这一部分(DS90UB941AS-Q1 DSI 启动指南)进一步评估 DSI 输入

    在新代码和时序控制不成功的情况下、我们可以通过检查以下部分来尝试评估 DSI 配置和连续时钟:

    我已经链接了上述指南、如果您需要测试该指南的任何进一步详情、请告诉我。

    如果代码和序列有效、我们可以尝试下一步、即使用相同的代码、但使用外部计时输入:

    TI941_WriteRegister(IDX_941, 0x66, 0x00);
    TI941_WriteRegister(IDX_941, 0x67, 0x00);
    TI941_WriteRegister(IDX_941, 0x66, 0x01);
    TI941_WriteRegister(IDX_941, 0x67, 0x00);
    TI941_WriteRegister(IDX_941, 0x66, 0x02);
    TI941_WriteRegister(IDX_941, 0x67, 0x00);
    TI941_WriteRegister(IDX_941, 0x66, 0x03);
    TI941_WriteRegister(IDX_941, 0x67, 0x02);
    TI941_WriteRegister(IDX_941, 0x66, 0x04);
    TI941_WriteRegister(IDX_941, 0x67, 0x58);
    TI941_WriteRegister(IDX_941, 0x66, 0x05);
    TI941_WriteRegister(IDX_941, 0x67, 0x46);
    TI941_WriteRegister(IDX_941, 0x66, 0x06);
    TI941_WriteRegister(IDX_941, 0x67, 0x80);
    TI941_WriteRegister(IDX_941, 0x66, 0x07);
    TI941_WriteRegister(IDX_941, 0x67, 0x87);
    TI941_WriteRegister(IDX_941, 0x66, 0x08);
    TI941_WriteRegister(IDX_941, 0x67, 0x43);
    TI941_WriteRegister(IDX_941, 0x66, 0x09);
    TI941_WriteRegister(IDX_941, 0x67, 0x2C);
    TI941_WriteRegister(IDX_941, 0x66, 0x0a);
    TI941_WriteRegister(IDX_941, 0x67, 0x05);
    TI941_WriteRegister(IDX_941, 0x66, 0x0b);
    TI941_WriteRegister(IDX_941, 0x67, 0x94);
    TI941_WriteRegister(IDX_941, 0x66, 0x0C);
    TI941_WriteRegister(IDX_941, 0x67, 0x24);
    TI941_WriteRegister(IDX_941, 0x66, 0x0D);
    TI941_WriteRegister(IDX_941, 0x67, 0x00);
    TI941_WriteRegister(IDX_941, 0x66, 0x0E);
    TI941_WriteRegister(IDX_941, 0x67, 0x1E);
    TI941_WriteRegister(IDX_941, 0x66, 0x0F);
    TI941_WriteRegister(IDX_941, 0x67, 0x0C);
    TI941_WriteRegister(IDX_941, 0x66, 0x10);
    TI941_WriteRegister(IDX_941, 0x67, 0x21);  // PGTSC
    TI941_WriteRegister(IDX_941, 0x66, 0x11);
    TI941_WriteRegister(IDX_941, 0x67, 0x43);
    TI941_WriteRegister(IDX_941, 0x66, 0x12);
    TI941_WriteRegister(IDX_941, 0x67, 0x65);
    TI941_WriteRegister(IDX_941, 0x66, 0x13);
    TI941_WriteRegister(IDX_941, 0x67, 0x87);
    TI941_WriteRegister(IDX_941, 0x66, 0x14);
    TI941_WriteRegister(IDX_941, 0x67, 0xA9);
    TI941_WriteRegister(IDX_941, 0x66, 0x15);
    TI941_WriteRegister(IDX_941, 0x67, 0xCB);
    TI941_WriteRegister(IDX_941, 0x66, 0x16);
    TI941_WriteRegister(IDX_941, 0x67, 0xED);
    TI941_WriteRegister(IDX_941, 0x66, 0x17);
    TI941_WriteRegister(IDX_941, 0x67, 0x0F);
    TI941_WriteRegister(IDX_941, 0x66, 0x18);
    TI941_WriteRegister(IDX_941, 0x67, 0x00);
    TI941_WriteRegister(IDX_941, 0x66, 0x19);
    TI941_WriteRegister(IDX_941, 0x67, 0x01);
    TI941_WriteRegister(IDX_941, 0x66, 0x1A);
    TI941_WriteRegister(IDX_941, 0x67, 0x00);
    
    TI941_WriteRegister(IDX_941, 0x65, 0x08);
    TI941_WriteRegister(IDX_941, 0x64, 0x05);

    然后、此代码将确定所有 SoC 配置是否正确进入941。

    如果您有任何其他问题或疑虑、请告诉我。

    此致!

    Miguel

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

    使用您提供的上述代码、不会显示图像输出

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

    例如、我使用地址948来读取寄存器0x03的值、返回状态为 STATUS_I2C_RECEIVED_nACK。 配置时941是否未连接至948? 此现象现在不会影响屏幕。

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

    您好!

    当接收到 STATUS_I2C_RECEIVED_nACK 时、这表示 SER 和 DES 器件之间的链路可能存在问题。

    948器件是否始终通过941 SER 进行远程访问? 如果这些事务失败、这可能表明 SER/DES 器件之间的锁定稳定性和状态存在问题。

    此致!

    Miguel

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

    我将941寄存器配置为通过948解串芯片输出1920 × 1080的屏幕。 目前、屏幕始终显示、并且通过948未字符串读取器的地址读取的寄存器始终返回 STATUS_I2C_RECEIVED_nACK、但可以通过配置941来显示色条图

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

    1、我把941的寄存器配置成通过948解串芯片输出1920 × 1080的屏幕。 目前、屏幕始终显示、并且通过948未字符串读取器的地址读取的寄存器始终返回 STATUS_I2C_RECEIVED_nACK、但可以通过配置941来显示色条图。

    2948设置为0V、R2设置为10kΩ。 根据规格、IDX 应为0x2C。 但是、我直接将 MCU 连接到 I2C 接口948、以使用地址0x2C 读取0xF3的寄存器、返回值为 STATUS_I2C_RECEIVED_nACK。 使用 IDX 作为0x0C 来读取0xF3寄存器确实会返回一个成功可读的值、原因是什么? 正常的948地址应为0x2C、已检查硬件找不到原因

    3、这是941原理图:

    4、这是948原理图:

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

    5、色条图正常显示,屏幕输出显示在花屏上。 它前面有一个寄存器脚本、提供显示效果和941的特定配置

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

    您好!

    让我进一步查看、941的模式选择自举设置似乎与以下配置不匹配?

    4、4个 DSI 通道数
    5、DSI 速率(Mbps):290Mbps [/报价]

    在本例中、模式0将是1个通道、但此处使用4个 DSI 通道。

    [报价 userid="636335" url="~/support/interface-group/interface/f/interface-forum/1476283/ds90ub941as-q1-ds90ub941-matches-ds90ub948-and-the-1920x1080-screen-is-not-displayed/5690324 #5690324"]mcu 到 i2c 接口948、使用地址0x2C 读取0xF3的寄存器、返回值为 STATUS_I2C_RECEIVED_nACK。 使用 IDX 作为0x0C 来读取0xF3寄存器确实会返回成功可读的值[/QUOT]

    您能否提供来自 MCU 的 I2C 命令是以7位还是8位寻址方式读取? 例如、我们用于94x 器件的 ALP 工具将使用8位 IDX 地址读取数据并进行通信:

    ALP 支持软件| TI.com

    请告知我、我将继续离线评估配置设置、如果您仍然无法远程访问948、则反向通道配置可能存在问题、可能需要对其进行评估。

    然后、根据读取 DSI_VC_DTYPE 的调查、我们将继续查看 DSI CLK 源、以确保其正常。

    此致!

    Miguel

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

    1、我们有一个 DSI0输入、两个链路输出、四个数据通道
    2、地址= 0x4F DSI 通道选择1、不显示屏幕、选择4、屏幕仅显示花屏
    3、我使用 NXP S32K144芯片、该芯片使用7位地址

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

    您好!  

    我明白了、

    我们有一个 DSI0输入、两个链路输出、四个数据通道

    四个数据通道和双(两) FPD-Link 配置、您可能需要 MODE_SEL0 =模式3

    • 上拉电阻需为51.1 kΩ、下拉电阻需为40.2 kΩ
    • 在没有下拉电阻器的情况下使用10k 上拉电阻器将启用分离器模式(不适用于双链路)

    MODE_SEL1也设置为模式7、这意味着在启动时将禁用 DSI。

    • 此外、还将进行更改、但器件应针对 STP 和同轴电缆配置使用模式5 (这将在数据表的未来修订版中进行更新)。
    [报价用户 id="636335" url="~/support/interface-group/interface/f/interface-forum/1476283/ds90ub941as-q1-ds90ub941-matches-ds90ub948-and-the-1920x1080-screen-is-not-displayed/5692882 #5692882"]地址= 0x4F DSI 通道选择1、屏幕不显示、选择4、屏幕只显示花屏

    我相信这是一个进步;为了获得任何数据、车道应选择为4、但可能是配置导致了鲜花盛开的花屏。

    1. 您是否能够提供波形以证明传入的时钟和输入到 RX 的数据符合941AS 规范?
    2. 您是否能够读取间接页寄存器 DSI_VC_DTYPE?
      1. 为 DSI 端口0写入0x40 = 0x04  
      2. 写入0x41 = 0x2A
      3. 读取0x42 (DSI_VC_DTYPE)|
        示例:  
        TI941_WriteRegister(IDX_941, 0x42, 0x04);
        TI941_WriteRegister(IDX_941, 0x41, 0x2A);
        TI941_ReadRegister(IDX_941, 0x42);
    [报价用户 id="636335" url="~/support/interface-group/interface/f/interface-forum/1476283/ds90ub941as-q1-ds90ub941-matches-ds90ub948-and-the-1920x1080-screen-is-not-displayed/5692882 #5692882"]我使用 NXP S32K144芯片、该芯片使用7位地址[/报价][报价用户 id="636335" url="~/support/interface-group/interface/f/interface-forum/1476283/ds90ub941as-q1-ds90ub941-matches-ds90ub948-and-the-1920x1080-screen-is-not-displayed/5690324 #5690324"]使用 IDX 作为0x0C 读取0xF3的寄存器确实会返回一个成功读取的值、原因是什么?

    我同意这不是948上可用的地址之一、并且这种行为异常。 我不确定只有0x0C 才用于读取 I2C 地址的原因、您是否确定此处读取的地址不是941AS 的7位地址?

    要验证这一点、您可以读取寄存器0x00、它应返回编程的器件 IDX 地址。

    此致!

    Miguel

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

    1、您是否能够读取间接页寄存器 DSI_VC_DTYPE?
       为 DSI 端口0写入0x40 = 0x04
       写入0x41 = 0x2A
       读取0x42 (DSI_VC_DTYPE)
    读取0x42会得到值0x3E

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

    1、您是否能够读取间接页寄存器 DSI_VC_DTYPE?
       为 DSI 端口0写入0x40 = 0x04
       写入0x41 = 0x2A
       读取0x42 (DSI_VC_DTYPE)
    读取0x42会得到值0x3E

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

    2、您是否能够提供波形来证明传入时钟和输入 RX 的数据是否满足941AS 规范?
    这是941 RX 的波形、

    MIPI-CKN 至 GND 测试

    31920 × 1080显示屏上的对比图显示在941/948上,如下所示。 穿过后显示的图形以不同的常规变形水平和垂直拉伸

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

    4、四个数据通道和双(两) FPD-Link 配置、您可能需要 MODE_SEL0 =模式3

    • 上拉电阻需为51.1 kΩ、下拉电阻需为40.2 kΩ
    • 在没有下拉电阻器的情况下使用10k 上拉电阻器将启用分离器模式(不适用于双链路)

    MODE_SEL1也设置为模式7、这意味着在启动时将禁用 DSI。

    • 此外、还将进行更改、但器件应针对 STP 和同轴电缆配置使用模式5 (这将在数据表的未来版本中更新)

    硬件根据此信息进行配置、输出屏幕仍然是一个花卉屏幕、这与之前的效果相同

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

    您好!

    非常感谢您提供有关该系统的所有附加信息。

    示波器捕获中报告的 DSI 频率似乎在505.35 MHz 附近、

    [报价用户 id="636335" url="~/support/interface-group/interface/f/interface-forum/1476283/ds90ub941as-q1-ds90ub941-matches-ds90ub948-and-the-1920x1080-screen-is-not-displayed/5676686 #567668686"]DSI 速率(Mbps):290Mbps[/报价][报价用户 id="636335" url="~/support/interface-group/interface/f/interface-forum/1476283/ds90ub941as-q1-ds90ub941-matches-ds90ub948-and-the-1920x1080-screen-is-not-displayed/5680050 #5680050"] fDSI = 492 MHz [/报价]

    其中一个肯定不正确? 我认为数据速率到频率的转换是两的倍数、因此对于290Mbps 的数据速率=大约580 MHz DSI 时钟频率。

    fPCLK  =(fDSI*NLANES)/12

    PCLK = 193.33 MHz

    如果是这种情况、则为 UB948具有192 MHz 的 PCLK 限制 RX 侧双链路配置的双链路配置中使用单链路 CAN 收发器、因此这可能不起作用。

    ---- ----  

    对于示波器捕获中显示的 DSI 频率、这将是的计算结果

    fPCLK  =(fDSI*NLANES)/12

    PCLK = 168.45 MHz

    这没问题、但对于该配置、T_skip 是不同的数字

    505.35 MHz / 252.675Mbps DSI 数据速率

    TSKIP_CNT =舍入(65*fDSI - 5)

    = 28

    board.WriteI2C(serAddr, 0x40, 0x04) # DSI/DPHY Port 0 Registers
    board.WriteI2C(serAddr, 0x41, 0x05) # DPHY Skip timing
    board.WriteI2C(serAddr, 0x42, 0x38) # Set to dec = 28

    580 MHz / 290Mbps DSI 数据速率

    TSKIP_CNT =舍入(65*fDSI - 5)

    = 33

    board.WriteI2C(serAddr, 0x40, 0x04) # DSI/DPHY Port 0 Registers
    board.WriteI2C(serAddr, 0x41, 0x05) # DPHY Skip timing
    board.WriteI2C(serAddr, 0x42, 0x42) # Set to dec = 33

    允许屏幕生成正常(原始图纸)的配置是什么?

    此致!

    Miguel

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

    你(们)好

    您能否确认 SoC 的正确 DSI 频率和速率以及显示时序规格?

    我不确定505.35 MHz 是正确的费率还是580 MHz 是正确的费率。

    我相信、我们需要将 SER/DES PCLK 速率与 DSI 速率匹配、并将 SER/DES 的 PCLK 与显示屏匹配。

    谢谢!

    Miguel

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

    1、这是 SoC 的 DSI 频率和速率以及显示时序规格

    disp_timings1:display-timing{

         dsi1_timing0:timing0{
           时钟频率=<148500000>;
           hactive =<1920>;
           Vactive =<1080>;
           后沿=<148>;
           前沿=<88>;
           HSYNC-LEN =<44>;
           vback porch=<4>;
           vfront porch=<36>;
           vsync-len =<5>;
           Pixelclk-active =<0>;
           HSYNC-ACTIVE =<0>;
           VSYNC-ACTIVE =<0>;
           停用=<0>;
         };
       };

       // (1 << 0)- MIPI_DSI_MODE_VIDEO                 /*视频模式*/
       // (1 << 1)- MIPI_DSI_MODE_VIDEO_BURST         /*视频突发模式*/
       // (1 << 2)- MIPI_DSI_MODE_VIDEO_SYNC_PULSE     /*视频脉冲模式*/
       // (1 << 3)- MIPI_DSI_MODE_VIDEO_AUTO_VERT     /*启用自动垂直计数模式*/
       // (1 << 4)- MIPI_DSI_MODE_VIDEO_HSE             /*在 vsync 脉冲和 v-porch 区域中启用 HSYNC 结束数据包*/
       // (1 << 5)- MIPI_DSI_MODE_VIDEO_HFP             /*禁用前沿区域*/
       // (1 << 6)- MIPI_DSI_MODE_VIDEO_HBP             /*禁用后沿区域*/
       // (1 << 7)- MIPI_DSI_MODE_VIDEO_HSA             /*禁用 HSYNC-ACTIVE 区域*/
       // (1 << 8)- MIPI_DSI_MODE_VSYNC_FLUSH         /*在 VSYNC 脉冲上刷新显示 FIFO */
       // (1 << 9)- MIPI_DSI_MODE_EOT_PACKET        /*在 HS 模式下禁用 EOT 数据包*/
       // (1 << 10)- MIPI_DSI_CLOCK_NON_CONTINUOUS/*  器件支持非连续时钟行为(DSI 规范5.6.1)*/
       // (1 << 11)- MIPI_DSI_MODE_LPM              /*以低功耗传输数据*/
       DSI、flags =<(1 << 0)|(1 << 1)|(1 << 11)|(1 << 9))>;
       
       // 0 - MIPI_DSI_FMT_RGB888
       // 1 - MIPI_DSI_FMT_RGB666
       // 2 - MIPI_DSI_FMT_RGB666_PACKED
       // 3 - MIPI_DSI_FMT_RGB565
       DSI、format =<0>;

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

    感谢您提供这些信息。 我会重新计算预期的编程 DSI clk 时序、并在此处为您提供反馈 .

    现在总结一下、我看到配置已成功:

    941AS SER [内部 PATGEN]--> FPD-Link --> 948 -->显示(成功显示色条-无花屏)

    您能否确认一下、以便我们重点介绍 SoC DSI TX --> 941AS DSI RX 控制路径?

    谢谢!

    Miguel

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

    1941AS SER [内部 PATGEN]--> FPD-Link --> 948 -->显示(成功显示色条-无花屏)

    就像这样。 它的工作原理是这样

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

    您好!

    clock-frequency =<148500000>;
           hactive =<1920>;
           Vactive =<1080>;
           后沿=<148>;
           前沿=<88>;
           HSYNC-LEN =<44>;
           vback porch=<4>;
           vfront porch=<36>;
           vsync-len =<5>;
           Pixelclk-active =<0>;
           HSYNC-ACTIVE =<0>;
           VSYNC-ACTIVE =<0>;
           取消激活=<0>;
    1、连续 DSI CLK
    2、单 DSI 输入、双输出
    3、非交替行3D 模式
    4、4个 DSI 通道
    5、DSI 速率(Mbps):290Mbps [/报价]

    使用148.5 MHz 和4个数据通道的 PCLK、我认为 DSI 频率应匹配以下内容:

    fDSI =(fPCLK * 4)/12 = 148.5 MHz * 3 = 445.5 MHz

    DSI 数据速率= fDSI x 2 = 891Mbps

    在本例中、TSKIP 计算为

    TSKIP_CNT =舍入(65 * 0.4455 GHz - 5)= 24

    您是否能够尝试将 SoC 配置为 每个通道输出此891Mbps 数据速率、并更改此 Tskip 值?

    board.WriteI2C(serAddr, 0x40, 0x04) # DSI/DPHY Port 0 Registers
    board.WriteI2C(serAddr, 0x41, 0x05) # DPHY Skip timing
    board.WriteI2C(serAddr, 0x42, 0x30) # Set to decimal value 24

    由于时钟是连续的、我假设 SoC 在非突发模式下输出、如果我错了、请更正-突发模式完全需要不同的配置。

    此致!

    Miguel

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

    1、应采用非突发模式,由于紧迫的开发任务,暂时使用这套硬件仅取代941和948 ,被其他品牌的串行芯片通常能输出1920 × 1080屏幕,并正常显示,使用 TI 941/948无论如何调整屏幕都是显示屏,但色条可以正常显示。 联系当地的 FAE 以获取支持、他们不支持线下、只能依赖在线技术支持

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

    您好!

    您能告诉我您联系过的当地 FAE 吗? 我们将与他们讨论如何为该调试提供专用支持。 在此期间、我将继续为您提供支持。

    是否 对消息来源实施了之前的任何建议?

    此致!

    Miguel

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

    我们联系了 Colt-Zhang ,并把问题反馈给他,当时,请他做技术支持。 TI FAE 的回复说、我们需要自行阅读手册、对问题没有给予任何支持。 之后、我们只能始终在线寻求支持

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

    感谢您的耐心。

    我将准备一个演示文稿、其中汇总了之前的所有数据和接下来的调试步骤。 我会将此信息传达给您、以查看是否可以提供现场支持、但我还将在此分享此支持调试流程、请允许我将此指南放在一起。

    此致!

    Miguel