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.

[参考译文] DS90UB954-Q1:MIPI 通道的变化会导致图像不完整

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

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1126947/ds90ub954-q1-the-change-of-mipi-channel-leads-to-incomplete-image

器件型号:DS90UB954-Q1
主题中讨论的其他器件:ALP
IMx8qm mipi CSI <--- >ds90ub954 <---- > ds90ub953

                              <---- >ds90ub953

 当 ds90ub953的配置处于图形模式并且 ds90ub954的物理数据通道的配置为4时、采集的图像具有黑色边缘。

  当 ds90ub954的物理数据通道为2时、显示正常

当 MIPI 物理数据通道为4时的寄存器设置

 {0x33、0x43}、  /* 4通道*/  

 {0x1F、0x00}、  /*每通道1.6Gps CSI 时钟*  

2.  MIPI 物理数据通道为2时的寄存器设置

 {0x33、0x63}、  /* 2通道*/  

 {0x1F、0x00}、  /*每通道1.6Gps CSI 时钟*  

  ds90ub953保持以下配置:

{0x01、0x07}、
{0x02、0x73}、
{0x03、0x5b}、
{0x05、0x0B}、

{0xB0、0x00}、
{0xB1、0x01}、
{0xB2、0x01}、

{0xB1、0x02}、
{0xB2、0x34}、

{0xB1、0x03}、
{0xB2、0x1E}、  

{0xB1、0x04}、
{0xB2、0x0F}、

{0xB1、0x05}、
{0xB2、0x00}、

{0xB1、0x06}、
{0xB2、0x01}、

{0xB1、0x07}、
{0xB2、0xE0}、

{0xB1、0x08}、
{0xB2、0x04}、

{0xB1、0x09}、
{0xB2、0x38}、

{0xB1、0x0A}、
{0xB2、0x04}、

{0xB1、0x0B}、
{0xB2、0x65}、

{0xB1、0x0C}、
{0xB2、0x05}、

{0xB1、0x0D}、
{0xB2、0xC9}、

{0xB1、0x0E}、
{0xB2、0x21}、

{0xB1、0x0F}、
{0xB2、0x0A}、

{0xB1、0x10}、
{0xB2、0xAA}、

{0xB1、0x11}、
{0xB2、0x33}、

{0xB1、0x12}、
{0xB2、0xF0}、

{0xB1、0x13}、
{0xB2、0x7F}、

{0xB1、0x14}、
{0xB2、0x55}、

{0xB1、0x15}、
{0xB2、0xCC}、

{0xB1、0x16}、
{0xB2、0x0F}、

{0xB1、0x17}、
{0xB2、0x80}、

{0xB1、0x18}、
{0xB2、0x00}、

{0xB1、0x19}、
{0xB2、0x00}、

{0xB1、0x1A}、
{0xB2、0x00}、

{0xB1、0x1B}、
{0xB2、0x00}、

{0xB1、0x1C}、
{0xB2、0x00}、

{0xB1、0x1D}、
{0xB2、0x00}、

{0xB1、0x1E}、
{0xB2、0x00}、

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

    您好!

    仅需确认一下、954的寄存器0x33是对两个器件所做的唯一更改。 您能否尝试更新  CSI 每通道时钟值、例如将寄存器0x1F = 0x02设置为800Mbps。

    此致、

    Darrah

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

    图形模式生成的图像的格式和大小与摄像机的输出一致。 因此、图形模式用于调试。   实际上、摄像机还遇到了黑色边缘。的问题

    摄像机和 ds90ub953之间的连接模式为4个数据通道

    回复:

    忽略图像无效数据的前提,一个 ds90ub853的传输速率为:1920 (w) x1080 (h)*60fps *16 (YUV422-8位) /1024 / 1024 = 1898 Mbps

    ds90ub954连接2个 ds90ub953,ds90ub954的总传输速率为:1898Mbps * 2 = 3796Mbps

    如果 ds90ub954使用4个数据通道、则每个通道的传输速率  为:3796MBps/4 = 949Mbps

    如果 ds90ub954使用3个数据通道、则每个通道的传输速率  为:3796Mbps / 3 = 1265Mbps

    如果 ds90ub954使用2个数据通道、则每个通道的传输速率  为:3796MBps/2 = 1898Mbps

    因此、ds90ub954中只能使用数据通道4和3、每个数据通道需要设置为1.6Gbps。

    将 ds90ub954与2个数据通道搭配使用会产生问题,但 很奇怪、两个通道可以正常工作,因此 3个通道和4个通道的情况。

    1. MIPI 物理数据通道为4时的寄存器设置

      {0x01、0x02}、/*重置*/
     {0xB3、0x00}、/*禁用 BIST *
     /*TX 端口0*/
     {0x33、0x43}、// 0x43 CSI 连续时钟模式、4通道启用 TX0、CSI 输出启用*
     {0x1F、0x00}、//* 0x02 (800Mbps) 0x00 1.6Gps CSI 时钟/
     {0x21、0x01}、//无复制、轮循转发*/
     {0x20、0x00}、/*转发已启用、RX0、RX1*/

    图形模式:

     

    2.  MIPI 物理数据通道为3时的寄存器设置

      {0x01、0x02}、/*重置*/
     {0xB3、0x00}、/*禁用 BIST *
     /*TX 端口0*/
     {0x33、0x53}、// 0x53 CSI 连续时钟模式、3通道启用 TX0、CSI 输出启用*
     {0x1F、0x00}、//* 0x02 (800Mbps) 0x00 1.6Gps CSI 时钟/
     {0x21、0x01}、//无复制、轮循转发*/
     {0x20、0x00}、/*转发已启用、RX0、RX1*/

    3. ds90ub953配置不变。

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

    您好!

    请注意、  在计算速率时、您应该包括消隐(同步、后沿、前沿)、而不仅仅是活动像素。 管理费用也应考虑在内(如果未知、估计为25%)、因此公式为:

    TOTH x TOV x 帧速率 x 16位/像素 x 1.25 =传输速率

    但是、仍支持使用4个通道、包括消隐/开销。  

    由于您使用的是 YUV422数据类型、因此应将块大小设置为2。 您能否将内部图形发生器的块大小从4更新为2、并查看这是否解决了问题?

    此致、

    Darrah

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

    Darrah:ć

    感谢您的回复。

    我进行了粗略计算、以确定使用了多少数据通道以及使用了多少传输速率。 将1.25的系数相乘是正确的。将结果乘以1.25系数后、使用的数据通道数和传输速率与上述分析一致。

    块大小设置错误:

    2.强制设置:

    {0xB1、0x02}、
    {0xB2、0x32}、

    显示黑色边线:

    我  猜 ds90ub954在 YUV 格式转换中存在错误、因此我测试了 RGB 格式

       3.1 ds90ub953 配置:

       

       

      {0xB0、0x00}、

      {0xB1、0x01}、
      {0xB2、0x01}、

      {0xB1、0x02}、
      {0xB2、0x33}、

      {0xB1、0x03}、
      {0xB2、0x24}、//RGB888

      {0xB1、0x04}、
      {0xB2、0x16}、

      {0xB1、0x05}、
      {0xB2、0x80}、

      {0xB1、0x06}、
      {0xB2、0x02}、

      {0xB1、0x07}、
      {0xB2、0xD0}、

      {0xB1、0x08}、
      {0xB2、0x04}、

      {0xB1、0x09}、
      {0xB2、0x38}、

      {0xB1、0x0A}、
      {0xB2、0x04}、

      {0xB1、0x0B}、
      {0xB2、0x65}、

      {0xB1、0x0C}、
      {0xB2、0x05}、

      {0xB1、0x0D}、
      {0xB2、0xC9}、

      {0xB1、0x0E}、
      {0xB2、0x21}、

      {0xB1、0x0F}、
      {0xB2、0x0A}、

      {0xB1、0x10}、
      {0xB2、0xAA}、

      {0xB1、0x11}、
      {0xB2、0x33}、

      {0xB1、0x12}、
      {0xB2、0xF0}、

      {0xB1、0x13}、
      {0xB2、0x7F}、

      {0xB1、0x14}、
      {0xB2、0x55}、

      {0xB1、0x15}、
      {0xB2、0xCC}、

      {0xB1、0x16}、
      {0xB2、0x0F}、

      {0xB1、0x17}、
      {0xB2、0x80}、

      {0xB1、0x18}、
      {0xB2、0x00}、

      {0xB1、0x19}、
      {0xB2、0x00}、

      {0xB1、0x1A}、
      {0xB2、0x00}、

      {0xB1、0x1B}、
      {0xB2、0x00}、

      {0xB1、0x1C}、
      {0xB2、0x00}、

      {0xB1、0x1D}、
      {0xB2、0x00}、

      {0xB1、0x1E}、
      {0xB2、0x00}、

      3.2  ds90ub954 数据通道为4, 显示正常、无黑边

      {0x33、0x43}、// 0x43 CSI 连续时钟模式、4通道启用 TX0、CSI 输出启用*
      {0x1F、0x00}、//* 0x02 (800Mbps) 0x00 1.6Gps CSI 时钟/

          

     3.3 ds90ub954数据通道为3, 显示屏正常、无黑边

     {0x33、0x53}、// 0x43 CSI 连续时钟模式、4通道启用 TX0、CSI 输出启用*
     {0x1F、0x00}、//* 0x02 (800Mbps) 0x00 1.6Gps CSI 时钟/

      

    4. 从测试结果来看,rgb888显示正常。 为什么 YUV 显示异常?

    5. 对于 YUV422 1920x1080x60x1.25的视频,如果两个 ds90ub953输入使用4个数据通道,ds90ub954输出是否可以使用3个数据通道?

      实际测试视频出现卡滞现象、但没有黑色边缘

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

    您好!

    您能否提供 ALP 中信息选项卡的屏幕截图? YUV 误差可能是由 ALP 而不是953引起的。 是否可以尝试使用"Registers"或"Scripting"选项卡手动启用 pat gen? 下面附加的脚本将为您的参数启用 pat gen。 您还可以通过切换"Registers"选项卡中的相应位来设置必要的寄存器。

    #Patgen YUV 1920x1080p60  8 Colorbar
    devAddr = 0x30  #update as necessary
    
    Board.WriteI2C(devAddr,0xB0,0x00) # Indirect Pattern Gen Registers
    Board.WriteI2C(devAddr,0xB1,0x01) # PGEN_CTL - enable patgen
    Board.WriteI2C(devAddr,0xB2,0x01)
    Board.WriteI2C(devAddr,0xB1,0x02) # PGEN_CFG - blocksize 2
    Board.WriteI2C(devAddr,0xB2,0x32)
    Board.WriteI2C(devAddr,0xB1,0x03) # PGEN_CSI_DI
    Board.WriteI2C(devAddr,0xB2,1E) # YUV422
    Board.WriteI2C(devAddr,0xB1,0x04) # PGEN_LINE_SIZE1
    Board.WriteI2C(devAddr,0xB2,0x0F)
    Board.WriteI2C(devAddr,0xB1,0x05) # PGEN_LINE_SIZE0
    Board.WriteI2C(devAddr,0xB2,0x00)
    Board.WriteI2C(devAddr,0xB1,0x06) # PGEN_BAR_SIZE1
    Board.WriteI2C(devAddr,0xB2,0x01)
    Board.WriteI2C(devAddr,0xB1,0x07) # PGEN_BAR_SIZE0
    Board.WriteI2C(devAddr,0xB2,0xE0)
    Board.WriteI2C(devAddr,0xB1,0x08) # PGEN_ACT_LPF1
    Board.WriteI2C(devAddr,0xB2,0x04)
    Board.WriteI2C(devAddr,0xB1,0x09) # PGEN_ACT_LPF0
    Board.WriteI2C(devAddr,0xB2,0x38)
    Board.WriteI2C(devAddr,0xB1,0x0A) # PGEN_TOT_LPF1
    Board.WriteI2C(devAddr,0xB2,0x04)
    Board.WriteI2C(devAddr,0xB1,0x0B) # PGEN_TOT_LPF0
    Board.WriteI2C(devAddr,0xB2,0x65)
    Board.WriteI2C(devAddr,0xB1,0x0C) # PGEN_LINE_PD1
    Board.WriteI2C(devAddr,0xB2,0x05)
    Board.WriteI2C(devAddr,0xB1,0x0D) # PGEN_LINE_PD0
    Board.WriteI2C(devAddr,0xB2,0xC9)
    Board.WriteI2C(devAddr,0xB1,0x0E) # PGEN_VBP
    Board.WriteI2C(devAddr,0xB2,0x21)
    Board.WriteI2C(devAddr,0xB1,0x0F) # PGEN_VFP
    Board.WriteI2C(devAddr,0xB2,0x0A)


    此致、

    Darrah

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

    您好,

    根据上述配置、仍然有黑色边线。黑色边线的可能原因是什么?

    对于使用4个数据通道的 MIPI 信号、RGB 格式视频为何正常、而 YUV 格式视频具有黑色边沿

    {0xB0、0x00}、//间接模式生成寄存器
    {0xB1、0x01}、//PGEN_CTL -启用 PATgen
    {0xB2、0x01}、
    {0xB1、0x02}、//PGEN_CFG -块大小2
    {0xB2、0x32}、
    {0xB1、0x03}、//PGEN_CSI_DI
    {0xB2、0x1E}、//YUV422
    {0xB1、0x04}、//PGEN_LINE_SIZE1
    {0xB2、0x0F}、
    {0xB1、0x05}、//PGEN_LINE_SIZE0
    {0xB2、0x00}、
    {0xB1、0x06}、//PGEN_BAR_SIZe1
    {0xB2、0x01}、
    {0xB1、0x07}、//PGEN_BAR_SIZE0
    {0xB2、0xE0}、
    {0xB1、0x08}、//PGEN_ACT_LPF1
    {0xB2、0x04}、
    {0xB1、0x09}、//PGEN_ACT_LPF0
    {0xB2、0x38}、
    {0xB1、0x0A}、//PGEN_TOT_LPF1
    {0xB2、0x04}、
    {0xB1、0x0B}、//PGEN_TOT_LPF0
    {0xB2、0x65}、
    {0xB1、0x0C}、//PGEN_LINE_PD1
    {0xB2、0x05}、
    {0xB1、0x0D}、//PGEN_LINE_PD0
    {0xB2、0xC9}、
    {0xB1、0x0E}、//PGEN_VBP
    {0xB2、0x21}、
    {0xB1、0x0F}、//PGEN_VFP
    {0xB2、0x0A}、

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

    黑色边沿可能是由计时或消隐问题/不匹配引起的。 您能否确认显示屏的活动和消隐参数、并 在启用 pat gen 后提供寄存器转储和信息选项卡的屏幕截图?

    此致、

    Darrah

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
     在双向953配置不变的情况下、使用 ds90ub960可以正常显示、并消除了 imx8qm 的采集和显示问题。 另请参阅 NXP 的 FAE、建议调整954的采样时序。
    由于硬件设计不支持 ALP 配置、因此使用 ALP 来查看寄存器配置。
    下图显示了954和953寄存器的配置:

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

    好的、我没有意识到您没有通过 ALP 直接启用 pat gen。 感谢您的寄存器转储、我将查看它们、看看是否有任何问题可能导致并需要更新。  

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

    查看寄存器值、可以看到954会报告不稳定的线路长度/计数和 CSI 错误(寄存器0x4E)。 还有长度和数据校验和错误(寄存器0x7A)。 这些错误可能表示连接有问题。 此外、您能否尝试在954上设置寄存器0x41 = 0xA9?