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.

[参考译文] TDA4VEN-Q1:在 TDA4VEN (Linux + RTOS) 环境中显示 IMX219 摄像头画面

Guru**** 2694555 points

Other Parts Discussed in Thread: SK-TDA4VM

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1591214/tda4ven-q1-displaying-imx219-camera-footage-in-tda4ven-linux-rtos-environment

器件型号: TDA4VEN-Q1
Thread 中讨论的其他器件: SK-TDA4VM

我们尝试在 TDA4VEN (Linux + RTOS) 环境中将从 IMX219 (Raspberry Pi 摄像头模块 2) 获得的视频片段显示在显示器上。

硬件连接状态:

摄像头连接到 CSI#0。
连接配置:TDA4VENLeft right arrowHBV-RPI-300FPCLeft right arrowRaspberry Pi 摄像头模块 2.
软件环境:

基于预先安装的完整 SDK 环境(位于/opt/ti-processor-sdk-rtos-j722s-evm-11_01_00_04、具有 SD 引导)构建。
在上述设置中、我们为 uEnv.txt 配置了:

name_coverles=ti/k3-j722s-evm-csi2-quad-rpi-cam-imx219.dtbo
并引导系统。

在此状态下、我们已经尝试在所有总线上运行 i2cdetect -y *、但 IMX219 的 I2C 地址 0x10 不会出现。

在受支持的图像传感器 PSDK Linux/QNX + RTOS 文档中、IMX219 被列为不受支持。 这是否与我们遇到的问题有关?


【补编】

media-ctl -p
媒体控制器 API 版本 6.12.35

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

器件拓扑
-实体 1: 30102000.ticsi2rx(7 个电极,7 个链路,1 条路由)
      键入 V4L2 subdev 子类型未知标志 0
      器件节点名称/dev/v4l-subdev0
    路线:
        0/0 ->1/0【活动】
    pad0:水槽
        [stream:0 fmt:UYVY8_1x16/640x480 字段:无色空间:sRGB xfer:sRGB YCbCr:601 量化:lim-range]
        <-“cdns_csi2rx.30101000.csi-bridge":“:1【已启用,不可更改】
    pad1:来源
        [stream:0 fmt:UYVY8_1x16/640x480 字段:无色空间:sRGB xfer:sRGB YCbCr:601 量化:lim-range]
        ->“30102000.ticsi2rx 上下文 0“:0【已启用,不可更改】
    pad2:来源
        ->“30102000.ticsi2rx 上下文 1“:0【已启用,不可更改】
    pad3:来源
        ->“30102000.ticsi2rx 上下文 2“:0【已启用,不可更改】
    pad4:来源
        ->“30102000.ticsi2rx 上下文 3“:0【已启用,不可更改】
    pad5:来源
        ->“30102000.ticsi2rx 上下文 4“:0【已启用,不可更改】
    pad6:来源
        ->“30102000.ticsi2rx 上下文 5“:0【已启用,不可更改】

-实体 9:cdns_csi2rx.30101000.csi-bridge(5 个电极、2 个链路、1 条路由)
      键入 V4L2 subdev 子类型未知标志 0
      器件节点名称/dev/v4l-subdev1
    路线:
        0/0 ->1/0【活动】
    pad0:水槽
        [stream:0 fmt:UYVY8_1x16/640x480 字段:无色空间:sRGB xfer:sRGB YCbCr:601 量化:lim-range]
        <-“imx219 5-0010“:0【已启用,不可更改】
    pad1:来源
        [stream:0 fmt:UYVY8_1x16/640x480 字段:无色空间:sRGB xfer:sRGB YCbCr:601 量化:lim-range]
        ->“30102000.ticsi2rx":“:0【已启用,不可更改】
    pad2:来源
    pad3:来源
    pad4:来源

