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.

[参考译文] SK-TDA4VM:连接两个摄像头时无法获得正确的流媒体!

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1527163/sk-tda4vm-not-able-to-get-proper-stream-while-two-camera-is-connected

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

工具/软件:

您好:

目前、我们正在将 AR0234 传感器 (Bayer - GRBG10) 与 TDA4VM 进行移植。 我们已经完成了基本调优、可以获得良好的预览。 但我在连接两个摄像头时遇到了问题。 连接两个摄像头时、我在一个摄像头 (J19) 中无法获得正确的流式传输、在另一个摄像头 (J18) 中、我可以获得正确的流式传输。 下面是  我已经执行的步骤。

1.我运行了用于 media-ctrl 链接的 setup_camera.sh 脚本。 (请注意,camera0 连接到 J18、camera1 连接到 J19)


2.只有连接一个摄像头时(在 J18 和 J19 连接器中)、我才能获得正确的流。


3.连接两个摄像头后、可以在 J18 连接器中获得正确的流。 (请注意,J19 摄像头未进行流式传输)。  

gst_debug=tiovxisp:1 gst-launch-1.0 v4l2src device=/dev/video-ar0234-cam0 io-mode=dmabuf-import! 视频/x-Bayer、宽度=1920、高度=1200、帧速率=32/1、格式=grbg10! tiovxisp SINK_0:::device=/dev/v4l-ar0234-subdev0 sensor-name=“sensor_AR0234" dcc-isp-file=/opt/imaging/ar0234/linear/7th/dcc_viss.bin“ dcc-isp-file=/opt/imaging/ar0234/linear/7th/dcc_viss.bin SINK_0::ae-MODE=0 SINK_0::dcc-2a-file=/opt/imaging/ar0234/linear/7th/dcc_2a.bin format-mb=9! video/x-raw、格式=NV12、宽度=1920、高度=1200、帧速率=60/1! kmssink driver-name=tidss sync=false


     
3.连接两个摄像头时、J19 连接器中无法获得正确的流。 (请注意,J18 摄像头未进行流式传输)

gst_debug=tiovxisp:1 gst-launch-1.0 v4l2src device=/dev/video-ar0234-cam1 io-mode=dmabuf-import! 视频/x-Bayer、宽度=1920、高度=1200、帧速率=32/1、格式=grbg10! tiovxisp SINK_0:::device=/dev/v4l-ar0234-subdev1 sensor-name=“sensor_AR0234" dcc-isp-file=/opt/imaging/ar0234/linear/7th/dcc_viss.bin“ dcc-isp-file=/opt/imaging/ar0234/linear/7th/dcc_viss.bin SINK_0::ae-MODE=0 SINK_0::dcc-2a-file=/opt/imaging/ar0234/linear/7th/dcc_2a.bin format-mb=9! video/x-raw、格式=NV12、宽度=1920、高度=1200、帧速率=60/1! kmssink driver-name=tidss sync=false



4.我已经尝试并行检查两个摄像头的流媒体,但我 J18 摄像头 FPS 下降,和 J19 摄像头给出了损坏的流

 gst-launch-1.0 -v \
v4l2src device=/dev/video-ar0234-cam0 io-mode=5! 视频/x-Bayer、宽度=1920、高度=1200、帧速率=30/1、格式=grbg10! 队列泄漏=2! tiovxisp SINK_0:::device=/dev/v4l-ar0234-subdev0 sensor-name=SENSOR_AR0234 dcc-isp-file=/opt/imaging/ar0234/linear/7th/dcc_viss.bin SINK_0::dcc-2a-file=/opt/imaging/ar0234/linear/7th/dcc_2a.bin format-msb=9 SINK_0:::pool-size=8 src::pool-size=8! video/x-raw、格式=NV12、宽度=1920、高度=1200! 排队! 马赛克.SINK_0 \
v4l2src device=/dev/video-ar0234-cam1 io-mode=5! 视频/x-Bayer、宽度=1920、高度=1200、帧速率=30/1、格式=grbg10! 队列泄漏=2! tiovxisp SINK_0:::device=/dev/v4l-ar0234-subdev1 sensor-name=SENSOR_AR0234 dcc-isp-file=/opt/imaging/ar0234/linear/7th/dcc_viss.bin SINK_0::dcc-2a-file=/opt/imaging/ar0234/linear/7th/dcc_2a.bin format-msb=9 SINK_0:::pool-size=8 src::pool-size=8! video/x-raw、格式=NV12、宽度=1920、高度=1200! 排队! 马赛克.SINK_1 \
tiovxmosaic name=mosaic \
SINK_0::startx=“<0>" SINK_0“ SINK_0::starty=“<0>" SINK_0“ SINK_0::width=“<960>" SINK_0“ SINK_0::高度=“<640>"\“\
Sink_1::startx=“<960>" Sink_1“ Sink_1::starty=“<0>" Sink_1“ Sink_1::width=“<960>" Sink_1“ Sink_1::高度=“<640>"!“! \
视频/x-RAW、宽度=2560、高度=1440! kmssink driver-name=tidss sync=false

