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.

[参考译文] AM625SIP:申请摄像头视图开发支持问题 (TI AM6254)

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1623993/am625sip-request-for-support-on-camera-view-development-issue-ti-am6254

器件型号: AM625SIP
主题中讨论的其他器件: test2.

尊敬的专家:

我们遇到了几个问题、目前遇到了在 TI AM6254 上进行摄像头视图开发的问题。

您能帮助我们查看并指导我们如何解决下面的问题吗?

请问、如何正确确认 CSI2Rx 收到的数据及其输出?

连接设置如下:

摄像头 (1、2、3、4)→视频解码器 (TP2855)→AM62x CSI -> LCD 上的帧缓冲区显示

root@am62xx-EVM:/tmp# gst-launch-1.0 v4l2src device=/dev/video0! 视频/x-RAW、格式=YuYV、宽度=1920、高度=1080!  视频转换! 视频刻度!  fbdevsink
警告:错误的流水线:无法将 v4l2src0 链接到 videoconvert0、两个元素都无法处理 caps video/x-raw、format=(string) YuYV、width=(int) 1920、height=(int) 1080
root@am62xx-EVM:/tmp# gst-launch-1.0 v4l2src device=/dev/video0!  视频转换! 视频刻度!  fbdevsink
正在将管道设置为已暂停...
流水线是实时的,不需要 PREROLL ...
流水线是 PREROLLED。
正在设置播放管道...
新时钟:GstSystemClock
[ 9996.003008] cdns-csi2rx 30101000.csi-bridge:无法在子开发上启动流 0x1
错误:来自元素/GstPipeline:pipaine0/GstV4l2Src:v4l2src0:无法分配所需的内存。
其他调试信息:
../gst-plugins-good-1.20.6/sys/v4l2/gstv4l2src.c (777):gst_v4l2src_decision_allocation ():/GstPipeline0/GstV4l2Src:v4l2src0:
缓冲池激活失败
执行在 0:00:00.109949575 之后结束
正在将管道设置为空...
错误:来自元素/GstPipeline:pipaine0/GstV4l2Src:v4l2src0:内部数据流错误。
其他调试信息:
../gstreamer –1.20.6/libs/gst/base/gstbasesrc.c (3127):gst_base_src_loop ():/GstPipeline0/GstV4l2Src:v4l2src0:
流已停止、原因未协商(–4)
正在释放管道...
root@am62xx-EVM:/tmp# dmesg | grep csi2rx
[  0.256738] i2c 1-0044:固定依赖周期、/bus@f0000/ticsi2rx@30102000/CSI-BRIDGE@30101000
[  0.351396] CDN - csi2rx 30101000.CSI 桥接器:已使用 4/4 个通道、4 个流和外部 D-PHY 探测 CSI2RX
[ 39447682] cdns-csi2rx 30101000.csi-bridge:无法在子开发上启动流 0x1
[ 547.372966] cdns-csi2rx 30101000.csi-bridge:无法在子开发上启动流 0x1

root@am62xx-EVM:/tmp# media-ctl -p
媒体控制器 API 版本 6.1.33

媒体设备信息
----------------------------
温度      j721e-csi2rx
模型      TI-CSI2RX
串行
总线信息    平台:30102000.ticsi2rx
硬件修订版本  0x1
驱动程序版本 6.1.33

器件拓扑
-实体 1: 30102000.ticsi2rx(5 个电极, 5 个链路, 1 条路由)
      键入 V4L2 subdev 子类型未知标志 0
      器件节点名称/dev/v4l-subdev0
    路线:
        0/0 ->1/0【活动】
    pad0:水槽
        [stream:0 fmt:YUYV8_1x16/1920x1080 field:none]
        <-“cdns_csi2rx.30101000.csi-bridge“:1【已启用,不可更改】
    pad1:来源
        [stream:0 fmt:YUYV8_1x16/1920x1080 field:none]
        ->“30102000.ticsi2rx 上下文 0“:0【已启用,不可更改】

-实体 7:cdns_csi2rx.30101000.csi-bridge(5 个电极、2 个链路、1 条路由)
      键入 V4L2 subdev 子类型未知标志 0
      器件节点名称/dev/v4l-subdev1
    路线:
        0/0 ->1/0【活动】
    pad0:水槽
        [stream:0 fmt:YUYV8_1x16/1920x1080 field:none]
        <-“tp2855 1-0044“:0【已启用,不可更改】
    pad1:来源
        [stream:0 fmt:YUYV8_1x16/1920x1080 field:none]
        ->“30102000.ticsi2rx“:0【已启用,不可更改】
    pad2:来源
    pad3:来源
    pad4:来源