-实体 15:imx219 5-0010(1 个 PAD、1 个链接、0 个路由)
       键入 V4L2 subdev 子类型传感器标志 0
       器件节点名称/dev/v4l-subdev2
    pad0:来源
        [stream:0 fmt:SRGGB10_1x10/3280x2464 字段:无色空间:原始 xfer:无 YCbCr:601 量化:全范围
         CROP.BOUNDS:(8、8)/3280x2464
         裁剪:(8、8)/3280x2464]
        ->“Cdns_csi2rx.30101000.csi-bridge":“:0【已启用,不可更改】

-实体 21: 30102000.ticsi2rx 上下文 0(1 个 pad, 1 个链接)
       键入节点子类型 V4L 标志 0
       器件节点名称/dev/video2
    pad0:水槽
        <-“30102000.ticsi2rx":“:1【已启用,不可更改】

-实体 27: 30102000.ticsi2rx 上下文 1(1 个 pad, 1 个链接)
       键入节点子类型 V4L 标志 0
       器件节点名称/dev/video3
    pad0:水槽
        <-“30102000.ticsi2rx":“:2【已启用,不可更改】

-实体 33: 30102000.ticsi2rx 上下文 2(1 个 pad, 1 个链接)
       键入节点子类型 V4L 标志 0
       器件节点名称/dev/video4
    pad0:水槽
        <-“30102000.ticsi2rx":“:3【已启用,不可更改】

-实体 39: 30102000.ticsi2rx 上下文 3(1 个 pad, 1 个链接)
       键入节点子类型 V4L 标志 0
       器件节点名称/dev/video5
    pad0:水槽
        <-“30102000.ticsi2rx":“:4【已启用,不可更改】

-实体 45: 30102000.ticsi2rx 上下文 4(1 个 pad, 1 个链接)
       键入节点子类型 V4L 标志 0
       器件节点名称/dev/video6
    pad0:水槽
        <-“30102000.ticsi2rx":“:5【已启用,不可更改】

