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.

[参考译文] TDA4AL-Q1:如何在 TDA4AL-Q1 EVM 上的 i2c-5上直接启动 CSI2摄像头?

Guru**** 2468610 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1461414/tda4al-q1-how-can-i-start-up-a-csi2-camera-directly-on-i2c-5-on-on-tda4al-q1-evm

器件型号:TDA4AL-Q1
Thread 中讨论的其他器件:TCA6408

工具与软件:

您好、TI 专家:

我在 main_i2c5中将相机设备相机设置为@6c、但  i2cdetect 命令的 Linux 工具始终不会检测到 i2c。

请帮助检查为什么无法检测到 i2c-5。 感谢你的帮助。

以下是调试信息:

root@j721s2-evm:/proc/device-tree/bus@100000/i2c@2050000/Camera@6c# i2cdetect -l
I2C-0 i2c OMAP I2C 适配器 I2C 适配器
I2C-1 I2C OMAP I2C 适配器 I2C 适配器

root@j721s2-evm:/proc/device-tree/bus@100000/i2c@2050000/camera@6c# dmesg | grep i2c.
[ 0.802320] i2c_dev:I2C /dev/entries 驱动程序
[ 0.982021] omap_i2c 42120000.i2c:400kHz 时的总线0 rev0.12
[ 1.046618] omap_i2c 2000000.i2c:400kHz 时总线1版本0.12

root@j721s2-evm:/proc/device-tree/bus@100000/i2c@2050000# ls
'#address-cells''#size-cells' 摄像机@6c 时钟频率时钟兼容 GPIO@20中断名称 phandle pinctrl-0 pinctrl-names 电源域寄存器状态

 k3-j721s2-main.dtsi 中的定义未更改:

MAIN_i2c5:I2C@2050000{
兼容="ti、j721e-i2c"、"ti、omap4-i2c";
REG =<0x00 0x02050000 0x00 0x100>;
中断= ;
#address-cells =<1>;
#size-cells =<0>;
时钟=<&K3_CLKS 219 1>;
时钟名称="FCK";
电源域=<&K3_PDS 219 TI_SCI_PD_Exclusive>;
状态="已禁用";
};

 在 k3-j721s2-common-proc-board.dts 中添加 caemra@6c 配置

&{/}{
clk_ox08b10_fixed:ox08b10-inck{
Compatible ="固定时钟";
#clock-Cells =<0>;
时钟频率=<24000000>;
};
};

