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.

[参考译文] DS90UB960-Q1:DS90UB960-Q1、帧同步错误、流超时

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/920964/ds90ub960-q1-ds90ub960-q1-frame-sync-error-stream-time-out

器件型号:DS90UB960-Q1

您好~团队。

使用 DS90UB953 *4EA + DS90UB960应用程序的客户发生帧同步错误(流超时),如下所示。 您是否会建议如何解决?

[2008.433460]
just4kox CSI_fmts [0].code = 0x00002011
[2008.439532]
just4kox CSI_fmts [1].code = 0x0000200f
[2008.490898]
just4kox CSI_fmts [0].code = 0x00002011
[2008.496998]
just4kox CSI_fmts [1].code = 0x0000200f
[2008.516108]
just4kox CSI_fmts [0].code = 0x00002011
[2008.522177]
just4kox CSI_fmts [1].code = 0x0000200f
[2008.540948]
just4kox CSI_fmts [0].code = 0x00002011
[2008.547072] just4kox CSI_fmts [1].code = 0x0000200f
[2008.583662] t960 3.
0030:TI960处于广播模式
[2008.839175]英特尔
ipu4 Isys 英特尔 ipu4 isys0:csi2 4接收到致命错误
[2008.846770]英特尔
ipu4 Isys 英特尔 ipu4 isys0:csi2 4错误:FIFO 溢出
[2008.854353]英特尔
ipu4 Isys 英特尔 ipu4 isys0:csi2 4错误:DPHY 不可恢复的同步错误
[2030.851497]英特尔
ipu4 Isys 英特尔 ipu4 isys0:流停止超时
[2030.858465]英特尔
ipu4 isys 英特尔 ipu4 isys0:s_stream TI964 4 0030 (外部
[2032.898496]英特尔
ipu4 isys 英特尔 ipu4 isys0:流关闭超时
[2032.905579]英特尔
ipu4 isys 英特尔 ipu4 isys0:英特尔 IPU4 CSI 2 4捕获0:清理活动队列4
[2032.905586]英特尔
ipu4 Isys 英特尔 ipu4 isys0:英特尔 IPU4 CSI 2 4捕获0:清理活动队列3
[2032.905593]英特尔
ipu4 Isys 英特尔 ipu4 isys0:英特尔 IPU4 CSI 2 4捕获0:清理活动队列2
[2032.905599]英特尔
ipu4 Isys 英特尔 ipu4 isys0:英特尔 IPU4 CSI 2 4捕获0:清理活动队列1
[2032.917431]英特尔
ipu4 isys 英特尔 ipu4 isys0:s_stream TI964 4 0030 (外部
[2034.945512]英特尔
ipu4 Isys 英特尔 ipu4 isys0:流停止超时
[2034.952475]英特尔
ipu4 isys 英特尔 ipu4 isys0:s_stream TI964 4 0030 (外部
[2036.992494]英特尔
ipu4 isys 英特尔 ipu4 isys0:流关闭超时
[2036.999669]英特尔
ipu4 isys 英特尔 ipu4 isys0:英特尔 IPU4 CSI 2 4捕获2:清理活动队列3
[2036.999676]英特尔
ipu4 isys 英特尔 ipu4 isys0:英特尔 IPU4 CSI 2 4捕获2:清理活动队列2
[2036.999682]英特尔
ipu4 isys 英特尔 ipu4 isys0:英特尔 IPU4 CSI 2 4捕获2:清理活动队列1
[2036.999688]英特尔
ipu4 isys 英特尔 ipu4 isys0:英特尔 IPU4 CSI 2 4捕获2:清理活动队列0
[2039.03939391]英特尔
ipu4 Isys 英特尔 ipu4 isys0:流停止超时
[2039.046392]英特尔
ipu4 isys 英特尔 ipu4 isys0:s_stream TI964 4 0030 (外部
[2041.150351]英特尔
ipu4 isys 英特尔 ipu4 isys0:流关闭超时
[2041.157440]英特尔
ipu4 isys 英特尔 ipu4 isys0:英特尔 IPU4 CSI 2 4捕获3:清理活动队列4
[2041.157447]英特尔
ipu4 isys 英特尔 ipu4 isys0:英特尔 IPU4 CSI 2 4捕获3:清理活动队列3
[2041.157454]英特尔
ipu4 isys 英特尔 ipu4 isys0:英特尔 IPU4 CSI 2 4捕获3:清理活动队列2
[2041.157459]英特尔
ipu4 isys 英特尔 ipu4 isys0:英特尔 IPU4 CSI 2 4捕获3:清理活动队列1

下面是 DS90UB960寄存器。

{0x32、0x01}、
0x01}、//*选择 CSI 端口0
{0x4c、0x01}、
/*选择 RX 端口0
{0x58、0x5D}、
{0x5c、0xe8}、
{0x6d、0x7C}、
0x7C}、/* FPD3_MODE (1100 -> DS90UB953 Q1)*
{0xD5、0xF0}、
{0x7c、0x01}、
/*使用 RAW10 8位模式
{0x70、0x2B}、
/* YUV422_8
{0x71、0x2C}、
{0x72、0xE4}、
{0xd2、0x84}、
{0x4c、0x12}、//选择 RX 端口1 */
{0x58、0x5D}、
{0x5c、0xe8}、
{0x6d、0x7C}、
{0xD5、0xF0}、
{0x7c、0x01}、//使用 RAW10 8位模式*/
{0x70、0x2B}、/* YUV422_8 *
{0x71、0x2C}、
{0x72、0x39}、
{0xd2、0x84}、
{0x4c、0x24}、/*选择 RX 端口2*/
{0x58、0x5D}、
{0x5c、0xe8}、
{0x6d、0x7C}、
{0xD5、0xF0}、
{0x7c、0x01}、//使用 RAW10 8位模式*/
{0x70、0x2B}、/* YUV422_8 *
{0x71、0x2C}、
{0x72、0x4e}、
{0xd2、0x84}、

{0x4c、0x38}、//选择 RX 端口3 */
{0x58、0x5D}、
{0x5c、0xe8}、
{0x6d、0x7C}、
{0xD5、0xF0}、
{0x7c、0x01}、//使用 RAW10 8位模式*/
{0x70、0x2B}、/* YUV422_8 *
{0x71、0x2C}、
{0x72、0x93}、
{0xd2、0x84}、
{0xB9、0x18}、
{0x42、0x71}、
//{0x10、0x59}、
{0x10、0x91}、
{0x19、0x0A}、
{0x1A、0xD7}、
{0x1B、0x61}、
{0x1C、0xA0}、
{0x18、0x01}、
{0x21、0x01}、
{0x20、0x00}、

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

    您好 Jin_suk、

    根据 FIFO 溢出、这看起来像是一个潜在的带宽错误。 您能否向我发送每个传感器的分辨率、数据类型和 fps? 每个 CSI-2 TX 端口的总带宽可用性为6.4Gbps。 如果您仅使用一个端口、则每个传感器的平均带宽为1.6 Gbps 或更低。

    此致、

    Carrie

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

    您好~ Carrie。

    请参阅以下信息、并让我提供您的反馈。

        分辨率:1280 X 720

        2.数据类型:YUV422

        3. FPS:30 FPS

    谢谢。

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

    您好、Jin-Suk、

    计算精确带宽时、我还需要了解一些其他参数:YUV422 8或10位、垂直消隐和数据速率。

    假设垂直消隐为10%、数据速率为6.4Gbps、YUV 8位模式、则输出带宽为1.12Gbps、输入带宽为4*486.6Mbps 或1.9Gpbs。 由于您的输入带宽超过了您的输出带宽、因此缓冲器会过流、并且很可能是错误的来源。

    此致、

    Carrie

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

    大家好、我是这个项目的软件工程师。

     此问题间歇性出现。

    大部分情况下、工作正常。

    当电路板通电时、某些摄像头无法正常工作。

    而且、SoC 的带宽足够大。

    该 SoC 可以处理 FHD。

    因此、我认为带宽不是问题。

    此致、

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

    大家好、我是这个项目的软件工程师。

    此问题间歇性出现。
    为电路板通电时、某些摄像头不会随机工作。
    SoC 的带宽就足够了。
    该 SoC 可以处理 FHD。

    因此、我认为带宽不是导致此问题的原因。

    此致、

    您好、Jin-Suk、

    计算精确带宽时、我还需要了解一些其他参数:YUV422 8或10位、垂直消隐和数据速率。

    假设垂直消隐为10%、数据速率为6.4Gbps、YUV 8位模式、则输出带宽为1.12Gbps、输入带宽为4*486.6Mbps 或1.9Gpbs。 由于您的输入带宽超过了您的输出带宽、因此缓冲器会过流、并且很可能是错误的来源。

    此致、

    Carrie

    [/引述]

    Carrie Kemmet 说:

    您好、Jin-Suk、

    计算精确带宽时、我还需要了解一些其他参数:YUV422 8或10位、垂直消隐和数据速率。

    假设垂直消隐为10%、数据速率为6.4Gbps、YUV 8位模式、则输出带宽为1.12Gbps、输入带宽为4*486.6Mbps 或1.9Gpbs。 由于您的输入带宽超过了您的输出带宽、因此缓冲器会过流、并且很可能是错误的来源。

    此致、

    Carrie

    [/报价]

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

    您好、Hyounjin、

    960输入处四个传感器的总带宽必须小于960的总带宽。 否则缓冲区将溢出。 即使 SoC 具有足够的带宽、问题也可能由解串器上的带宽可用性引起。

    您的通道数和通道速度设置(分别在 CSI_CTL 和 CSI_PLL_CTL 寄存器中)是多少?

    我通过乘以(水平像素*垂直像素*帧速率*位像素)计算了960的输入带宽。 每个传感器的带宽为488Mbps、因此总带宽为1.95Gbps。 如果 CSI-2输出带宽小于该带宽、则960中的缓冲器可能会溢出。 有关用于计算输出带宽的公式、请参阅第7.4.20节。 7.4.20.1中的示例可用于帮助指导计算、因为您还有4个相同的传感器。

    此致、

    Carrie

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

    您好、Carrie

    您的意思是、TI960不足以用于四通道高清摄像头?

    我听说此芯片支持高清摄像头。
    我想知道、这是对的。

    此外、下面是板载 CSI_CTL、CSI_PLL_CTL 寄存器的值。
    CSI_CTL:0x01
    CSI_PLL_CTL:0x02

    此致、

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

    您好、Hyounjin、

    960具有2个 CSI 端口、支持4个60Hz 全高清1080p/2MP 分辨率。 如果您使用1个 CSI 端口、它可以在30Hz 下支持4个全高清1080p/2MP 分辨率。 在输入数据速率较慢或较快的情况下、该器件可灵活地对输出通道配置进行编程。

    寄存器的配置将影响960可支持的输出带宽、输出带宽可降至1通道、速率为400Mbps。 更确切地说、960的每个端口的输出带宽范围为400Mbps 至6.4Gbps、具体取决于寄存器配置。

    您的寄存器配置可实现高达3.2Gbps 的输出带宽、因此应该足够了。 我目前正在处理您的问题、并将在明天向您提出更多建议。

    谢谢、

    Carrie

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

    早上好、

    由于您使用的是 RAW10模式、因此每个端口的 VC-ID 都是从寄存器0x70读取的。 尝试为每个 RX 端口在寄存器中放置不同的值。 对于寄存器0x70中的每个值、请确保保留前6位(0x2B)、这是 RAW10数据类型的标准值。

    {0x4C、0x01} // RX 端口0

    {0x70、0x2B} // VC-ID 0 | RAW10 DT

    {0x4C、0x12} // RX 端口2

    {0x70、0x6B} // VC-ID 1 | RAW10 DT

    {0x4C、0x24} // RX 端口2

    {0x70、0xAB} // VC-ID 2 | RAW10 DT

    {0x4C、0x38} // RX 端口3

    {0x70、0xEB} // VC-ID 3 | RAW10 DT

    此外,确保 CSI_PLL_CTL 寄存器具有与接收器预期 CSI 数据速率对应的正确 TX 速度配置。 此外、请确保在 CSI_CTL 中配置了正确数量的通道。

    如果仍有问题、请向我发送960的完整寄存器转储、我可以更仔细地查看您的配置。

    此致、

    Carrie

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

    您好、Carrie

    我在向您提出建议后进行了测试。
    结果与之前的结果几乎相同。

    希望您检查我的寄存器值。

    下面读取寄存器值。
    REST 寄存器具有默认值。

    此致、


    ================================================================
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x01
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x02
    0x1E
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x03
    0x40
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x04
    0xD0
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x05
    0x01
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x06
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x07
    0xFE
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x08
    0x1c
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x09
    0x10
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x0a
    0x7a
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x0B
    0x7a
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x0c
    0x0F
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x0d
    0x09
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x0E
    0x1d
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x0F
    0xFF
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x10
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x11
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x12
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x13
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x14
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x15
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x16
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x17
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x18
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x19
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x1a
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x1b
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x1c
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x1d
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x1E
    0x04
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x1f
    0x02
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x20
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x21
    0x01
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x22
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x23
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x24
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x25
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x26
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x27
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x28
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x29
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x2a
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x2b
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x2C
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x2D
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x2e
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x2F
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x30
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x31
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x32
    0x01
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x33
    0x01
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x34
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x35
    0x01
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x36
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x37
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x38
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x39
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x3a
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x3b
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x3c
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x3D
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x3e
    0x00
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x3f
    0x00


    GR-MRB-64:~# i2cset -f -y 3 0x30 0x4C 0x01
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x58
    0x5d
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x5C
    0xe8
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x6D
    0x7c
    GR-MRB-64:~# i2cget -f -y 3 0x30 0xD5
    0xf0
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x7C
    0xC0
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x70
    0x2b
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x71
    0x2C
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x72
    0xe4


    GR-MRB-64:~# i2cset -f -y 3 0x30 0x4C 0x12
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x58
    0x5d
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x5C
    0xe8
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x6D
    0x7c
    GR-MRB-64:~# i2cget -f -y 3 0x30 0xD5
    0xf0
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x7C
    0xC0
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x70
    0x6b
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x71
    0x2C
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x72
    0x39


    GR-MRB-64:~# i2cset -f -y 3 0x30 0x4C 0x24
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x58
    0x5d
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x5C
    0xe8
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x6D
    0x7c
    GR-MRB-64:~# i2cget -f -y 3 0x30 0xD5
    0xf0
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x7C
    0xC0
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x70
    0xab
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x71
    0x2C
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x72
    0x4e


    GR-MRB-64:~# i2cset -f -y 3 0x30 0x4C 0x38
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x58
    0x5d
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x5C
    0xe8
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x6D
    0x7c
    GR-MRB-64:~# i2cget -f -y 3 0x30 0xD5
    0xf0
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x7C
    0xC0
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x70
    0xeb
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x71
    0x2C
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x72
    0x93
    GR-MRB-64:~# i2cget -f -y 3 0x30 0xB9
    0x33
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x42
    0x71
    GR-MRB-64:~# i2cget -f -y 3 0x30 0x10
    0x00

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

    您好!

    通常、您的寄存器配置看起来不错。 请确保不要对任何保留的寄存器进行编程。 尝试将端口特定寄存器0x5C 中的从别名保留为其默认值。 换言之、不要更改每个端口的从别名。 它们都应该是不同的值。

    如果这不会产生结果、我们可以开始使用中断等片上工具、也可以使用图形生成功能来单独验证和调试布局的各个方面。

    此致、

    Carrie