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:DS90UB954和两个 DS90UB953的图像捕获过程中出现错误

Guru**** 2457760 points
Other Parts Discussed in Thread: DS90UB954-Q1

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1486508/ds90ub954-q1-error-during-image-capture-process-ds90ub954-and-two-ds90ub953

器件型号:DS90UB954-Q1

工具与软件:

你好。


即我们的配置。


DS90UB954和两个 DS90UB953连接到
通过同轴电缆与电源连接。
IMX412摄像头连接到每个 DS90UB953。
DS90UB954的 CSI 输出连接到 Jetson Orin Nano 模块。
使用了两条 CSI 线
通过 gstreamer 执行图像捕获
启动两个通道。

gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! 'video/x-raw(memory:NVMM), width=(int)1920,height=(int)1080,framerate=30/1' ! nvvidconv flip-method=0 ! 'video/x-raw, format=(string)I420' ! xvimagesink -e --verbose | gst-launch-1.0 nvarguscamerasrc sensor-id=1 ! 'video/x-raw(memory:NVMM), width=(int)1920,height=(int)1080,framerate=30/1' ! nvvidconv flip-method=0 ! 'video/x-raw, format=(string)I420' ! xvimagesink -e –verbose

之后一切正常。
此外,它可以工作6-18小时没有错误。
然后可能发生故障,其中图像开始抖动,像回波得到的东西。
我们通过读取 DS90UB954状态寄存器研究了该问题。


RX_PORT_STS2 (地址0x4E)返回值0x14
表示错误 Buffer_error 位4
也可以是 RX_PORT_STS2 (地址0x4E)= 0x1C -> CSI_ERROR

问题:

