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.

[参考译文] AM625:csi2rx 30101000配置外部 DPHY:-95失败

Guru**** 2455560 points
Other Parts Discussed in Thread: AM625

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1482176/am625-csi2rx-30101000-failed-to-configure-external-dphy--95

器件型号:AM625

工具与软件:

您好!

我正尝试将摄像头驱动程序集成到 AM625板。 但似乎有一个问题。 数据表中显示摄像头串行接口(CSI - Rx)

支持高达1、2、3或4的数据通道模式
1.5Gbps


但是、当我尝试将链路频率设置为:  

```μ A
Link-frequencies =/bits/ 64 <1500000000>;
```μ A

CSI-Rx 驱动程序会向我显示以下错误:

```μ A
[ 29.567988] cdns-csi2rx 30101000.csi-bridge:link_freq = 1500000000
[ 29.579231] cdns-csi2rx 30101000.csi-bridge:无法配置外部 DPHY:-95
```μ A

我将 link_freq 值降低到1200000000、这似乎是我可以设置的最大值。 但是、这个值根本不适合我、因为我们的摄像头输出1920x1280 30fps UYVY 数据。 是否有任何方法可以将链路频率设置为1.5Gbps 或根本不可能?

谢谢。

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

    您好!

    链路频率与 CSI 数据通道速度不同。  对于 1920x1280 30fps UYVY 数据的摄像头输出、它不会每通道使用1.5Gbps。 您需要查看传感器数据表或驱动程序、并查看链接频率应该是多少。 例如、IMX219配置为具有456MHz 链路频率:

    https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm64/boot/dts/ti/k3-am62x-sk-csi2-imx219.dtso?h=ti-linux-6.1.y#n49

    该频率支持2MP@30fps 原始10位数据、或 8MP@15fps 原始10位数据。

    此致、

    建中

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

     许建中您好!

    我们使用的是 GMSL2接口 使用的预定义输出频率 1500Mbps .

    根据以下公式:

    link_freq =(pixel_rate * bits_per_sample)/(2 * nr_of_Lanes)

    假定我们的 像素速率为187,500,000 、A 16位采样深度 2个通道 、预期的链路频率应该是 750,000,000 (750 MHz) . 但是、将链路频率设置为此值时、我们无法从摄像头获取任何输出帧。
    有趣的是、当降低 CSI PHY 在上 子系统 最终目的 1200Mbps 和设置 链路频率达到600,000,000 (600 MHz) ,我们确实得到了一个输出,但图像是模糊的。 这种不一致性令人困惑、如果您能提供解决此问题的指导、我们将不胜感激。
    您能帮助我们理解为什么会出现这种情况、正确的配置应该是什么吗?

    谢谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    假定这是我们的 像素速率为187,500,000 、A 16位采样深度 2个通道 、预期的链路频率应该是 750,000,000 (750 MHz) . [报价]

    如果像素速率为187.5MPixel/s、则意味着帧速率必须为60fps。 根据此像素速率、链路频率为750MHz、这意味着数据速率为 每通道1.5Gbps。

    但是、将链路频率设置为此值时、无法从相机获得任何输出帧。

    根据 MIPI 规范、当数据速率高于1.5Gbps 时、需要使用一个校正序列。 您是否配置了 GMSL2以发送校正序列?

    令人欣慰的是、降低 CSI PHY 在上 子系统 最终目的 1200Mbps 和设置 链路频率达到600,000,000 (600 MHz) ,我们确实得到了一个输出,但图像是模糊的。

    两个通道的速率为1.2Gbps/通道不足以传输 每像素16位的187.5MPixel。 这可能是图像模糊的原因。  

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

    大家好@徐建中


    如果像素速率为187.5MPixel/s、则意味着帧速率必须为60fps。 基于此像素速率、链路频率为750MHz、这意味着数据速率为 每通道1.5Gbps。[/报价]

    由于我的 GMSL 配置为每通道1.5Gbps、因此这应该是正确的设置、对吧? 如果是、那么我可能会怀疑我这边存在硬件问题。


    根据 MIPI 规范、当数据速率高于1.5Gbps 时、需要使用校正序列。 您是否将 GMSL2配置为发送校正序列?[/QUOT]

    由于我每通道的运行速率恰好为1.5Gbps、因此我假设不需要校正序列。 我对吗?

    我将探测 MIPI 信号、然后可以给您回复。 同时、我可以检查用于 MIPI 调试的任何存储器转储寄存器吗? 如果您能分享一些有用的建议、我将不胜感激。



    谢谢。

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

    这两个问题您是正确的。

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

    尊敬的建中:

    我检查了硬件、发现在以每通道1.5Gbps 的速率运行 GMSL 时出现了一些不稳定的情况。 为了解决这个问题、我将 GMSL 速度降低到了每通道800Mbps、并相应地调整了像素时钟和链路频率。 完成此更改后、我能够成功捕获帧。

    但是、当我尝试使用以下命令捕获100帧时:


    ```μ A
    v4l2-ctl --device /dev/video-isx021-cam0 --set-fmt-video=width=1920、height=1280、pixelformat=UYVY --stream-mmap --stream-to-frame.raw --stream-count=100
    ```μ A
    我观察到捕获了一些帧、但随后电路板似乎出现延迟并开始丢弃帧。 输出如下所示:

    ```μ A
    <<<<<<<<<<<<<<<<<<<< 8.82 fps
    2453504 !=4915200
    < 2.95fps
    4096!=4915200
    <4096 != 4915200
    < 3.20 fps
    4096!=4915200
    <4096 != 4915200
    < 2.79fps
    4096!=4915200
    <4096 != 4915200
    <4096 != 4915200
    <4096 != 4915200
    <4096 != 4915200
    <4096 != 4915200
    <4096 != 4915200
    <4096 != 4915200
    <4096 != 4915200
    <4096 != 4915200
    <4096 != 4915200
    <4096 != 4915200
    <4096 != 4915200
    <4096 != 4915200
    <4096 != 4915200
    <4096 != 4915200
    ...
    ...

    有趣的是、这个问题确实存在 不会 当我直接流式传输到 RAM 而不保存输出文件时发生:

    ```μ A
    v4l2-ctl --device /dev/video-isx021-cam0 --set-fmt-video=width=1920、height=1280、pixelformat=UYVY --stream-mmap
    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.00 fps
    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.00 fps
    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.00 fps
    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.00 fps
    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.00 fps
    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.00 fps
    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.00 fps
    ```μ A

    将数据写入文件似乎造成瓶颈或引入延迟、导致帧丢失。 您对可能发生这种情况的原因有什么想法、或者有什么解决建议吗?

    谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我观察到一些帧被捕获、但开发板似乎出现延迟并开始丢弃帧。 输出如下所示:
    [报价]

    将图像写入 SD 卡上的文件时应该是这样。 写入 SD 卡的速度受到限制。

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

    尊敬的 建中:

    实际上这可能是问题所在、我注意到我的 SD 卡上的空间也很小。  

    感谢您的支持、我们现在可以结束本主题。