-实体 13:tp2855 1-0044(4 个电极、1 个链路、0 条路由)
       键入 V4L2 subdev 子类型传感器标志 0
       器件节点名称/dev/v4l-subdev2
    pad0:来源
        [stream:0 fmt:YUYv8_1x16/1920x1080 字段:无色空间:sRGB xfer:709 YCbCr:601 量化:lim-range]

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

    附加完整日志:

    e2e.ti.com/.../all_5F00_log_5F00_20260309.txt

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

    您好、Paul:

    我的担心是您分享的完整日志的第 384 行。 它指出不支持该操作。

    您是否 -EOPNOTSUPP 从任何职能部门返回? 否则、似乎 TP2855 的驱动程序代码中存在错误、其中 V4L2 未调用 IOCTL。

    此致、
    Jay

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

    尊敬的 Jay:

    感谢您的支持。

    我们想共享我们的代码、V4L2 设置和新日志。

    (今天,我们无法在此网站上附加文件,因此我们将以纯文本形式共享内容。)

    您能否提供进一步的提示或指导? 如果问题与解码器驱动程序代码有关、您是否还能共享与 AM62x 配合使用的视频解码器的类似参考驱动程序?

    谢谢你。

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

    2) 设备树

    techpoint: tp2855@44 {
        compatible = "tp2855";
        status = "okay";
        reg = <0x44>;
        clocks = <&tp2855_clk>;
        clock-names = "xvclk";
        pinctrl-names = "default";
        pinctrl-0 = <&csi2mcugpio0_pins_default>;
        reset-gpios = <&mcu_gpio0 8 GPIO_ACTIVE_LOW>;
        interrupt-parent = <&mcu_gpio0>;
        interrupts = <7 IRQ_TYPE_EDGE_FALLING>; //IRQ_TYPE_EDGE_FALLING
        irq-gpios = <&mcu_gpio0 7 GPIO_ACTIVE_LOW>; //IRQ_TYPE_EDGE_FALLING
        irq-flags = <2>;
        port {
            csi2_cam0: endpoint {
                remote-endpoint = <&csi2rx0_in_sensor>;
                clock-lanes = <0>;
                data-lanes = <1 2 3 4>; /* Support 4 cameras */
                link-frequencies = /bits/ 64 <297000000>; /* Match driver supported modes */
            };
        };
    };
    
    ---
    
    &cdns_csi2rx0 {
        status = "okay";
        ports {
            #address-cells = <1>;
            #size-cells = <0>;
            status = "okay";
            csi0_port0: port@0 {
                reg = <0>;
                status = "okay";
    
                csi2rx0_in_sensor: endpoint {
                    remote-endpoint = <&csi2_cam0>;
                    bus-type = <4>; /* CSI2 DPHY. */
                    clock-lanes = <0>;
                    /* link-frequencies = /bits/ 64 <800000000>;*/
                    data-lanes = <1 2 3 4>; /* data-lanes = < 1 2 3 4 > */
                };
            };
        };
    };
    

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

    3) 新的日志  

    第 2 部分与上述答复合并

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

    您好、Paul:

    我需要更长的时间才能确定不受支持的错误的来源。 我将尝试在明天之前对此进行评论。

    我有另一个问题,在 TP2855 驱动程序,似乎你做了 4 个电极,我假设对应于可能连接的不同摄像头. Shim IP 要求所有内容都通过一个具有多个路由的来源板进行路由。 可能必须对它们进行路由。

    此外、我以正确的格式编辑了您的回复、并将日志的 2 个部分合并为一个部分。 将来、您可以使用“插入“菜单中的“代码“选项来添加代码、而无需上传文件。 对于文件上传问题、我们正在尝试查看可能导致问题的原因。

    此致、
    Jay

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

    尊敬的 Jay:

    根据上一次沟通中的建议,我们专注于修改 TP2855 驱动程序代码。 下面是更新。

    1) TP2855(修改为版本 2)

       

    2) -测试 1:摄像头 1 -> TP2855-> CSI2Rx AM63 -> Frambuffer LCD

       能够在屏幕/LCD 上看到一些白色条。

       外观异常、这里有照片:(https://drive.google.com/file/d/1wG2kZNXCAE-0bSQ2h383AIbzMZ4Lf_0f/view?usp=sharing)

       -测试 2: TP2855 问题色条-> CSI2Rx AM63 -> Frambuffer LCD
        root@am62xx-EVM:~# i2cset -f -y 1 0x44 0x40 0x00
        root@am62xx-EVM:~ i2cset -f -y 1 0x44 0x2A 0x38

       能够在屏幕/LCD 上看到清晰/干净的纯色条

        看起来很正常、这里有照片: (https://drive.google.com/file/d/1qCTzOa43qtBxkNG8bPEBD10JgOZhTBJV/view?usp=sharing)

       

    3) V4L2 设置和日志

    root@am62xx-evm:~# media-ctl -d /dev/media0 --set-v4l2 '"tp2855 1-0044":0 [fmt:YUYV8_1X16/1920x1080 field:none]'
    root@am62xx-evm:~# media-ctl -d /dev/media0 --set-v4l2 '"cdns_csi2rx.30101000.csi-bridge":0 [fmt:YUYV8_1X16/1920x1080 field:none]'
    root@am62xx-evm:~# media-ctl -d /dev/media0 --set-v4l2 '"cdns_csi2rx.30101000.csi-bridge":1 [fmt:YUYV8_1X16/1920x1080 field:none]'
    root@am62xx-evm:~# media-ctl -d /dev/media0 --set-v4l2 '"30102000.ticsi2rx":0 [fmt:YUYV8_1X16/1920x1080 field:none]'
    root@am62xx-evm:~# v4l2-ctl -d /dev/video0 --set-fmt-video=width=1920,height=1080,pixelformat=YUYV
    media-ctl -proot@am62xx-evm:~# media-ctl -p
    Media controller API version 6.1.33
    
    Media device information
    ------------------------
    driver          j721e-csi2rx
    model           TI-CSI2RX
    serial
    bus info        platform:30102000.ticsi2rx
    hw revision     0x1
    driver version  6.1.33
    
    Device topology
    - entity 1: 30102000.ticsi2rx (5 pads, 5 links, 1 route)
                type V4L2 subdev subtype Unknown flags 0
                device node name /dev/v4l-subdev0
            routes:
                    0/0 -> 1/0 [ACTIVE]
            pad0: Sink
                    [stream:0 fmt:YUYV8_1X16/1920x1080 field:none]
                    <- "cdns_csi2rx.30101000.csi-bridge":1 [ENABLED,IMMUTABLE]
            pad1: Source
                    [stream:0 fmt:YUYV8_1X16/1920x1080 field:none]
                    -> "30102000.ticsi2rx context 0":0 [ENABLED,IMMUTABLE]
            pad2: Source
                    -> "30102000.ticsi2rx context 1":0 [ENABLED,IMMUTABLE]
            pad3: Source
                    -> "30102000.ticsi2rx context 2":0 [ENABLED,IMMUTABLE]
            pad4: Source
                    -> "30102000.ticsi2rx context 3":0 [ENABLED,IMMUTABLE]
    
    - entity 7: cdns_csi2rx.30101000.csi-bridge (5 pads, 2 links, 1 route)
                type V4L2 subdev subtype Unknown flags 0
                device node name /dev/v4l-subdev1
            routes:
                    0/0 -> 1/0 [ACTIVE]
            pad0: Sink
                    [stream:0 fmt:YUYV8_1X16/1920x1080 field:none]
                    <- "tp2855 1-0044":0 [ENABLED,IMMUTABLE]
            pad1: Source
                    [stream:0 fmt:YUYV8_1X16/1920x1080 field:none]
                    -> "30102000.ticsi2rx":0 [ENABLED,IMMUTABLE]
            pad2: Source
            pad3: Source
            pad4: Source
    
    - entity 13: tp2855 1-0044 (1 pad, 1 link, 0 route)
                 type V4L2 subdev subtype Sensor flags 0
                 device node name /dev/v4l-subdev2
            pad0: Source
                    [stream:0 fmt:YUYV8_1X16/1920x1080 field:none colorspace:srgb xfer:709 ycbcr:601 quantization:lim-range]
                    -> "cdns_csi2rx.30101000.csi-bridge":0 [ENABLED,IMMUTABLE]
    
    - entity 19: 30102000.ticsi2rx context 0 (1 pad, 1 link, 0 route)
                 type Node subtype V4L flags 0
                 device node name /dev/video0
            pad0: Sink
                    <- "30102000.ticsi2rx":1 [ENABLED,IMMUTABLE]
    
    - entity 25: 30102000.ticsi2rx context 1 (1 pad, 1 link, 0 route)
                 type Node subtype V4L flags 0
                 device node name /dev/video1
            pad0: Sink
                    <- "30102000.ticsi2rx":2 [ENABLED,IMMUTABLE]
    
    - entity 31: 30102000.ticsi2rx context 2 (1 pad, 1 link, 0 route)
                 type Node subtype V4L flags 0
                 device node name /dev/video2
            pad0: Sink
                    <- "30102000.ticsi2rx":3 [ENABLED,IMMUTABLE]
    
    - entity 37: 30102000.ticsi2rx context 3 (1 pad, 1 link, 0 route)
                 type Node subtype V4L flags 0
                 device node name /dev/video3
            pad0: Sink
                    <- "30102000.ticsi2rx":4 [ENABLED,IMMUTABLE]
    
    root@am62xx-evm:~# i2cset -f -y 1 0x44 0x40 0x00
    root@am62xx-evm:~# i2cset -f -y 1 0x44 0x2A 0x38
    root@am62xx-evm:~# gst-launch-1.0 v4l2src device=/dev/video0 !  videoconvert ! videoscale !  fbdevsink
    Setting pipeline to PAUSED ...
    Pipeline is live and does not need PREROLL ...
    Pipeline is PREROLLED ...
    Setting pipeline to PLAYING ...
    New clock: GstSystemClock
    Redistribute latency...
    WARNING: from element /GstPipeline:pipeline0/GstFBDEVSink:fbdevsink0: A lot of buffers are being dropped.
    Additional debug info:
    ../gstreamer-1.20.6/libs/gst/base/gstbasesink.c(3143): gst_base_sink_is_too_late (): /GstPipeline:pipeline0/GstFBDEVSink:fbdevsink0:
    There may be a timestamping problem, or this computer is too slow.
    WARNING: from element /GstPipeline:pipeline0/GstFBDEVSink:fbdevsink0: A lot of buffers are being dropped.
    Additional debug info:
    ../gstreamer-1.20.6/libs/gst/base/gstbasesink.c(3143): gst_base_sink_is_too_late (): /GstPipeline:pipeline0/GstFBDEVSink:fbdevsink0:
    There may be a timestamping problem, or this computer is too slow.
    WARNING: from element /GstPipeline:pipeline0/GstFBDEVSink:fbdevsink0: A lot of buffers are being dropped.
    0:10:44.6 / 99:99:99.
    ...
    root@am62xx-evm:~# dmesg | grep csi
    [    0.256987] i2c 1-0044: Fixed dependency cycle(s) with /bus@f0000/ticsi2rx@30102000/csi-bridge@30101000
    [    0.351950] cdns-csi2rx 30101000.csi-bridge: Probed CSI2RX with 4/4 lanes, 4 streams, external D-PHY
    [  658.807823] j721e-csi2rx 30102000.ticsi2rx: Failed to drain DMA. Next frame might be bogus
    [  693.636670] j721e-csi2rx 30102000.ticsi2rx: Failed to drain DMA. Next frame might be bogus
    [  730.806663] j721e-csi2rx 30102000.ticsi2rx: Failed to drain DMA. Next frame might be bogus
    [  791.155413] j721e-csi2rx 30102000.ticsi2rx: Failed to drain DMA. Next frame might be bogus
    [ 1212.885607] j721e-csi2rx 30102000.ticsi2rx: Failed to drain DMA. Next frame might be bogus
    [ 1328.839395] j721e-csi2rx 30102000.ticsi2rx: Failed to drain DMA. Next frame might be bogus
    root@am62xx-evm:~# dmesg | grep tp2855
    [    5.564624] tp2855 1-0044: tp2855: probing start (v5 - simplified pads)...
    [    5.564701] tp2855 1-0044: GPIO lookup for consumer reset
    [    5.564709] tp2855 1-0044: using device tree for GPIO lookup
    [    5.564736] of_get_named_gpiod_flags: parsed 'reset-gpios' property of node '/bus@f0000/i2c@20010000/tp2855@44[0]' - status (0)
    [    5.575462] tp2855 1-0044: Consider updating driver tp2855 to match on endpoints
    [    5.578198] tp2855 1-0044: tp2855: probe succeeded (v5)!
    [   23.271163] tp2855 1-0044: tp2855_set_fmt: pad=0 which=1 code=0x2011
    [   60.638315] tp2855 1-0044: tp2855_set_stream: entry on=1
    [   60.638357] tp2855 1-0044: tp2855: starting stream, writing init regs
    [   60.700467] tp2855 1-0044: tp2855: streaming status: Reg 0x40=0x08
    [   60.700498] tp2855 1-0044: tp2855_set_stream: exit ret=0
    root@am62xx-evm:~#
    

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

    您好、Paul

    [引述 userid=“606011“ url=“~/support/interface-group/interface/f/interface-forum/1623993/am625sip-request-for-support-on-camera-view-development-issue-ti-am6254/6265943

    2) -测试 1:摄像头 1 -> TP2855-> CSI2Rx AM63 -> Frambuffer LCD

       能够在屏幕/LCD 上看到一些白色条。

       外观异常、这里有照片:(https://drive.google.com/file/d/1wG2kZNXCAE-0bSQ2h383AIbzMZ4Lf_0f/view?usp=sharing)

       -测试 2: TP2855 问题色条-> CSI2Rx AM63 -> Frambuffer LCD
        root@am62xx-EVM:~# i2cset -f -y 1 0x44 0x40 0x00
        root@am62xx-EVM:~ i2cset -f -y 1 0x44 0x2A 0x38

       能够在屏幕/LCD 上看到清晰/干净的纯色条

        看起来很正常、这里有照片: (https://drive.google.com/file/d/1qCTzOa43qtBxkNG8bPEBD10JgOZhTBJV/view?usp=sharing)

    [/报价]

    您能否说明在 Test2 中、数据流是否来自摄像头?

    对于这两个测试用例、当流正在运行时、请共享以下寄存器的值:
    INFO_IRQ 0x301020
    ERROR_IRQ 0x30101028
    stream0_status 0x30101104
    DPHY_STATUS 0x30101048

    此外、还请在 csi2rx 端点中设置链路频率。 在共享的设备树中、将注释掉。 tp2855 和 cdns_csi2rx 节点之间的密钥也应相同。

    此致、
    Jay

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

    嗨、Jay

    我想明确以下内容:

    [

    测试 1:“我们已将摄像头物理连接到电路板上。“

    测试 1 中、当我们覆盖摄像头或移动摄像头时、可以看到 LCD 屏幕上的灰色/白色色条发生变化(变暗或变亮)。 这表示正在将摄像头数据流输入到系统。

    ]

    测试 2:“我们拔下了摄像头并将其物理卸下。“

    测试 2 中、我们配置了 Techpoint TP2855 视频解码器 通过使用 I²C 命令写入 TP2855 寄存器来将测试色条图形输出到 Texas Instruments AM62 SoC。 因此,我们能够在 LCD 屏幕上看到纯色条。这证实 没有来自相机的相机数据流,因为相机 和我们的板之间没有物理连接。

    流式传输时测试 1 寄存器值:

    Root@am62xx-EVM:~# devmem2 0x301020
    /dev/mem 已打开。
    存储器映射到地址 0xffffbb5d1000。
    读取地址 0x30101020 (0xffffbb5d1020):0x00000002
    Root@am62xx-EVM:~# devmem2 0x301028
    /dev/mem 已打开。
    映射到地址 0xffff81d46000 的存储器。
    读取地址 0x30101028 (0xffff81d46028):0x00020100
    Root@am62xx-EVM:~# devmem2 0x30101104
    /dev/mem 已打开。
    地址 0xff7fcae000 映射的存储器。
    读取地址 0x30101104 (0xff7fcae104):0x80000133
    Root@am62xx-EVM:~# devmem2 0x301048
    /dev/mem 已打开。
    映射到地址 0xffff9b2dc000 的内存。
    读取地址为 0x30101048 (0xffff9b2dc048):0x00222206

    流式传输时的 TEST2 寄存器值:

    Root@am62xx-EVM:~# devmem2 0x301020
    /dev/mem 已打开。
    存储器映射到地址 0xff96892000。
    读取地址 0x30101020 (0xff96892020):0x00000002
    Root@am62xx-EVM:~# devmem2 0x301028
    /dev/mem 已打开。
    存储器映射到地址 0xff9dbd7000。
    读取地址 0x30101028 (0xffff9dbd7028):0x00020110
    Root@am62xx-EVM:~# devmem2 0x30101104
    /dev/mem 已打开。
    存储器映射到地址 0xffffaa704000。
    读取地址 0x30101104 (0xffaa704104):0x80000133
    Root@am62xx-EVM:~# devmem2 0x301048
    /dev/mem 已打开。
    存储器映射到地址 0xff9379b000。
    读取地址 0x30101048 (0xff9379b048):0x00222206
    Root@am62xx-EVM:~#

    对于链路频率设置、我 现在将所有设置为 2970000、我们将在下一个星期一下构建并分享新的测试结果。 感谢您的评论。  

    TP2855 驱动程序代码中。  

    #define TP2855_LINK_FREQ_594M       (594000000UL >> 1)

    在 DTS 中:

    tp2855_clk: clk_tp2855 {
                    #clock-cells = <0>;
                    compatible = "fixed-clock";
                    clock-frequency = <27000000>;
            };
    
    techpoint: tp2855@44 {
                    compatible = "tp2855";
                    status = "okay";
                    reg = <0x44>;
                    clocks = <&tp2855_clk>;
                    clock-names = "xvclk";
                    pinctrl-names = "default";
                    pinctrl-0 = <&csi2mcugpio0_pins_default>;
                    reset-gpios = <&mcu_gpio0 8 GPIO_ACTIVE_LOW>;
                    interrupt-parent = <&mcu_gpio0>;
                    interrupts = <7 IRQ_TYPE_EDGE_FALLING>;  //IRQ_TYPE_EDGE_FALLING
                    irq-gpios = <&mcu_gpio0 7 GPIO_ACTIVE_LOW>; //IRQ_TYPE_EDGE_FALLING
                    irq-flags = <2>;
                    port {
                            csi2_cam0: endpoint {
                                    remote-endpoint = <&csi2rx0_in_sensor>;
                                    clock-lanes = <0>;
                                    data-lanes = <1 2 3 4>; /* Support 4 cameras */
                                    link-frequencies = /bits/ 64 <297000000>; /* Match driver supported modes */
                            };
                    };
            };
    
    
    &cdns_csi2rx0 {
        status = "okay";
        ports {
            #address-cells = <1>;
            #size-cells = <0>;
            status = "okay";
            csi0_port0: port@0 {
                reg = <0>;
                status = "okay";
    
                csi2rx0_in_sensor: endpoint {
                    remote-endpoint = <&csi2_cam0>;
                    bus-type = <4>; /* CSI2 DPHY. */
                    clock-lanes = <0>;
                    link-frequencies = /bits/ 64 <297000000>;
                    data-lanes = <1 2 3 4>; /* data-lanes = < 1 2 3 4 >  */
                };
            };
        };
    };
    
    &ti_csi2rx0 {
            status = "okay";
    };
    
    &dphy0 {
            status = "okay";
    };
    
    &dss {
            status = "okay";
            pinctrl-names = "default";
            pinctrl-0 = <&main_dss0_pins_default>;
    };
    

    下面是完整日志、测试 1 和测试 2:

    e2e.ti.com/.../full_5F00_log_5F00_Test1_5F00_Then_5F00_Test2_5F00_20260313.txt

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

    您好、Paul:

    第二个测试表明、来自 TP2855 -> CSI 的流正常。 在这种情况下、可能需要查看从 SENSOR -> TP2855 的配置。

    但是、应该注意的一个有趣的一点是、解码器(在 test2 中)存在格式错误的数据包。 您看到了 CRC 错误(ERROR_IRQ 寄存器的值):

    如果使用多个传感器流、这可能是一个潜在的链路频率问题。 作为测试、您可以尝试增加链路频率、并查看传感器输出是否稳定。

    此致、
    Jay

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

    嗨、Jay

    此问题是否由数据包或总线格式引起? 例如、 YuYv8_1x16 与 YuYv8_2X8 等
     static const struct tp2855_mode supported_mode[] =
      {
        .bus_fmt = media_bus_FMT_YV8_1x16、
        .width = 1920
        .height = 1080
        .max_fps = {.enumerator = 1、.stamide = 25 }、
        .global_reg_list = common_setting_594M_1080p_25fp_regs、
        .mipi_freq_idx = 0
        .bpp = 8
      }、
    };

     您能否指导我们调试 SoC 接收的格式错误的数据包?

    再次:test1(已连接摄像头)、我们尝试将链路频率设置为 2970000 或 594000000、但结果是相同的。

    下面我们尝试设置为 59400000 并查看摄像头(如果一个摄像头物理连接到电路板)

    测试 1 完整日志:

    e2e.ti.com/.../log_5F00_594M_5F00_20260317.txt

    test1 演示:摄像头数据似乎正在输入。  

    e2e.ti.com/.../Demo.mp4

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

    您好、Paul:

    恐怕我无能为力、因为 TP2855 -> CSI2RX 链路是使用另一个测试用例(TP2855 测试模式)进行验证的。

    不过、我建议您执行以下操作:
    1.我在你的媒体图形中看不到传感器? 它总是流式传输吗? 这可能会导致 TP2855 硬件出现问题
    2.您是否能够以某种方式验证传感器-> TP2855 链路,在那里您可以确认解码器接收到的数据是正确的?
    3.请查看 TP2855 的寄存器以查看它是否报告了任何错误。

    基本原理是确定错误的来源。

    此致、
    Jay

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

    嗨、Jay

    感谢您的支持。

    我们将首先尝试确认前端节点 (Cam->tp2855) 的输入/输出。 我们稍后会联系您。  

    (供参考,修改了  TP2855 的寄存器后、我们现在可以在屏幕上看到摄像机真实图像的一小部分

    烟尘@am62xx-EVM:~# devmem2 0x301020

    /dev/mem 已打开。

    存储器映射到地址 0xff97cc7000。

    读取地址 0x30101020 (0xff97cc7020):0x00000032

    Root@am62xx-EVM:~# devmem2 0x301028

    /dev/mem 已打开。

    存储器映射到地址 0xff9b068000。

    读取地址 0x30101028 (0xff9b068028):0x00021930

    Root@am62xx-EVM:~# devmem2 0x30101104

    /dev/mem 已打开。

    映射到地址 0xffff8dcbb000 的内存。

    读取地址 0x30101104 (0xffff8dcbb104):0x80000133

    Root@am62xx-EVM:~# devmem2 0x301048

    /dev/mem 已打开。

    存储器映射到地址 0xff9914a000。

    读取地址 0x30101048 (0xff9914a048):0x00333306

    )。

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

    您好、Paul:

    这是个好消息。 这可能表明存在一些配置问题。 您能告诉我您更改的寄存器有什么作用吗?

    此外、错误 IRQ 值表示遇到了一些 CRC 和 ECC 错误:

    如果您需要进一步的帮助、请在此处回复。

    此致、
    Jay

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

    嗨、Jay

    我们会根据指导配置/调整寄存器下方的 值、否则我们可能仍会遇到时序问题(日志显示:大量缓冲区被丢弃)。 解码器与 MIPI Rx (TI AM62x_的 CSI2Rx) 之间

    寄存器 默认值 TPI 驱动器 值 MIPI 标准时序值
    0x25 0x04 0x04 0x03 (min)
    0x26 0x06 0x03 0x02 (min)~0x05 (max)
    0x27 0x03 0x09 0x08 (min)
    0x28 0x18 0x18(默认值) 0x18(默认值)
    0x29 0x02 0x02 0x18(默认值)

    一些时间(仅限 ramdonly)我们可以看到一个完整的图像显示在 LCD 上,有时它分为两部分,或黑色的绿色等如下:e2e.ti.com/.../Demo_5F00_20260319_5F00_163944557.mp4

    日志:

    root@am62xx-evm:~# gst-launch-1.0 v4l2src device=/dev/video0! video/x-raw、format=yuy2、width=1280、height=720! 视频转换! fbdevsink
    正在将管道设置为已暂停...
    流水线是实时的,不需要 PREROLL ...
    流水线是 PREROLLED。
    正在设置播放管道...
    新时钟:GstSystemClock
    重新分配延迟...
    警告:从元素/GstPipeline:pipaine0/GstFBDEVSink:fbdevsink0:大量的缓冲区正在被丢弃。
    其他调试信息:
    ../gstreamer –1.20.6/libs/gst/base/gstbasesink.c (3143):gst_base_sink_is_too_late ():/GstPipeline:0/GstFBDEVSink:fbdevsink0:
    可能存在时间戳问题、或者此计算机太慢。
    0:00:01.4 / 99:99:99。

    ------------------------

    FYI、我们的摄像头规格(到目前为止,我们仅测试了 1 台摄像头)

    1)   我们的 4 摄像头, 4 通道的目标设置  

    • AHD 720p、  
    • HD30、   //720p30 
    • STD_HDA、  //AHD 
    • MIPI_4CH4LANE_297M、  // 高达 4x720p 30fps

    2) dts:  链接频率=/bits/ 64 <594000000>;  

    3) TP2855 驱动器中的 Pixel_rate:  

    #define TP2855_PIXER_RATE 110592000 /* 4CAM *(1290*720@30fps = 27.648Mhz)= 110.592MHz */

    tp2855->pixel_rate = v4l2_ctrl_new_std(处理程序,NULL、V4L2_CID_pixel_rate、0、TP2855_pixel_rate、 1、TP2855_pixel_rate);

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

    您好、Paul:

    我不确定 I2C 写入的完成情况。 您能否提供这些寄存器写入的作用?

    计算的主要问题是它没有考虑开销。 我建议在您的情况下承担大约 25%的开销。 这可能只是链路频率问题。 我建议推导包含开销的 pixel_rate 并使用它来推导链路频率。

    LINK_FREQUENCY =(pixel_rate * bpp)/(2 * num_lanes)

    在本例中、bpp 为 16(YUY2 格式)、num_lanes 为 4。

    此致、
    Jay

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

    嗨、Jay

    这些寄存器关于从 TP2855;Tx 设置 MIPI 输出时序。

    i2cset -f -y 1 0x44 0x40 0x08 #选择页面(0x08 MIPI 页面)、0x44 是 TP2855 地址
    i2cset -f -y 1 0x44 0x25 0x03
    i2cset -f -y 1 0x44 0x26 0x02
    i2cset -f -y 1 0x44 0x27 0x08
    i2cset -f -y 1 0x44 0x28 0x18
    i2cset -f -y 1 0x44 0x29 0x18

    我们最新的测试、我们尝试设置给定的 MIPI 标准时序值、但仍然失败;仅显示绿/黑屏。

    建议检查/调整 Tx 和 Rx (AM62x) 的相同时序。  

    我们可以设置或读取 以确认 AM62x 的时序的任何寄存器? 或任何建议、请告诉我。 谢谢。

    “关于 MIPI RX (AP) 中的 MIPI 时序、您将能够按如下方式调整 T_TERM 值。

    通常、您可以调整关于 MIPI TX 和 MIPI RX 之间 MIPI 时序的准备时序。

    如果您在下面查看 AP MIPI RX、则似乎可以调整 (T3-Prepare + T3-PREBEGIN 值 = T_TERM)。“

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

    您好、Paul:

    gst-launch-1.0 v4l2src device=/dev/video0! video/x-raw、format=yuy2、width=1280、height=720! 视频转换! fbdevsink

    流水线本身存在一些问题。

    1.请使用 sync=true 的 kmssink 而不是 fbdevsink
    2、视频转换是一种软件实现的色彩转换。 它可能效率低下。

    在我们进一步进行 CSI 端调试之前、我希望执行以下几个调试步骤(进一步排除流水线中的问题):

    1.您可以使用 yavta 进行帧捕获,将帧保存到文件中,并查看生成的帧是否不正确? 这将仅将问题隔离到 CSI。 示例命令:

    yavta -s 1280x720 -f UYVY -Fframe-#.yuv /dev/video0

    2.请运行此流水线查看正在打印的一些统计信息,并查看显示面是否有问题。 如果上游出现问题、您也会在此处看到缓冲器下降:

    gst-launch-1.0 v4l2src io-mode=dmabuf device=/dev/video0 ! video/x-raw,format=YUY2,width=1280,height=720 ! fpsdisplaysink text-overlay=false name=fpssink video-sink="kmssink sync=false" sync=false -v

    3.测试显示器本身是否正常工作的命令。 只需查看输出看起来是否正确:

    kmscube
    kmstest --flip

    4、如果需要视频转换,可以 改用 ticolorconvert 节点。

    5.请将 fbdevsink 替换为 kmssink sync=false

    如果第一个测试本身失败、则肯定存在 CSI 问题。 如需进一步的通信、请使用 yavta。 这将仅使用 CSI 外设、使调试变得更简单。

    此致、
    Jay

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

    尊敬的 Jay:  

    (我们使用 tisdk-base-image 选项构建操作系统映像。 因此、kmscube、 modetest CMD 不可用、我们将使用 tisdk-default-image 选项进行构建以用于 Weston 等,然后再次进行测试)。

    我们希望 如下共享有关调试注释的所有输出日志。

    e2e.ti.com/.../all_5F00_log_5F00_20260403.txt

    1. kmstest--flip CMD 输出:

    e2e.ti.com/.../kmstest_2D002D00_flip_5F00_Output.mp4

    2.  gst-launch-1.0 v4l2src device=/dev/video0 的输出! video/x-raw、format=yuy2、width=1280、height=720、帧速率=10/1! 视频转换! fbdevsink   

    更改帧速率=30/1=>帧速率=10/1

     e2e.ti.com/.../framerate_5F00_10.mp4

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

    您好、Paul:

    kmstest 结果表明显示正常。 我主要担心的是流水线执行 CPU 复制而不是通过 DMA

    您能否使用 yavta 执行帧捕获、将帧保存到文件中并查看生成的帧是否不正确? 这将仅将问题隔离到 CSI。 示例命令:

    您可以尝试一下吗? 还是使用 v4l2-ctl 来捕获数据? 这将仅使用 CSI 捕获、我们可以查看问题是否是由该原因导致的。

    此致、
    Jay

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

    嗨、Jay

    下面是我们的最新更新:(旧板/相机,我们未能捕捉相机图像;只有绿色显示)

    1.我们使用另一个/替换 新的定制电路板;从 TP2855 输出到 AM62x 的测试图形(色条)的输出更稳定。

    2.我们还使用/替换另一台相机 (TVI 720p ,而不是 AHD 720p )

    摄像头输出看起来是缓慢移动的。 请详细参阅下面的捕获/重放测试结果。

    当前状态:

    • 摄像机→(Rx) TP2855: 根据寄存器值和 LCD 上显示的图像、我们已确认 TVI 摄像机输入正确。
    • TP2855 (Tx)<-->(Rx) AM62x: 我们怀疑这可能与 MIPI 时序问题相关(如前面有关 T_TERM 的注释中所述)

    您能否指导我们如何从 AM62x 端配置和验证 MIPI 时序?

    注意:
    对于 TP2855、只有三个寄存器值可用于时序调整。

    ------------------------------------------------------------------------------------------------------------------------------

    测试的输出:(使用 gst, v4l3,和 yavta cmd,我们可以看到真实的相机图像,但只是异常)

    1. KMSTEST

    Root@am62xx-EVM:~# kmstest
    连接器 0/@40:DPI-1
    CRTC 0/@38:800x480@46.90 26.000 800/40/128/88/+ 480/10/2/33/+ 47 (46.90) 0x48 0x5
    平面 0/@31:0、0-800x480
    FB 50 800x480-XR24
    按 ENTER 键退出

    2.由 yavta 和 v4l2 cmd 日志捕获:

     e2e.ti.com/.../captured_5F00_logs_5F00_v4l2_5F00_yavtv.txt

     重放捕获的 v4l2 文件:

     e2e.ti.com/.../replay_5F00_captured_5F00_v4l2_5F00_cmd.mp4

     重放捕获的 yavta 文件:

    e2e.ti.com/.../replay_5F00_captured_5F00_v4l2_5F00_cmd.mp4

    gstreamer 捕获/重放:

    e2e.ti.com/.../gstreamer_5F00_output.mp4

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

    您好、Paul:

    我已经邀请了硬件团队的一些同事。 我们中的一位会在几天后尝试回复您的问题。

    此致、
    Jay

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

    嗨、Jay

    感谢您的支持。 我们期待尽快收到您的硬件团队的反馈。

    为了您的信息,我们的 AHD 摄像头 (12V) 现在正在工作。 我们确定了该问题、这是由于与我们的电路板的连接不正确而导致的、该电路板提供了过压 (>24V)。

    AHD 和 TVI 摄像机输入现在都正常工作;但是、它们仍然显示相同的症状。

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

    您好、Paul:

    您能否澄清哪些症状仍然可见? 以前答复中的问题是否不再存在?

    此致、
    Jay

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

    您好、Paul:

    请针对以下参数建议配置 DPHY-TX 侧。 我想确认这些是根据 MIPI 确定的、并处于 DPHY-RX 侧 (AM62x) 的一致值范围内。

    • TLPX
    • THS-PREPARE
    • THS-ZERO

    此致、

    Luis Parga.

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

    您好 Luis & Jay

    1. 下面是 DPHY-TX 解码器侧的参数表(HS 发送器交流特性)

     

    2.目前的症状与我们在 4 月 8 日发表的评论中所报告的相同。

    我们希望分享今天在两台摄像机上执行的新测试的结果:

    A) 初始帧显示异常。
    B) 视频随后转换为慢动作等

    SW 设置:(我们尝试配置diff 值,但会产生相同的症状)   

    -在 tp2855 设备驱动程序:  
    static const struct tp2855_mode supported_mode[] =
      {
        .bus_fmt = media_bus_FMT_YV8_1x16、
        .width = 1280
        .height = 720
        .max_fps = {.enumerator = 1 、.staminum = 25}、// 25 或 30
        .global_reg_list = common_setting_297_4ch_4lane_720p_30fp_regs、
        .mipi_freq_idx = 0
        .bpp = 8、 //8 或 16
      }、
    };
    tp2855->pixel_rate = v4l2_ctrl_new_std(handler、 NULL、V4L2_cid_pixel_rate、 0297 000000、 1297 00000);//或 148500000
    -在 DTS 中:  
    Link-frequencies =/bits/ 64 <297000000>; // 297000000 或 594000000
    DATA-LANES =<1 2 3 4>;/* DATA-LANES =< 1 2 3 4 >*/
    -视图命令(如下所示 ,或添加“,帧速率=30/1“,“帧速率=25/1“产生相同的结果)
    gst-launch-1.0 v4l2src device=/dev/video0! video/x-raw、format=yuy2、width=1280、height=720! 视频转换! fbdevsink

    TVI 702p 1280*720 凸轮输出:

    e2e.ti.com/.../TVI_5F00_720p_5F00_Cam.mp4

    AHD 702p 1280*720 凸轮输出:

    e2e.ti.com/.../AHD_5F00_720p.mp4

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

    谢谢 Paul、

      对于 TPS2855、TLPX、THS-PREPARE 和 THS-PREPARE + THS-ZERO 是否可编程? 如果是、这些器件专门编程为什么? 您是否尝试过其他链路频率? 您可以尝试 800MHz 的链路频率(数据速率为 1.6Gbps)、但我们需要确保 TX 端和 RX 端设置为相同的链路频率。 此外、当数据速率大于或等于 1.5Gbps 时、我们需要确保 TX 端发送初始校正校正模式。 请注意、AM62x 不支持定期校正;我们的 DPHY 仅支持初始校正校准。

    此致、

    Luis Parga.

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

    您好 Luis:  

    是的、可通过 i2c 命令调整寄存器值 (0x25–0x29) 对其进行编程、这一点在我 4 月 2 日的上一条评论中已提到。  我们将为 TP2855 提供更详细的信息和调整指南、如下所示。

    默认 Tx 设置值:

    TP2855 MIPI Tx 时序控制寄存器:

    首先、您能否检查当前(默认)TX 时序配置是否与 RX 的时序匹配?  

    以下是解码器供应商在使用以下寄存器设置时提供的 Tx 时序值:寄存器 0x25 = 3、寄存器 0x26 = 2 和寄存器 0x27 = 8。 我们可以将其用作进一步调整的基准。

    最好仅调整一侧(例如 RX)、同时固定另一侧以确保正确对齐。

    我们之前测试了 297MHz 和 594MHz 的链路频率(800MHz 尚未测试)。 594MHz 似乎就足够了、因为我们使用 4 个信道来传输来自 4 个摄像头的数据。 但是、我们目前仅使用一个摄像头进行了测试、但问题仍然存在。

    1) 这是 MIPI 标准时序。 请参阅红色框。

    2) 关于该问题、调整 MIPI RX (AP-AM62) 中 MIPI 时序的建议是准备时序的 T_TERM 值。 如有任何意见、请告知我们。 谢谢你。  

    T3-PREPARE + T3-PREBEGIN 值= T_TERM。

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

    您好、Paul:

    感谢您的答复。

    TX 端和 RX 端的时序参数都看起来正常。 但是、我不知道 RX 数据速率是否也正确设置为 594Mbps。 您能否分享这些信息? 关于 T_TERM 调整、我认为这不会增加问题、但您可以尝试增大/减小它来了解这如何影响您的系统。

    当 TX 侧数据速率设置为 594Mbps 时、您能否分享 RX 侧 4 个 PHY_Band_CTL 寄存器的读取结果?

    此致、

    Luis Parga.

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

    您好 Luis:  

    您能否确认以下内容是否正确? 另外、请告知我们接下来应该检查的内容。 谢谢你。

    为了进行比较、我们测试了 297MHz 和 594MHz 配置。 TX 端和 RX 端的链路频率设置为相同的值。

    我们还在 297MHz 处测量了 Rx 时钟 (MIPI_CKP/N)、如下所示。 (当我们将其更改为 594MHz 时,时钟会相应地增加。)

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

    您好 Luis:

    您有任何反馈意见吗?

    根据我们到目前为止的观察结果、摄像头输出帧速率约为 11fps 至 16fps(如我们在 4 月 8 日分享的日志中所示)。 这可能是由于帧丢弃或错误造成的。

    供您参考:

    TX 侧没有可用的 800MHz 设置(最大值为 594MHz)、800MHz 超出规格。

    2.我们尝试调整一些与 T_TERM 相关的 TX 寄存器值,但虽然它导致了屏幕上的输出发生了一些变化,但没有提高性能。

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

    您好、Paul:

    我对延迟答复表示歉意。 感谢您确认 DPHY-TX(TPS2855 视频解码器)和 CSI-RX (AM62x) 链路频率确实匹配。 您是否还能确认摄像头传感器的帧速率低于 60FPS? 您是否也具有水平和垂直分辨率匹配? AM62x CSI-RX 似乎间歇性缺失 SoF 和/或 EOF。 我仍然认为我们在某个地方存在不匹配问题、但我无法指出它。 是否有任何方法可以确认摄像头传感器的全部功能? 正确的分辨率是多少 (1280x720 还是 1920x1080? 我们能否专注于确保摄像头传感器按预期工作?

    此致、

    Luis Parga.

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

    您好 Luis:

    感谢您的支持。

    目前、我们正在测试 1280×720 (720p) 两种输出、这是市场上可用的标准产品。 我们还使用 TP2855 EVK 电路板对其进行了验证、确保其正常工作。 此外、这些摄像头已成功用于具有不同 AP/SoC 的其他项目。

    使用时 gst-launch-1.0、我们观察到帧速率低于 30 FPS(最低达到 60 FPS)。 TP2855 将摄像头流传递到 AM62、在 TP2855 端、我们可以确认 HLOCK 和 VLOCK 都是稳定的、表明摄像头输入正常。

    1.您能否建议如何验证 CSI TX/RX 数据信号或波形?

    2.目前我们只有 TP2855 寄存器设置,并为 AM62x 开发了 TP2855 软件驱动程序。 我们的实施可能存在问题。 您能否推荐任何已 在 AM62x 上验证过的现有视频驱动程序? 我们想用它作为参考并尝试一下。

    谢谢你。

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

    您好、Paul:

    您能否在 RX 端提供示波器捕获? 此外、通常情况下、下面的寄存器应该用于调试此问题。  

    CSIRX_ERROR_DEBUG 3010 1074h

     

     DL0 至 DL3:3011 0C18,3011 0C24,3011 0C34,3011 0C40

     

    CSIRX_INtegration_debug 3010 1060h

     

    CSIRX_STREAM0_MONITOR_FRAME 3010 1114h

    尊敬的 Jay:

    您能帮助提供可供 Paul 参考的有效驱动程序吗?

    此致、

    Luis Parga.

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

    您好 Luis:

    以下是范围捕获。如果有问题、请提供指南。

     在摄像头流式传输期间捕获寄存器。

    1) CSIRX_ERROR_DEBUG 3010 1074h

    Root@am62xx-EVM:~# devmem2 0x301074、带
    /dev/mem 已打开。
    映射到地址 0xff9d045000 的存储器。
    读取地址 0x30101074 (0xffff9d045074):0x8012005E

    2) DL0 至 DL3:3011 0C18,3011 0C24,3011 0C34,3011 0C40

    root@am62xx-EVM:~# devmem2 0x30110C18 w
    /dev/mem 已打开。
    映射到地址 0xff90e63000 的存储器。
    读取地址 0x30110C18 (0xff90e63c18):0x00000580
    Root@am62xx-EVM:~# devmem2 0x30110C24、带
    /dev/mem 已打开。
    映射到地址 0xff93b49000 的存储器。
    读取地址 0x30110C24 (0xff93b49c24):0x0000056B
    Root@am62xx-EVM:~# devmem2 0x30110C34、带
    /dev/mem 已打开。
    映射到地址 0xffffa4d08000 的存储器。
    读取地址 0x30110C34 (0xffffa4d08c34):0x00000580
    Root@am62xx-EVM:~# devmem2 0x30110C40、带
    /dev/mem 已打开。
    存储器映射到地址 0xffff853c9000。
    读取地址 0x30110C40 (0xffff853c9c40):0x00000510

    3) CSIRX_INtegration_debug 3010 1060h

    Root@am62xx-EVM:~# devmem2 0x301060、带
    /dev/mem 已打开。
    地址 0xffffb0e38000 映射的存储器。
    在地址 0x30101060 (0xffffb0e38060) 处读取:0x20000000

    4) CSIRX_STREAM0_MONITOR_FRAME 3010 1114h

    Root@am62xx-EVM:~# devmem2 0x30101114、带
    /dev/mem 已打开。
    地址 0xffffbedfb000 映射的存储器。
    读取地址 0x30101114 (0xffffbedfb114):0x00000000

    *附加的演示视频(与之前相同的环境和测试,但我们使用 sync=false;尽可能快地显示帧 — 忽略时间戳)

    查看 camea CMD: gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw、format=UYVY、width=1280、height=720! 视频转换! fbdevsink=false

    -起始帧数不正确->变短

    -慢动作->更快

    e2e.ti.com/.../1185.20260514_5F00_a.mp4

    e2e.ti.com/.../0525.20260514_5F00_b.mp4

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

    您好、Paul:

    我对延迟的回复深表歉意、并感谢您提供所需的数据。 示波器捕获似乎并不合适、但我们现在可以跳过它。 到目前为止、我在提供的寄存器时序/错误数据中没有任何指向根本原因的内容、但我有想法。 我们能否确保 TPS2855 和 AM62x 的分辨率 (1280x720) 和 UYVY 匹配、然后运行以下命令? 我们需要确保整个硬件流水线保持一致。 我觉得导致之前的流超时、缓冲区下降和漏极 DMA 内核错误的原因是摄像头传感器只能输出 720p、但我们强制 AM62x SoC 寻找 1080p。

    gst-launch-1.0 v4l2src device=/dev/video0 io-mode=4 ! video/x-raw,format=UYVY,width=1280,height=720 ! waylandsink sync=false

    请提供结果建议。

    此致、

    Luis Parga.

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

    您好 Luis:  

    感谢您的评论。

    提供的 gst-launch 命令将输出/显示到 waylandsink (非) fbdevsink。 我们之前尝试了 fbdevsinkwaylandsink、但都产生了相同的症状。 我们将使用该 io-mode=4 选项重试。 如果我们得到差分结果、我们将在此处分享。

    但是、我们当前不是测试不同的输出灌电流、而是尝试直接捕获和保存流、如下面的 Tests 1~4 所示。 请您对此发表评论。

    请查看以下链接、获取捕获的文件并重放结果:

    https://drive.google.com/drive/folders/1WlxmonsxYlyyX73YKBVBncIZQczxuKkX?usp=sharing

    TEST1:(fps25)
    root@am62xx-EVM:~#timeout 10 gst-launch-1.0 v4l2src device=/dev/video0! video/x-raw、format=yuy2、width=1280、height=720、帧速率=25/1! filesink location=fps25_DIRECT_VIDEO_AUTO.YUY2
    在 Win10 上重放:c:\> ffplay -f rawvideo -pixel_fformat yv422 -video_size 1280x720 -framerate 25 fps25_direct_video_auto.y2
    >>重播演示:test1_demo.mp4

    test2:(fps30)
    root@am62xx-EVM:~#timeout 10 gst-launch-1.0 v4l2src device=/dev/video0! video/x-raw、format=yuy2、width=1280、height=720、帧速率=30/1! filesink location=fps30_DIRECT_VIDEO_AUTO.YUY2
    在 Win10 C 上重放:\>ffplay -f rawvideo -pixel_fformat yv422 -video_size 1280x720 -framerate 30 fps30_direct_video_auto.y2
    >>重播演示:test2_demo.mp4

    test3:(fps25)
    root@am62xx-EVM:~# timeout 10 gst-launch-1.0 v4l2src device=/dev/video0 io-mode=4! video/x-raw、format=yuy2、width=1280、height=720、帧速率=25/1! filesink location=fps25_direct_video_Mode4.y2
    Win10 上的重放 C:\>ffplay -f rawvideo -pixel_fformat yv422 -video_size 1280x720 -framerate 25 fps25_direct_video_Mode4.y2
    >>重播演示:test3_demo.mp4

    测试 4:(fps30)
    root@am62xx-EVM:~# timeout 10 gst-launch-1.0 v4l2src device=/dev/video0 io-mode=4! video/x-raw、format=yuy2、width=1280、height=720、帧速率=30/1! filesink location=fps30_direct_video_Mode4.y2
    Win10 上的重放 C:\>ffplay -f rawvideo -pixel_fformat yv422 -video_size 1280x720 -framerate 30 fps30_direct_video_Mode4.y2
    >>重播演示:test4_demo.mp4

    谢谢。

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

    您好 Luis:  

    FYI、包含 waylandsink 结果

    1) 以下命令无法运行,它需要“视频转换“选项

    gst-launch-1.0 v4l2src device=/dev/video0 io-mode=4! video/x-raw、format=UYVY、width=1280、height=720! waylandsink sync=false

    日志:

    root@am62xx-evm:~# gst-launch-1.0 v4l2src device=/dev/video0 io-mode=4! video/x-raw、format=YuYV、width=1280、height=720! waylandsink sync=false
    警告:错误的流水线:无法将 v4l2src0 链接到 waylandsink0、两个元素都无法处理 caps video/x-raw、format=(string) YuYV、width=(int) 1280、height=(int) 720

    2) 添加  “视频转换“选项(两个命令产生的 simliar 输出如下演示视频)

    gst-launch-1.0 v4l2src device=/dev/video0! video/x-raw、format=yuy2、width=1280、height=720! 视频转换! waylandsink sync=false

    gst-launch-1.0 v4l2src device=/dev/video0 io-mode=4! video/x-raw、format=yuy2、width=1280、height=720! 视频转换! waylandsink sync=false

    e2e.ti.com/.../waylandsink.mp4

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

    您好、Paul:

    当我查看上面的数据时、您是否还可以使用'YUYV'尝试以下命令?

    gst-launch-1.0 v4l2src device=/dev/video0 io-mode=4 ! video/x-raw,format=YUYV,width=1280,height=720 ! videoconvert ! waylandsink sync=false

    谢谢、

    Luis Parga.

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

    您好 Luis:  

    FORMAT=YUYV 似乎不是有效的 GStreamer CAPS 命名、因此该命令无法运行。  

    root@am62xx-evm:~# gst-launch-1.0 v4l2src device=/dev/video0 io-mode=4! video/x-raw、format=YuYV、width=1280、height=720! 视频转换! waylandsink sync=false
    警告:错误的流水线:无法将 v4l2src0 链接到 videoconvert0、两个元素都无法处理 caps video/x-raw、format=(string) YuYV、width=(int) 1280、height=(int) 720
    Root@am62xx-EVM:~#

    完整日志:

    e2e.ti.com/.../YUYV_5F00_log.txt