请告诉我什么可能是缓冲区溢出的原因?
是否可以通过寄存器重置此溢出?

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

    你好、Ivan

    当数据无法 比接收速度更快地发送到 CSI 输出端口时、缓冲区将溢出。 因此、这表明聚合来自多个传感器的过多数据或者接收到的线路长度超出缓冲区可存储的长度存在问题。
    DS90UB954-Q1的每个端口都有一个16KB 的线路缓冲器(FIFO)、因此它通常可以支持这种格式 、只要进入视频线路的平均速率足够慢、能够确保线路缓冲器不会溢出 DES (DES 还取决于配置的 CSI-2输出速率(这将决定 FIFO 消耗速率)以及 CSI-2输入侧的 CSI-2通道速率/线路时序(这将决定 FIFO 的填充速率)。

    为了能够准确计算、我们需要以下详细信息:

     成像仪提供的数据类型或每像素位数是多少?

    使用的 CSI 输出通道速度是多少?  

    您是否在 DES 上使用同步转发或轮询转发?

    连接到 DES 的 REFCLK 的值是多少?

    您的 SER 是在反向通道同步模式上运行、还是在使用外部振荡器上运行? 那么它的价值是什么?

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

    你好、 Hamzeh Jaradat

    非常感谢您的答复。

    我现在将回答您的问题。

     来自成像仪的数据类型或每像素位数是什么?

    我们使用 RAW10 (10、位)数据类型。

    使用的 CSI 输出通道速度是多少?  [报价]

    我们使用1.6Gbps 的最高速度和2个数据通道。

    您是在 DES 上使用同步转发还是轮询转发?

    反向通道

    连接到解串器的 REFCLK 的值是什么?

    我们使用25 MHz 石英振荡器

    您的 SER 是以反向通道同步模式运行、还是使用外部振荡器? 那么值是什么?[/QUOT]

    使用反向通道同步进行补偿

    我们的 IMX412传感器使用来自外部24 MHz 晶体振荡器的时钟

    缓冲器溢出的正态。

    视频捕获可以运行4小时或18小时而不会出现故障。

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

    伊凡、您好!

    正如我说过的、这可能是带宽问题或不稳定的传入分辨率。

    您能否提供每个摄像机的分辨率和帧速率? 我刚刚意识到它没有提供。

    我可以计算 DES 处的输入和输出数据速率/频带宽度、并查看这是否与之相关。  

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

    你好,谢谢你的答复。

    您是否需要提供每款摄像机的分辨率和帧速率? i [/报价]

    两个通道的帧速率均为30fps。
    两个通道上也具有1920x1080分辨率

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

    伊凡、您好!

    分辨率和数据速率看起来正常、不应导致任何缓冲区错误。

    是否看到任何其他错误?

    您能否从 SER 和 DES 提供寄存器转储以应对良好情况和故障情况?

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

    你好。

    寄存器读取方法如下。
    首先、我们读取所有 DS90UB954寄存器和两个 DS90UB953通道。
    通过 I2C 读取寄存器。
    如果寄存器中的值不为零、我们将它写入日志。
    然后、对寄存器进行循环读取、并将当前值与之前读取的值进行比较。
    如果从寄存器读取的值发生了变化、我们将其输出到日志中。
    我正在附加一个日志、其中没有错误 ds90-log.txt。

    字符串格式。


    [00:28:10.390] 954-:DEVICE_STS [0x04]=0xDF
       [00:28:10.390]  -当前时间
       954           -正在读取 DS90UB954寄存器
       DEVICE_STS  -寄存器名称
       [0x04]         -寄存器地址
       0xDF          -读取值

    对于 DS90UB953寄存器、格式略有不同


    [00:28:10.395] 953-:GENERAL_STATUS [0x52]=0x45:0x45
       [00:28:10.390]       -当前时间
       953.               -正在读取 DS90UB953寄存器
       GENERAL_STATUS -寄存器名称
       [0x52]             -寄存器地址
       0x45:0x45          -读取值通道0:通道1

    由于我们读取了两个通道 DS90UB953、因此最后​​读取寄存器的两个值
    在 error-ds90-log.txt 文件中出现缓冲区溢出错误。


    发生错误时、我们尝试在以下寄存器中执行数字复位0:
    DS90UB954 -> Reset[0x01]:DIGITAL_RESET0 = 1
    DS90UB953[0、1]->RESET_CTL[0x01]:DIGITAL_RESET_0 = 1
    这并不能解决我们的问题。


    告诉我是否可以在不重新启动图像捕获的情况下以某种方式重置缓冲区。

    e2e.ti.com/.../ds90_2D00_log.txte2e.ti.com/.../error_2D00_ds90_2D00_log.txt

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

    伊凡、您好!

    当错误发生、然后消失并再次出现时、您是否在设置中采取了任何措施来使其消失?

    您是否测试了不同的 UB954板? 您是否看到相同的问题?

    如果您断开一个摄像头并仅保留一个摄像头、是否会看到问题?

    您是否知道成像仪传感器将 CSI 数据发送到 SER 的信道速度是多少?  是否有办法降低这个速度? 因为您要传输的数据格式应该只需要每通道约350Mbps。 我想这里发生的情况是、传感器以最少的线间 LP11时间快速发送整个帧、然后在下一帧之前长时间处于空闲状态。 相反、通过降低线速率、同时仍保持相同的像素和帧速率、减少垂直消隐会更好。 954还配置为每通道输出800Mbps、但与传感器输出的速度相比、954侧的 DPHY 时序参数可能略慢、从而导致954发送线路的速度与帧中多条线路的速度之间的偏移。 造成缓冲区溢出。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当错误出现然后消失并再次出现时、您是否在设置上做了任何事情来使它消失?

    不,我们不做任何事情后的错误出现,你需要重新启动视频捕获或重新启动.

    您是否测试过不同的 UB954板? 您是否看到相同的问题?

    我们在使用另一个电路板时也存在同样的问题。

    如果您断开一个摄像头的连接并只保留一个摄像头、您会看到这个问题吗?

    我们对一台摄像头的测试时间不够长、但我们从未看到任何问题。

    您知道成像仪传感器将 CSI 数据传输到 SER 的通道速度是多少吗?  是否有办法降低此速度?

    我们还无法对传感器的传输速度说任何话。

    我们正在研究降低速度的问题。

    在这种情况下、我们的传感器以1920x1080 30帧的分辨率在2行 RAW10位上传输流。
    我们不能说 CSI - CER 的实际速度是多少。
    是否可以通过读取 DS90UB953寄存器来确定这一点?

    954也配置为输出800Mbps/通道

    我们的线速为1600 Mbps。

    我们尝试使速度为800、但在开启时具有缓冲器溢出效应。

    最好能够在工作期间复位缓冲器。
    您知道这是不可能的吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否可以通过读取 DS90UB953寄存器来确定这一点?

    否、无法从 SER 寄存器读取确定通道速度。

    最好能够在工作过程中重置缓冲区。
    您明白这是不可能的吗?

    正确。 您不能重置缓冲器。

    正如我所说、我认为这是成像仪/SER 通道速度问题。 请尝试降低通道速度并检查成像仪传感器上的消隐长度