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.

[参考译文] AM62A7:无法通过串行器/解串器(UB960)接收帧数据

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1508589/am62a7-can-not-receive-the-frame-data-though-the-serdes-ub960

器件型号:AM62A7

工具/软件:

连接解串器和 SOC。  从这里可以看出、UB960可以接收和发送帧数据(从953生成图形)。

UB960寄存器可以正确识别帧线和帧计数。 MIPI 线路转 SOC 有输出信号。  

但 SOC Gsteramer 无法获取帧日期。 您能和我分享一下如何检查问题吗?  

如何检查 SOC 状态。 我是否可以读取任何寄存器或调试信息来检查 SOC 是否接收数据。  

以下是跟踪日志中出现的错误:

[00:01:21.000.000144]:错误:[inferenceThread:0282]无法从 GstreamerAPP 获取"输入"缓冲区:Deinit ...!!

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

    尊敬的 Meng:

    我需要更多信息来了解问题。  

    1. 您使用哪个串行器/解串器板?
    2. 如何连接摄像头?
    3. "media-ctl -p"显示了什么?
    4. 您正在运行什么命令?

    谢谢你。

    建中

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

    徐建洲:

    1.我连接相机与融合板(960)

      2. 960通过 FPDLink 与953和 Imx219连接。 SoC 通过 MIPI FPC 线路连接960
    3. 这里  显示的是"media-ctl -p"日志?

    4.现在我在设备驱动程序中创建一个虚拟摄像头节点。 删除所有 i2c 写入操作。 并在应用软件中实现960/953/imx219的所有寄存器。 现在、硬件连接没有问题。 我使用了953模式 、而不是 imx219的视频帧。 并使用 960 寄存器值进行检查。 每次更新帧计数且行数正确时、都会更新帧计数。 因为 imx219 DTS 只能启用双通道。 我按如下所示更改 imx219 DTS:



    这是从 EVM 板获得的消息:
    我有 checkroot@am62axx-EVM:/opt/edgeai-gst-apps # media-ctl -p -d /dev/media0 | grep "enabled"
    <-"cdns_csi2rx.30101000.csi-bridge":1 [已启用、不可更改]
    ->"30102000.ticsi2rx 上下文0":0 [已启用、不可更改]
    ->"30102000.ticsi2rx 上下文1":0 [已启用、不可更改]
    ->"30102000.ticsi2rx 上下文2":0 [已启用、不可更改]
    ->"30102000.ticsi2rx 上下文3":0 [已启用、不可更改]
    ->"30102000.ticsi2rx 上下文4":0 [已启用、不可更改]
    ->"30102000.ticsi2rx 上下文5":0 [已启用、不可更改]
    <-"imx219 2-003c":0 [已启用、不可更改]
    ->"30102000.ticsi2rx":0 [已启用、不可更改]
    ->"Cdns_csi2rx.30101000.csi-bridge":0 [已启用、不可更改]
    <-"30102000.ticsi2rx":1 [已启用、不可更改]
    <-"30102000.ticsi2rx":2 [已启用、不可更改]
    <-"30102000.ticsi2rx":3 [已启用、不可更改]
    <-"30102000.ticsi2rx":4 [已启用、不可更改]
    <-"30102000.ticsi2rx":5 [已启用、不可更改]
    <-"30102000.ticsi2rx":6 [已启用、不可更改]
    root@am62axx-EVM:/opt/edgeai-gst-apps # dmesg | grep -E "ticsi2rx|csi2rx|dphy|mipi"
    [ 0.382147]/bus@f0000/i2c@20020000/摄像头@3c:固定依赖周期(s)、其中/bus@f0000/ticsi2rx@30102000/CSI-bridge@30101000
    [ 0.406996]/bus@f0000/ticsi2rx@30102000/CSI-BRIDGE@30101000:具有/bus@f0000/i2c@20020000/摄像头@3c 的固定依赖周期
    [ 0.456776]/bus@f0000/i2c@20020000/摄像头@3c:固定依赖周期(s)、其中/bus@f0000/ticsi2rx@30102000/CSI-bridge@30101000
    [0.493813]/bus@f0000/ticsi2rx@30102000/CSI-BRIDGE@30101000:具有/bus@f0000/i2c@20020000/摄像头@3c 的固定依赖周期
    [ 1.311515]/bus@f0000/ticsi2rx@30102000/CSI-bridge@30101000:具有/bus@f0000/i2c@20000/摄像头@3c 的固定依赖周期
    [ 1.323266]/bus@f0000/i2c@20020000/摄像头@3c:固定依赖周期、/bus@f0000/ticsi2rx@30102000/CSI-bridge@30101000
    [ 6.984439]/bus@f0000/i2c@20020000/摄像头@3c:固定依赖周期(s)、其中/bus@f0000/ticsi2rx@30102000/CSI-bridge@30101000
    [ 7.048362]/bus@f0000/ticsi2rx@30102000/CSI-bridge@30101000:具有/bus@f0000/i2c@20020000/摄像头@3c 的固定依赖周期
    [ 7.985217] CDN - csi2rx 30101000.CSI 桥接器:ke0429-899总线类型:0x5
    [ 7.992424] cdns-csi2rx 30101000.csi-bridge:ke0429-910数据通路数:4.
    [ 8.014825] CDN - csi2rx 30101000.csi-bridge:已探测到具有4/4个通道、4个流和外部 D-PHY 的 CSI2RX

    并读取 mipi 通道集的寄存器。 奇怪的是 通道寄存器未启用。 我不知道注册表是否正确读取?


    root@am62axx-EVM:/opt/edgeai-gst-apps devmem2 0x30101040 w
    /dev/mem 已打开。
    存储器映射到地址0xff86394000。
    读取地址0x30101040 (0xff86394040):0x00000000
    root@am62axx-EVM:/opt/edgeai-gst-apps devmem2 0x301020 w
    /dev/mem 已打开。
    存储器映射到地址0xffffb5689000。
    读取地址0x30101020 (0xffffb5689020):0x00000000
    Root@am62axx-EVM:/opt/edgeai-gst-apps devmem2 0x3010104c、带
    /dev/mem 已打开。
    映射到地址0xffffbc631000的存储器。
    读取地址0x3010104C (0xffbc63104c):0x00000100
    Root@am62axx-EVM:/opt/edgeai-gst-apps devmem2 0x301048、带
    /dev/mem 已打开。
    存储器映射到地址0xffacb3b000。
    读取地址0x30101048 (0xffffacb3b048):0x00222206

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

    尊敬的 Meng:

    、因为 imx219 DTS 仅启用双通道。 我更改 imx219 DTS 如下:

    请参阅 IMX219到 v3link 串行器/解串器 的覆盖层:git.ti.com/.../k3-v3link-imx219-0-0.dtso

    奇怪的是 通道寄存器未启用。 我不知道注册表的读数是否正确?

    这些通道仅在传输期间启用。 例如、在流式传输时运行"devmem2 0x30101040 w"、您将看到通道已启用:

    root@am62axx-evm:/opt/edgeai-gst-apps#  devmem2 0x30101040 w
    /dev/mem opened.
    Memory mapped at address 0xffff9b925000.
    Read at address  0x30101040 (0xffff9b925040): 0x00000000
    root@am62axx-evm:/opt/edgeai-gst-apps# v4l2-ctl -d /dev/video-imx219-cam0 --set-fmt-video=width=1920,height=1080,pixelformat=RGGB --stream-mmap --stream-loop &
    [1] 2082
    root@am62axx-evm:/opt/edgeai-gst-apps# <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.01 fps
    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.01 fps
    <<<<<<<<<<<<<<<<<<<<<<<<<
    root@am62axx-evm:/opt/edgeai-gst-apps# <<<<< 30.01 fps
    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.01 fps
    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.01 fps
    <<<<
    <root@am62axx-evm:/opt/edgeai-gst-apps# <<<<<<<<<
    root@am62axx-evm:/opt/edgeai-gst-apps# <<<
    <root@am62axx-evm:/opt/edgeai-gst-apps# <<<<
    <root@am62axx-evm:/opt/edgeai-gst-apps# <<<<<<< 30.01 fps
    <<<<<<<<<<<<<<<<<<<<devmem2 0x30101040 w<<<<<<<<<< 30.01 fps
    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 30.01 fps
    
    /dev/mem opened.
    Memory mapped at address 0xffff9d2b1000.
    Read at address  0x30101040 (0xffff9d2b1040): 0x0001F01F
    

    此外、由于您通过 UB953/UB960串行器连接 IMX219、启用的通道数由 UB960器件树叠加层确定:

    https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm64/boot/dts/ti/k3-am62a7-sk-fusion.dtso?h=ti-linux-6.6.y#n63

    此致、

    建中

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    现在我在设备驱动程序中创建了一个虚拟摄像头节点。 删除所有 i2c 写入操作。 并在应用软件中实现960/953/imx219的所有寄存器。

    这应该会起作用。 您需要首先在应用软件中启动传感器和 SerDes、然后开始流式传输、例如使用 GStreamer、yavta 或 v4l2-ctl。