&MAIN_i2c5{
pinctrl-names ="默认值";
pinctrl-0 =<&MAIN_i2c5_PINS_DEFAULT>;
时钟频率=<400000>;
状态="正常";

ox08b10:相机@6c {
Compatible ="ovti、ox08b";
REG =<0x6c>;
Clocks =(&clk_ox08b10_fixed>;
时钟名称="inck";

端口{
csi2_cam0:端点{
远端端点=<&csi2rx0_in_sensor>;
链路频率=/bits/ 64 <480000000>;
时钟通道=<0>;
data-channels =<1 2 3 4>;
};
};
};
扩展5:GPIO@20{
兼容="ti、tca6408";
REG =<0x20>;
GPIO 控制器;
#GPIO-CELLS =<2>;
GPIO 行名称="CSI2_EXP_RSTZ"、"CSI2_EXP_A_GPIO0"、
"CSI2_EXP_A_GPIO1"、"CSI2_EXP_A_GPIO2"、
"CSI2_EXP_B_GPIO1"、"CSI2_EXP_B_GPIO2"、
"CSI2_EXP_B_GPIO3"、"CSI2_EXP_B_GPIO4";
};
};

&csi0_port0{
状态="正常";

csi2rx0_in_sensor:端点{
远程端点=<&csi2_cam0>;
Bus-type =<4>;/* CSI2 DPHY */
时钟通道=<0>;
data-channels =<1 2>;
};
};

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

    您好!

    感谢您的耐心、已将您的问题分配给相应的工程师。

    谢谢!

    Neehar

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

    您好、TI、

    谢谢您的更新、我在"\board-support\ti-linux-kernel-6.6.32+git-ti\arch\arm64\boot\dts\ti"路径中找到了 k3-j721s2-vision-apps.dtso 的.dtso 以覆盖&main_i2c5

    当我通过下面的命令输出这一点时、I2C 可以识别"omap_i2c 2050000.i2c:400kHz 时的总线2 rev0.12"

    &MAIN_i2c5{
    状态="已禁用";
    };*/

    [ 0.803208] i2c_dev:I2C /dev/entries 驱动程序
    [ 0.983075] omap_i2c 42120000.i2c:400kHz 时的总线0 rev0.12
    [ 1.047156] omap_i2c 2000000.i2c:400kHz 时总线1版本0.12
    [ 1.053342] i2c 2-006C:/bus@100000/ticsi2rx@4500000/CSI-bridge@4504000时的固定依赖周期
    [ 1.096235] omap_i2c 2050000.i2c:400kHz 时的总线2版本0.12
    [ 11.105098] i2c 2-006C:/bus@100000/ticsi2rx@4500000/CSI-bridge@4504000时的固定依赖周期
    [ 11.118104] platform 4504000.CSI-桥:固定的依赖周期、/bus@100000/i2c@2050000/摄像机@6c

    但是、使用 i2cdetect -r -y 2检查从器件地址"6c"、它仍无法被检测到。

    root@j721s2-evm:/opt/vision_apps i2cdetect -r -y 2.
    0 1 2 3 4 5 6 7 8 9 A b c d f
    00:--------- ---
    10:-------- --- --- ——
    第20章:我是你的女人 --- ---
    30:----- --- 36 --------- ---
    40:----- --- --- ——
    50:50 ------------ --- ---
    60:--------- --- --- ——
    70:--------- ---

    您能帮助我检查这个问题吗、它是否错过了需要配置的一些点?

    感谢您的支持。

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

    您好!

    但是、如果您从 Linux 禁用 i2c5、Linux 将无法检测到该接口上的任何从器件。 我建议首先在 Linux 上启用该功能、然后在 i2c5上运行 i2cdetect 命令、以查看它是否能够在0x6c 处检测从器件。

    此致、

    Brijesh

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

    您好、Brijesh:

    您能否帮助检查一下我是否要添加新的传感器0x08b10、是否需要在以下路径中为 i2c 编写新的 v4l2驱动程序:

    \board-support\ti-linux-kernel-6.6.32+git-ti\drivers\media\i2c

    谢谢。

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

    您好!

    您将需要在 RTOS 或 Linux 中添加新的驱动程序、但在此之前、请检查为什么无法在 i2c5实例上访问传感器。  

    此致、

    Brijesh

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

    您好、Brijesh:  

    我们发现、如果 通过从 makefile 中删除解串器驱动程序、则会导致引导失败。 你有办法平稳地删除解串器的代码而不产生任何副作用吗? 谢谢你。

    Eddie

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

    尊敬的 Eddie:

    但为什么需要删除特定于解串器的文件呢? 它不是必需的、对吧? 您应该能够首先检测并探测输入摄像头板、然后我们可以看到如何配置它。 目前、如果我理解的话、我无法自动检测到摄像头板。 您是否可以在 i2c5上运行 i2c 探测器并查看是否首先检测到它?  

    此致、

    Brijesh

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

    您好、Brijesh:

    感谢你的帮助。 我们已解决此 i2c-5未检测到摄像头问题。

    但发生了另一个问题。

    我们将运行单摄像头 VPAC 应用。

    要运行 run_app_single_cam.sh 的脚本、此流程是通过的。 但显示屏不显示图像屏幕。

    检查 IMX390_StreamOn 在 iss_sensor_imx390.c 中、我们发现 csi2 Rx 似乎使用了 enableUB960Streaming。

    如果不运行 enableUB960Streaming、csi2 Rx 不处于活动状态。

    这是否正确、如果是、我们构建了 csi2 Rx?

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

    尊敬的 Chen:

    好的、您可以注释掉 enableUB960Streaming API 中的代码、并确保仅在 streamon 回调中启动/启用传感器输出、而不是在之前启动/启用传感器输出吗?

    此致、

    Brijesh  

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

    您好、Brijesh:

    如果启用  enableUB960Streaming、显示以下错误日志。

    因为没有使用解串器。

    [MCU2_0] 1848.183410 s:将0x01写入解串器(0x3D)寄存器0x4c 时出错!
    [MCU2_0] 1848.183452 s:解串器错误:regAddr 0x4c 的寄存器写入失败、cnt = 0

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

    尊敬的 Chen:

    我的意思是、您是否可以禁用对该 API 的调用、看看您是否能够对传感器进行编程并从传感器接收一些数据?  

    此致、

    Brijesh

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

    您好、Brijesh:

    很抱歉、没有收到您的意思、是的、我们确认传感器处于活动状态。

    我们使用读取寄存器来检查帧计数、帧计数增加到了30帧速率。

      

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

    尊敬的 Chen:

    您还能检查以下参数吗?

    -传感器输出中配置的通道数与硬件连接匹配,并且 CSIRX 应用程序中配置的通道数相同?

    -通道极性没有变化?

    -请查看在什么通道速度传感器 输出数据,同样需要在 CSIRX 驱动程序中配置。

    -请确保仅在 streamon 回调中启用/启动传感器输出、而不是在之前启用/启动。  

    此致、

    Brijesh

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

    您好、Brijesh:

    感谢您的答复。 下面是我的传感器设置。

    如何选择"请查看在哪个通道速度传感器 输出数据、并且需要在 CSIRX 驱动程序中配置相同的数据。"

    它是否需要"CSIRX_LANE_BAND_SPEED_2250_TO_2500_Mbps"同步设置其他位置?

    感谢您的支持。

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

    尊敬的 Chen:

    从上面的屏幕截图中可以看出

    - 您正在使用 RAW10位作为输出数据格式。 请检查并确保 RAW10数据格式的传感器输出和输出数据也使用此格式标记。

    -您使用的是4个通道输出。 请在传感器设置中检查并确认它正在输出4个通道。  

    -通道速度设置为2.2Gbps 至2.5Gbps。 请检查传感器是否以此车道速度输出。

    -由于传感器输出速度如此之高,请在传感器中启用偏斜校准序列。  

    -再次请确保仅在 streamon 回调中启用传感器。  

    此致、

    Brijesh

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

    您好、Brijesh:

    感谢您的答复。

    我再次从传感器供应商处了解到、传感器数据速率为720。

    我发现通道频带速度定义如下、720上匹配的定义是什么? 这两者都能选择吗?

    但我已经尝试了这两种定义、但它仍然没有在 DP 输出中显示图像。

    是否仅应设置该设置、或者是否应设置我缺少其他设置?

    /**简明信道频带速度:640 Mbps 至720 Mbps */
    #define CSIRX_LANE_BAND_SPEED_640_to_720_Mbps ((uint32_t) 0x0CU)
    /**简明信道频带速度:720Mbps 至800Mbps */
    #define CSIRX_LANE_BAND_SPEED_720_TO_800_Mbps ((uint32_t) 0x0DU)

    以下是传感器供应商提供的传感器信息。

    ;传感器版本:OX8B40 R1D
    ;输入时钟频率:24MHz
    ;图像输出大小:3840x2160
    ;图像裁剪尺寸:无特殊请求
    ;像素数据格式:HCG10线性
    ;帧时序和帧速率:30fps
    ;系统时钟频率:无特殊请求
    ;输出接口和数据速率:MIPI720

    我检查了初始代码、寄存器地址"0x3012"、将寄存器数据写入0x41、因此显示出 mipi 通道为4、phy 模式为 mipi。

    感谢您的支持。

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

    尊敬的 Chen:

    但什么是720? 是 720MHz 吗? 720Mbps?  

    您还可以确认它正在输出 RAW10数据吗?  

    此致、

    Brijesh

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

    您好、Brijesh:

    感谢您的答复。

    它是4线路@ 720Mbps/ 通道、是原始10数据。

    顺便说一下、您是否认为 CSI 驱动程序不能进行修改、对吧?

    如果需要、我们可以重点讨论传感器配置问题。

    感谢你的帮助。

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

    尊敬的 Chen:

    是的、无需在 CSIRX 驱动程序和/或 CSIRX OpenVX 节点中进行任何更改。  

    询问有关720的信息的原因是、如果是720MHz、则数据速率为1.4Gbps、在这种情况下、通道速度应设置为1.4Gbps。 那么、您可以再次检查并确认相同之处吗?

    还请检查并确认输出数据也使用数据类型0x2B 标记、即 RAW10 MIPI。

    此致、

    Brijesh

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

    您好、Brijesh:

    感谢您的反馈。

    我尝试了车道速度如下,他们也没有在显示器上显示图像屏幕.

    CSIRX_LANE_BAND_SPEED_640_TO_720_Mbps

    CSIRX_LANE_BAND_SPEED_720_TO_800_Mbps

    CSIRX_LANE_BAND_SPEED_1350_TO_1500_Mbps

    那么、我想调试输出数据、在哪里可以打印输出数据的数据类型?
    谢谢。

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

    尊敬的 Chen:

    我们无法打印它。 CSIRX 接收此数据类型并 与配置的数据类型匹配、如果不匹配、它将丢弃数据包。 因此、 在 CSIRX 中配置正确的数据类型非常重要。  虚拟通道 ID 也是如此。 请确保这两个参数在 CSIRX 中与传感器输出相匹配。  

    此致、

    Brijesh

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

    您好、Brijesh:

    我尝试启用日志来检查 csirx 侧是否有问题、例如 GT_0trace。

    我在 DSS_dispDrvDuceue 中找到打印错误、如下所示:

    [MCU2_0] 314.021620 s:[DSS_dispDrvDequeue、773,50000]再次:Out 队列空。 请重试

    这是什么意思?

    该错误是否有我们在设置时遗漏的任何问题、您能通过此错误日志指出什么问题吗、我们可以重点讨论该问题。

    感谢您的支持。

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

    尊敬的 Chen:

    但这似乎来自 Display 驱动程序、这基本上意味着你在 帧显示完成之前调用 Fvid2_dequeue、这就是 队列为空的原因。 您是否正在使用显示驱动程序? 我以为您使用的是 CSIRX 和 CSITX、不是吗?  

    此致、

    Brijesh

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

    您好、Brijesh:

    运行 ./run_app_single_cam.sh 并选择相机设置时

    选择摄像机端口索引0-11:0

    LDC 选择是(1)/否(0): 0
    双路 FCP 启用 MV 选择是(1)/否(0):0
    CAC 选择是(1)/否(0): 0

    ================
    演示:单摄像头、带2A
    ================

    P:打印性能统计信息

    S:将传感器 RAW、VISS 输出和 H3A 输出图像保存到文件系统

    E:出口业绩统计

    U:从文件系统更新 DCC


    X:退出

    65.293384 s:ISS:启动传感器[OX08B40-UB953_LI]...完成!!

    [MCU2_0] 66.187359 s:[DSS_dispDrvDequeue、773,50000]再次:Out 队列为空。 请重试

    ..........

    打印此日志、直到按 x、表示退出

    然后按以下方式打印

    [MCU2_0] 96.693418 s:[CsirxDrv_dequeue、823,50000] no_more_buffers:不再有带有驱动器的缓冲器
    [MCU2_0] 96.693468 s:========================
    [MCU2_0] 96.693505 s:捕获状态:实例|0
    [MCU2_0] 96.693527 s:=======================
    [MCU2_0] 96.693560s:OverflowCount:0
    [MCU2_0] 96.693585 s:spuriousUdmaIntrCount:0
    [MCU2_0] 96.693610 s:frontFIFOOvflCount:0
    [MCU2_0] 96.693632s:crcCount:0
    [MCU2_0] 96.693652 s:eccCount:0
    [MCU2_0] 96.693672 s:已校正 EccCount:0
    [MCU2_0] 96.693700 s:dataIdErrorCount:0
    [MCU2_0] 96.693724 s:invalidAccessCount:0
    [MCU2_0] 96.693746:invalidSpCount:0
    [MCU2_0] 96.693772s:strmFIFOOvflCount[0]:0
    [MCU2_0] 96.693799 s:strmFIFOOvflCount[1]:0
    [MCU2_0] 96.693823 s:通道编号|帧队列计数|帧取消队列计数|帧丢弃计数|错误帧计数|
    [MCU2_0] 96.693870 s:0 | 4 | 4 | 0 | 0 |

    在结尾找到日志"[MCU2_0] 96.693418 s:[CsirxDrv_dequeue、823,50000] no_more_buffers:no more buffers with driver"

    请帮我检查一下?  

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

    尊敬的 Chen:

    您在此示例中是否进行了任何更改? 因为所有 入队的4个缓冲区都已出队。 什么连接 到 CSIRX 捕获节点? 是 VISS 吗? 因为它看起来像是下一个 组件、可能是挂起的、因此不会返回缓冲区。  

    此致、

    Brijesh

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

    您好、Brijesh:

    我在 CsirxDrv_getBpp 中添加日志以检查数据类型。 使用 raw10是正确的。

    和虚拟通道 ID 如何检查? 它是 idx 吗? 我们只设置一个相机,似乎正确的日志 idx: 0, numCh: 1.

    [MCU2_0] 68.737560 s:[CsirxDrv_validateCreateParams、2,213,10000] idx:0、numCh:1
    [MCU2_0] 68.737613 s:[CsirxDrv_getBpp、1,834,10000] loopCnt:15、dt:43、bpp:10

    dataTypeInfo gRxDtInfo[]=

    {FVID2_CSI2_DF_YUV420_8B、8U、CSIRX_BITS_PER_PIXEL_16_BITS}、
    {FVID2_CSI2_DF_YUV420_10B、10U、CSIRX_BITS_PER_PIXEL_32_BITS}、
    {FVID2_CSI2_DF_YUV420_8B_legacy、12U、CSIRX_BITS_PER_PIXEL_12_BITS}、
    {FVID2_CSI2_DF_YUV420_8B_Chroma_SHIFT、8U、CSIRX_BITS_PER_PIXEL_12_BITS}、
    {FVID2_CSI2_DF_YUV420_10B_Chroma_SHIFT、10U、CSIRX_BITS_PER_PIXEL_12_BITS}、
    {FVID2_CSI2_DF_YUV422_8B、16U、CSIRX_BITS_PER_PIXEL_16_BITS}、
    {FVID2_CSI2_DF_YUV422_10B、20U、CSIRX_BITS_PER_PIXEL_64_BITS}、
    {FVID2_CSI2_DF_RGB444、12U、CSIRX_BITS_PER_PIXEL_16_BITS}、
    {FVID2_CSI2_DF_RGB555、15U、CSIRX_BITS_PER_PIXEL_16_BITS}、
    {FVID2_CSI2_DF_RGB565、16U、CSIRX_BITS_PER_PIXEL_16_BITS}、
    {FVID2_CSI2_DF_RGB666、18u、CSIRX_BITS_PER_PIXEL_32_BITS}、
    {FVID2_CSI2_DF_RGB888、24U、CSIRX_BITS_PER_PIXEL_32_BITS}、
    {FVID2_CSI2_DF_RAW6、6U、CSIRX_BITS_PER_PIXEL_8_BITS}、
    {FVID2_CSI2_DF_RAW7、7U、CSIRX_BITS_PER_PIXEL_8_BITS}、
    {FVID2_CSI2_DF_RAW8、8U、CSIRX_BITS_PER_PIXEL_8_BITS}、
    {FVID2_CSI2_DF_RAW10、10u、CSIRX_BITS_PER_PIXEL_16_BITS}、
    {FVID2_CSI2_DF_RAW12、12U、CSIRX_BITS_PER_PIXEL_16_BITS}、
    {FVID2_CSI2_DF_RAW14、14U、CSIRX_BITS_PER_PIXEL_16_BITS}、
    {FVID2_CSI2_DF_RAW16、16U、CSIRX_BITS_PER_PIXEL_16_BITS}、
    {FVID2_CSI2_DF_RAW20、20u、CSIRX_BITS_PER_PIXEL_32_BITS}、

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

    您好、Brijesh:

    我们只在 app_single_cam_main.c 中添加日志

    我们可以绕过 VISS 吗?

    感谢您的支持。

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

    尊敬的 Chen:

    嗯、可以绕过 VISS、但由于您的输入数据类型为 RAW10、您打算在哪里/如何使用它?  请检查 YUV_CAM_INPUT 标志下的代码。 您需要更新 RAW10数据的类似代码。  

    此致、

    Brijesh

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

    您好、Brijesh:

    绕过 VISS 这条路很难、最后我们需要使用 VISS、您有什么建议来解决这个问题吗?

    我们不会修改 APP_CREATE_Graph。

    if (status == vx_SUCCESS)

    状态= vxSetNodeTarget (obj->capture_node、vx_target_string、TIVX_target_CAPTURE2);
    }
    APP_printf ("vxSetNodeTarget status:%d\n"、status);

    if (vx_Success == status)

    vxSetNodeTarget (obj->node_vis、vx_target_string、TIVX_target_VPAC_VISS1);
    tivxSetNodeParameterNumBufByIndex (obj->node_vis、6u、obj->num_cap_buf);
    }

    感谢您的支持。

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

    尊敬的 Chen:

    但是、您是否 更新了 RAW10输入的 VISS 参数? DCC 配置文件如何? 根据新传感器及其分辨率、需要对此进行更新。  

    此致、

    Brijesh

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

    您好、Brijesh:

    我已经通过在\imaging\tools\default_DCC_profile_gen\configs 中使用 default_DCC_profile_gen 更新了默认的 DCC 配置文件(请参阅 imx390_properties.txt)。

    但事实并非如此。

    您能帮助我检查以下设置吗、谢谢。

    SENSOR_ID 40.
    PRJ_DIR ../ox08b40_output
    Sensor_name ox08b40
    SENSOR_DCC_NAME OX08B40-UB953_LI

    SENSOR_WIDTH 3840.
    SENSOR_HEIGHT 2160

    # 0=RGGB;1=GRBG;2=GBRG;3=BGGR、4=Mono
    颜色模式3.

    #传感器模式: 0表示线性(无解压缩), 1表示 WDR (解压缩)
    WDR_MODE 0

    # RAW SENSOR IMAGE BIT_DEPTH :线性传感器可能为8、10或12 ;由于压扩, WDR 模式通常为12
    位深度10.

    # WDR bit_depth :解压缩后的 WDR 原始传感器图像位深度,通常为20或24
    WDR_BIT_DEPTH 20.

    # WDR 解压缩拐点(逗号分隔,中间不含空格)
    WDR_KNE_X 0,512,140,2172176409409565535
    WDR_KNE_Y 0204204816316384,65565536,1041048,063,1048063

    #传感器黑电平减去解压缩(仅适用于线性传感器和一些索尼 WDR 传感器)
    BLACK_PRE 0

    #传感器黑电平在分解后减去(适用于大多数 WDR 传感器和所有线性传感器)
    Black_post 0

    #内部压缩20/24位 WDR RAW 至16位 ISP 的伽马值
    #对于24位 WDR 传感器,通常约为50 (0.5 ),对于20位传感器,通常约为70 (0.7 )
    中国人民银行70

    H3A 输入位范围的# LSB 位置(从 BIT-H3A_INPUT_LSB 到 BIT-H3A_INPUT_LSB+9)
    H3A_INPUT_LSB 2.

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

    好的、在检查 DCC 配置之前、让我们首先检查 VISS 状态。 您可以 从 0x3810000偏移读回8个32位寄存器并 共享它们吗?

    此致、

    Brijesh

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

    您好、Brijesh:

    我如何读取此 0x3810000? 您能提供更多细节吗、谢谢。

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

    您好、Brijesh:

    尝试添加日志以读取 CsirxDrv_queue 中的寄存器

    但读起来似乎不成功、对吗?

    您能帮助我检查一下如何阅读它吗、谢谢。

    MCU2_0] 50.626671:[CsirxDrv_queue、545,10000] addr:0x3810000、regVal:0x0
    [MCU2_0] 50.626708 s:[CsirxDrv_queue、545,10000] addr:0x3810004、regVal:0x0
    [MCU2_0] 50.626745 s:[CsirxDrv_queue、545,10000] addr:0x3810008、regVal:0x0
    [MCU2_0] 50.626782:[CsirxDrv_queue、545,10000] addr:0x381000c、regVal:0x0
    [MCU2_0] 50.626819 s:[CsirxDrv_queue、545,10000] addr:0x3810010、regVal:0x0
    [MCU2_0] 50.626856 s:[CsirxDrv_queue、545,10000] addr:0x3810014、regVal:0x0
    [MCU2_0] 50.626893 s:[CsirxDrv_queue、545,10000] addr:0x3810018、regVal:0x0
    [MCU2_0] 50.626930 s:[CsirxDrv_queue、545,10000] addr:0x381001c、regVal:0x0

    for (int addr = 0;addr < 8;addr ++){
    uint32_t regVal = CSL_REG32_RD (CSL_VPAC0_HTS_VBUSP_BASE + addr * 4);
    GT_2trace (CsirxTrace、GT_ERR、"addr:0x%lx、regVal:0x%x\n"、CSL_VPAC0_HTS_VBUSP_BASE + addr * 4、regVal);
    }

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

    尊敬的 Chen:

    当它挂起时、您是否能够使用 Linux 上的 devmem2实用程序来转储这些寄存器值?  

    此致、

    Brijesh

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

    您好、Brijesh:

    如果./run_app_single_cam.sh  脚本正在运行、则不能使用 devmem2。

    命令锁定在脚本中。

    但我会在 DSS_dispDrvDeque 中添加日志、该日志在这里 挂起。

    并尝试打印地址0x3820000、它具有相应的值。 我认为这个功能是有效的。

    [MCU2_0] 53.448955 s:[DSS_dispDrvDequeue、777,10000]地址:0x3810000、regVal:0x0
    [MCU2_0] 53.448995 s:[DSS_dispDrvDequue、777,10000] addr:0x3810004、regVal:0x0
    [MCU2_0] 53.449034 s:[DSS_dispDrvDequeue、777,10000]地址:0x3810008、regVal:0x0
    [MCU2_0] 53.449072 s:[DSS_dispDrvDequeue、777,10000] addr:0x381000c、regVal:0x0
    [MCU2_0] 53.449111 s:[DSS_dispDrvDequeue、777,10000] addr:0x3810010、regVal:0x0
    [MCU2_0] 53.449149 s:[DSS_dispDrvDequeue、777,10000] addr:0x3810014、regVal:0x0
    [MCU2_0] 53.449187 s:[DSS_dispDrvDequeue、777,10000] addr:0x3810018、regVal:0x0
    [MCU2_0] 53.449226 s:[DSS_dispDrvDequeue、777,10000] addr:0x381001c、regVal:0x0
    [MCU2_0] 53.449267 s:[DSS_dispDrvDequeue、780,10000]测试地址:0x3820000、regVal:0x64c60001.
    [MCU2_0] 53.449308 s:[DSS_dispDrvDequue、783,50000]再次:Out 队列为空。 请重试

    此外、尝试使用 devmem2来读取 0x3810000和 0x3820000中的地址、结果是相同的。

    但在不运行脚本时它会读取地址。

    root@j721s2-evm:/opt/vision_apps devmem2 0x3810000
    /dev/mem 打开。
    存储器映射在地址0xffac145000处。
    在地址0x03810000 (0xffffff145000)处读取:0x00000000
    root@j721s2-evm:/opt/vision_apps devmem2 0x3820000
    /dev/mem 打开。
    内存映射在地址0xff8aa4b000处。
    在地址0x03820000 (0xff8aa4b000)上读取:0x64C60001

    那么、按照此日志、VISS 是否未处于活动状态?

    感谢你的帮助。

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

    您好、Brijesh:

    我们在传感器端更改 mipi 传输方法、并成功从传感器接收2个帧、经验证在监视器中显示。

    现在、请查看以下错误日志。

    [MCU2_0] 63.292777 s:vx_zone_error:[tivxCaptureDequeueFrameFromDriver:885] capture:error:Ch0的帧不完整!!

    您能帮我检查此错误日志吗?

    TI EVM 可以接收什么 mipi 格式? 能否提供有关此方面的更多详细信息?

    谢谢。

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

    尊敬的 Chen:

    您是否在挂起时获取了上述寄存器转储? 因为在上面的寄存器转储中、我没有看到 VISS 挂起/卡住。 因此、假设捕获成功、在捕获和访问之间应该发生缓冲器旋转。

    "不完整错误帧"当 CSIRX 中配置的帧大小与来自 传感器的接收帧大小不同时、就会出现该问题。 您能否再次检查您的传感器参数?  

    此致、

    Brijesh

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

    您好、Brihesh:

    我们确认图像输出尺寸是否正确。

    但仍会出现错误日志"[MCU2_0] 75.698125 s:vx_zone_error:[tivxCaptureDequeueFrameFromDriver:885] capture:error:Incomplete Frame for Ch0!!"

    还有其他原因发生吗?

    谢谢。

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

    尊敬的 Chen:

    否、您是从视觉应用运行的哪个示例? 您是否在 C7x 上运行某些算法?  

    即使遇到此错误、捕获也不会停止。 它将继续捕获这些帧并提供给下一个组件。  

    此致、

    Brijesh

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

    您好、Brijesh:

    是的、我们只使用视觉应用、而不运行其他算法。

    但是错误日志只出现两次,您的意思是错误日志"Capture: Error: Incomplete Frame for Ch0 !!" 始终打印?

    谢谢。

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

    尊敬的 Chen:

    即使接收到的帧少一个字节、也会打印该错误。 因此、请再次检查 CSIRX 中的大小以及从 传感器接收到的数据。 它们应该完全匹配。  

    由于您仅接收2帧、此打印也只会出现两次。  

    此致、

    Brijesh