5.下面是 v4l2 的输出。 (连接两个摄像头时,摄像头 1 中的 fps 更低、但如果我在 J18 和 J19 中仅连接一个摄像头、则可以获得 30fps)

请告诉我们、我们如何解决此问题?

提前感谢。

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

    您好、

    您正在运行哪个 SDK?

    您能否发送用于其他摄像机的设备树叠加层?

    此致、
    Jared

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

    我使用的是 SDK  11.00.00.08。我已在此处连接设备树。

    // SPDX-License-Identifier: GPL-2.0-only OR MIT
    /**
     */
    
    /dts-v1/;
    /plugin/;
    
    #include <dt-bindings/gpio/gpio.h>
    #include "k3-pinctrl.h"
    
    &{/} {
    	clk_imx415_fixed: imx415-xclk {
    		compatible = "fixed-clock";
    		#clock-cells = <0>;
    		clock-frequency = <24000000>;
    	};
    };
    
    &csi_mux {
    	idle-state = <1>;
    };
    
    &main_pmx0 {
    
    	main_cam0_reset_pins_default: main-cam0-reset-pins-default {
    		pinctrl-single,pins = <
    			J721E_IOPAD(0x1D4, PIN_OUTPUT, 7) /* (Y3) SPI1_CS0 */
    		>;
    	};
    
    
    	main_cam1_reset_pins_default: main-cam1-reset-pins-default {
    		pinctrl-single,pins = <
    			J721E_IOPAD(0x1E0, PIN_OUTPUT, 7) /* (Y5) SPI1_D0 */
    		>;
    	};
    
    	main_csi_mux_sel2_pins_default: main-csi-mux-sel2-pins-default {
    		pinctrl-single,pins = <
    			J721E_IOPAD(0x164, PIN_OUTPUT, 7) /* (V29) RGMII5_TD2 */
    		>;
    	};
    };
    
    &main_gpio0 {
    	csi-mux-hog {
    		/* CSI_MUX_SEL_2 */
    		gpio-hog;
    		gpios = <88 GPIO_ACTIVE_HIGH>;
    		output-high;
    		line-name = "CSI_MUX_SEL_2";
    	};
    };
    
    /* CAM0 I2C */
    &cam0_i2c {
    	#address-cells = <1>;
    	#size-cells = <0>;
    	
    	tca6424_0: tca6424_0@22 {
    		compatible = "ti,tca6424";
    		gpio-controller;
    		#gpio-cells = <2>;
    		reg = <0x22>;
    		pinctrl-names = "default";
    		pinctrl-0 = <&main_cam0_reset_pins_default>;
    		reset-gpios = <&main_gpio0 116 GPIO_ACTIVE_HIGH>;
    		status = "okay";
    	};
    
    	imx415_0: imx415_0@42 {
    		compatible = "sony,imx415";
    		reg = <0x42>;
    		clocks = <&clk_imx415_fixed>;
    		clock-names = "xclk";
    		reset-gpios = <&tca6424_0 1 GPIO_ACTIVE_HIGH>;
    		pwdn-gpios = <&tca6424_0 2 GPIO_ACTIVE_HIGH>;
    		status = "okay";
    
    		port {
    			csi2_cam0: endpoint {
    				remote-endpoint = <&csi2rx0_in_sensor>;
    				link-frequencies = /bits/ 64 <456000000>;
    				clock-lanes = <0>;
    				data-lanes = <1 2>;
    			};
    		};
    	};	
    };
    
    /* CAM1 I2C */
    &cam1_i2c {
    	#address-cells = <1>;
    	#size-cells = <0>;
    	
    	tca6424_1: tca6424_1@22 {
    		compatible = "ti,tca6424";
    		gpio-controller;
    		#gpio-cells = <2>;
    		reg = <0x22>;
    		pinctrl-names = "default";
    		pinctrl-0 = <&main_cam1_reset_pins_default>;
    		reset-gpios = <&main_gpio0 119 GPIO_ACTIVE_HIGH>;
    		status = "okay";
    	};
    
    	imx415_1: imx415_1@42 {
    		compatible = "sony,imx415";
    		reg = <0x42>;
    		clocks = <&clk_imx415_fixed>;
    		clock-names = "xclk";
    		reset-gpios = <&tca6424_1 1 GPIO_ACTIVE_HIGH>;
    		pwdn-gpios = <&tca6424_1 2 GPIO_ACTIVE_HIGH>;
    		status = "okay";
    
    		port {
    			csi2_cam1: endpoint {
    				remote-endpoint = <&csi2rx1_in_sensor>;
    				link-frequencies = /bits/ 64 <456000000>;
    				clock-lanes = <0>;
    				data-lanes = <1 2>;
    			};
    		};
    	};
    };
    
    
    &cdns_csi2rx0 {
    	ports {
    		#address-cells = <1>;
    		#size-cells = <0>;
    
    		csi0_port0: port@0 {
    			reg = <0>;
    			status = "okay";
    
    			csi2rx0_in_sensor: endpoint {
    				remote-endpoint = <&csi2_cam0>;
    				bus-type = <4>; /* CSI2 DPHY. */
    				clock-lanes = <0>;
    				data-lanes = <1 2>;
    			};
    		};
    
    		csi0_port1: port@1 {
    			reg = <1>;
    			status = "disabled";
    		};
    
    		csi0_port2: port@2 {
    			reg = <2>;
    			status = "disabled";
    		};
    
    		csi0_port3: port@3 {
    			reg = <3>;
    			status = "disabled";
    		};
    
    		csi0_port4: port@4 {
    			reg = <4>;
    			status = "disabled";
    		};
    	};
    };
    
    &dphy0 {
    	status = "okay";
    };
    
    &ti_csi2rx0 {
    	status = "okay";
    };
    
    &cdns_csi2rx1 {
    	ports {
    		#address-cells = <1>;
    		#size-cells = <0>;
    
    		csi1_port0: port@0 {
    			reg = <0>;
    			status = "okay";
    
    			csi2rx1_in_sensor: endpoint {
    				remote-endpoint = <&csi2_cam1>;
    				bus-type = <4>; /* CSI2 DPHY. */
    				clock-lanes = <0>;
    				data-lanes = <1 2>;
    			};
    		};
    
    		csi1_port1: port@1 {
    			reg = <1>;
    			status = "disabled";
    		};
    
    		csi1_port2: port@2 {
    			reg = <2>;
    			status = "disabled";
    		};
    
    		csi1_port3: port@3 {
    			reg = <3>;
    			status = "disabled";
    		};
    
    		csi1_port4: port@4 {
    			reg = <4>;
    			status = "disabled";
    		};
    	};
    };
    
    &dphy1 {
    	status = "okay";
    };
    
    &ti_csi2rx1 {
    	status = "okay";
    };

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

    您好、

    您是否尝试过为两个摄像头测试单独的设备树?

    下面是我眼中所有可能的组合:

    j18dt J19dt J18 硬件 J19 硬件 J18 流传输 J19 streamimg J18 行为 J19 行为  
    被启用 禁用 互联 已断开连接 是的 ??? 不适用
    被启用 禁用 互联 互联 是的 ??? 不适用
    禁用 被启用 已断开连接 互联 是的 不适用 ???
    禁用 被启用 互联 互联 是的 不适用 ???
    被启用 被启用 互联 已断开连接 是的 ??? 不适用
    被启用 被启用 已断开连接 互联 是的 不适用 ???
    被启用 被启用 互联 互联 是的 正常工作 不适用
    被启用 被启用 互联 互联 是的 不适用 已损坏
    被启用 被启用 互联 互联 是的 是的 FPS 下降 已损坏

    您能否在表格中填写观察到的行为?

    如果在禁用设备树时摄像头出现故障、则表示我认为存在硬件问题。

    此致、
    Jared

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

    感谢您的答复、此信息有助于我解决问题。 这解决了我的问题。