-实体 51:30102000. ticsi2rx 上下文 5(1 个 pad, 1 个链接)
       键入节点子类型 V4L 标志 0
       器件节点名称/dev/video7
    pad0:水槽
        <-“30102000.ticsi2rx":“:6【已启用,不可更改】



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

    Takayama

    name_overlays=ti/k3-j722s-evm-csi2-quad-Rpi-cam-imx219.dtbo

    您是否仅启用了此覆盖、而没有启用其他覆盖?

    [quote userid=“677304" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1591214/tda4ven-q1-displaying-imx219-camera-footage-in-tda4ven-linux-rtos-environment 通过 SD 引导在/opt/ti-processor-sdk-rtos-j722s-evm-11_01_00_04 上预安装的完整 SDK 环境上构建。
    [/报价]

    您可以尝试删除/禁用 R5 固件吗? 默认固件将在控制 I2C 总线时与 Linux 发生冲突。

    更好的选择是使用 tisdk-default-image、而不是 tisdk-adas-image。

    [引用 userid=“677304" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1591214/tda4ven-q1-displaying-imx219-camera-footage-in-tda4ven-linux-rtos-environment

    在此状态下、我们已经尝试在所有总线上运行 i2cdetect -y *、但 IMX219 的 I2C 地址 0x10 不会出现。

    [/报价]

    您能否发送运行 i2cdetect 的输出?

    此外、您可以发送 dmesg 日志吗?

    此致、
    Jared

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

    e2e.ti.com/.../1401.uEnv.txte2e.ti.com/.../i2cdetect.loge2e.ti.com/.../fimeware.loge2e.ti.com/.../5125.dmesg.logHiJared McArthur,

    感谢您的及时答复和详细建议。

    附加了 dmesg 和 i2cdetect 的日志。
    由于 imx219no 摄像头仅连接 CSI #0、因此我们认识到其他 CSI 引脚会发生错误。

    >name_coverles=ti/k3-j722s-evm-csi2-quad-rpi-cam-imx219.dtbo 您是否只启用此覆盖、而不启用其它覆盖?
    有没有其他最好的 dtbo 使用 imx219 相机?

    >您可以尝试删除/禁用 R5 固件吗?
    随后会附加已重命名 (grant _bk) 该文件的日志、如下所示。

    rw-r--r-- 1 根根根 11159353 月 9 日 2018 vx_app_rtos_linux_c7x_1.out.signed _bk
    rw-r--r- 1 根根根 11157672 Mar 9 2018 vx_app_rtos_linux_c7x_1.out_bk
    rw-r--r-- 1 根根根 11269945 Mar 9 2018 vx_app_rtos_linux_c7x_2.out.signed _bk
    rw-r--r- 1 根根 11268264 Mar 9 2018 vx_app_rtos_linux_c7x_2.out_bk
    rw-r--r-- 1 根根根 1126960 2018 年 3 月 9 日 vx_app_rtos_linux_mcu2_0.out.signed_bk
    -rw-r-r- 1 根根根 1125280 Mar 9 2018 vx_app_rtos_linux_mcu2_0.out_bk

    此致、
    Takayama 正夫

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

    您好 Jared McArthur、

    我不确定如何创建 tisdk-default-image。
    您能否提供这样做的步骤?
    如果有一个包含综合信息的网站、您能否共享 URL?

    是否需要更改设备树设置?

    关于设置:
    我已将 HBV-RPI-300FPC 的柔性电缆连接到 TDA4VEN+J722S EVM 环境、
    然后连接 Raspberry Pi 摄像头模块 2。
    我认为 SK-TDA4VM 支持 Raspberry Pi 摄像头模块 2 (IMX219)、
    但在尝试使用 J722S 实现这一点时、
    是否有任何硬件限制? 我知道 CSI 端子在硬件上不同。

    此致、
    Takayama 正夫

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

    您好 Jared McArthur、

    很抱歉多次询问。

    >我们是否需要修改设备树设置?
    如果需要修改器件树设置、
    我们希望基于 DTS 创建一个 DTBO、启用 IMX219(还进行更改以确保可以在 Linux 端使用 GPIO 和 I2C)。
    您是否有与上述相关的任何参考 DTS 文件?


    此致、
    Takayama 正夫

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

    Takayama

    [引用 userid=“677304" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1591214/tda4ven-q1-displaying-imx219-camera-footage-in-tda4ven-linux-rtos-environment/6131679

    有没有其他最好的 dtbo 使用 imx219 相机?

    [/报价]

    不、这是正确的 dtbo。

    [引用 userid=“677304" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1591214/tda4ven-q1-displaying-imx219-camera-footage-in-tda4ven-linux-rtos-environment/6131679

    随后会附加已重命名 (grant _bk) 该文件的日志、如下所示。

    [/报价]

    看起来所有固件都无法加载、因此固件 I2C 冲突应该不是问题。

    我不确定如何创建 tisdk-default-image。
    您能否提供这样做的步骤?
    如果有一个包含综合信息的网站、您可以共享 URL 吗?

    构建映像是使用 Yocto 完成的、但您似乎不需要这样做。 相关步骤如下: https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-j722s/11_01_00_03/exports/docs/linux/Overview_Building_ yocto.the_sdk.html#building-the-sdk-with-yocto 

    [引用 userid=“677304" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1591214/tda4ven-q1-displaying-imx219-camera-footage-in-tda4ven-linux-rtos-environment/6133551

    是否有任何硬件限制? 我知道 CSI 端子在硬件上不同。

    [/报价]

    J722S 使用 22 引脚 FPC、而不是 15 引脚 FPC。


    对于 i2cdetect、能否向命令添加-r?

    似乎 imx219 5-0010 已正确探测。 如果您一次尝试一个摄像机、它们是否都失败?

    此致、
    Jared

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

    您好 Jared McArthur、

    感谢您的答复。

    >对于 i2cdetect、是否可以在命令中添加-r?
    我无法为命令指定-r 选项。
    =========μ s
    root@j722s-evm:~# i2cdetect -r
    错误:未指定 i2c-bus!
    用法:i2cdetect [-y][-a][-q|-r] I2CBUS【前一个】
    i2cdetect -F I2CBUS
    i2cdetect -l
    I2CBUS 是整数或 I2C 总线名称
    如果提供、则首先和最后限制探测范围。
    =========μ s

    >看来 imx219 5-0010 已正确探测。 如果您一次尝试一个摄像机、它们是否都失败?
    不幸的是、所有尝试都导致失败。

    我认为启用 k3-j722s-evm-csi2-quad-rpi-cam-imx219.dtbo 将激活 imx219 驱动程序。
    但是、即使驱动程序处于活动状态、是否可以使用 i2cdetect 命令来检测 I2C 地址?

    在默认的 k3-j722s-evm-csi2-quad-rpi-cam-imx219.dtbo 配置中、
    我知道 IMX219 摄像头模块(15 引脚)的 PIN11(GPIO/XSHUTDOWN/电源使能(取决于电路板)) 需要设置为高电平。
    由于在器件树中将其设置为低电平、因此我将其更改为高电平。 如果此设置和 imx219 驱动程序执行的初始化过程正确、
    我认为摄像机应该开始拍摄视频、视频数据应该可以通过/dev/media 访问。

    当正常运行时、我了解如下命令:

    此致、
    Takayama 正夫

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

    Takayama

    我无法为命令指定-r 选项。
    [/报价]

    我的意思是运行 i2cdetect -y -r 0

    [引用 userid=“677304" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1591214/tda4ven-q1-displaying-imx219-camera-footage-in-tda4ven-linux-rtos-environment/6138944

    但是、即使驱动程序处于活动状态、是否可以使用 i2cdetect 命令来检测 I2C 地址?

    [/报价]

    如果地址正在使用、则它应显示为 UU。

    我知道 IMX219 摄像头模块(15 引脚)的 PIN11(GPIO/ XSHUTDOWN/电源使能(取决于电路板)) 需要设置为高电平。
    由于在器件树中将其设置为低电平、因此我将其更改为高电平。 如果此设置和 imx219 驱动程序执行的初始化过程正确、
    我认为摄像机应该开始拍摄视频、视频数据应该可以通过/dev/media *访问。

    此 GPIO 应由驱动器控制。 不应从用户空间控制它。

    此致、
    Jared

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

    您好 Jared McArthur、

    我能够使用以下命令来引用 I2C 地址 0x10:

    i2cdetect -y -r 4
    i2cdetect -y -r 5
    

    在的 SDK 环境中 ti-processor-sdk-linux-adas-j722s-evm-11_01_00_03,执行 bin/create-sdcard.sh 并启动软件后,我确认了状态与以下行 uEnv.txt 禁用:

    #name_overlays=ti/k3-j722s-vision-apps.dtbo
    
    1. 当 IMX219 摄像头模块(15 针)的 PIN11(GPIO/XSHUTDOWN/电源启用(取决于电路板)) 为低 UU电平时、它会显示、表示设备正在使用。

    2. 当 IMX219 摄像头模块(15 针)的 PIN11(GPIO/XSHUTDOWN/电源启用(取决于电路板)) 为高电平时、它会显示 10、表示设备未在使用。

    修改了 DT 设置:
    k3-j722s-evm-si2-quad-rpi-cam-imx219.dts

    ==============
    sensor@10 {
     compatible = "sony,imx219";
      reg = <0x10>;
      clocks = <0x01>;
      clock-names = "xclk";
      pinctrl-names = "default";
      pinctrl-0 = <0x02>;
      reset-gpios = <0xffffffff 0x0f 0x00>; ←
    将 0x00 更改为 0x01
       port {

        endpoint {
          remote-endpoint = <0x03>;
          link-frequencies = <0x00 0x1b2e0200>;
          clock-lanes = <0x00>;
          data-lanes = <0x01 0x02>;
          phandle = <0x0a>;
        };
      };
    };
    ==============

    在我看来、要使用摄像头、必须将 IMX219 摄像头模块(15 引脚)的第 11 个引脚(CAM_IO0 GPIO / XSHUTDOWN/电源使能(取决于电路板)) 设置为高电平。 为此、我认为有必要设置 J722S SOC 的第 15 个引脚(CSI2_EXP_A_GPIO1 CSI2 扩展/RPI 摄像头板特定)。 路径上的 1:2 多路复用器)连接至高电平。

    然而,在 ② 的情况下,由于它不显示 UU,我怀疑可能有一个故障的驱动程序控制。

    此致、

    Takayama 正夫

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

    Takayama

    0x00 或 0x01 的 GPIO_ACTIVE_HIGH 或 GPIO_ACTIVE_LOW 之间仅变化。 应为 GPIO_ACTIVE_HIGH (0x00)。 保持 dtb 与发行版随附的 dtb 相同。

    我认为摄像机应该开始拍摄视频、视频数据应该可以通过/dev/media 访问。

    只有在执行命令启动摄像机时、摄像机才会启动。 设备应出现在/dev/video 中的某个位置。

    执行时也会显示设备:“media-ctl -p“

    您能发送“media-ctl -p“的输出吗?

    此致、
    Jared

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

    您好 Jared McArthur、

    非常感谢您的答复。

    我知道 GPIO_ACTIVE_HIGH (0x00) 正确、因此无需更改 GPIO。
    “media-ctl -p“的输出如补充信息中所示。

    我想再次确认我的当前设置。
    请告知以下配置作为在 Linux 上运行 imx219 的环境是否不正确?

    =============

    • 摄像头连接到 CSI#0。
    • 连接设置:TDA4VEN Left right arrow HBV-RPI-300FPC Left right arrow Raspberry Pi 摄像头模块 2.

    软件环境:
    系统是在预安装在/opt/ti-processor-sdk-rtos-j722s-evm-11_01_00_04/.上的完整 SDK 环境中通过 SD 引导进行构建的
    在此设置中、我已按如下方式配置了 uEnv.txt:

    name_overlays=ti/k3-j722s-evm-csi2-quad-rpi-cam-imx219.dtbo

    然后引导系统。


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

    Takayama

    [引用 userid=“677304" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1591214/tda4ven-q1-displaying-imx219-camera-footage-in-tda4ven-linux-rtos-environment/6146818

    “media-ctl -p“的输出如补充信息中所示。

    [/报价]

    补充信息在哪里?

    [引用 userid=“677304" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1591214/tda4ven-q1-displaying-imx219-camera-footage-in-tda4ven-linux-rtos-environment/6146818

    请告知以下配置作为在 Linux 上运行 imx219 的环境是否不正确?

    [/报价]

    看起来不错。

    该系统是在预安装在/opt/ti-processor-sdk-rtos-j722s-evm-11_01_00_04/.的完整 SDK 环境中使用 SD 引导进行构建的
    [/报价]

    如果您尝试仅在 Linux 中运行、我建议使用 Linux 版本而不是 RTOS 版本。

    此致、
    Jared

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

    您好 Jared McArthur、

    经过很多试错后、我成功设置 EdgeAI 解决方案环境并从 IMX219 摄像头获取视频片段。
    因此、我想结束这个问题。 非常感谢您提供的所有建议和帮助。

    此致、
    Takayama 正夫

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

    Takayama

    解决方案是什么?

    此致、
    Jared

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

    您好 Jared McArthur、

    通过使用 Linux 版本 (edgeAI)、我能够成功捕获摄像头视频片段。 理想情况下、我希望在 RTOS 上运行 IMX219 驱动程序、但考虑到配置硬件加速器和 I2C 设置的复杂性、我知道这相当具有挑战性。 因此、我决定暂停一下。

    此致、
    Takayama 正夫