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.

[参考译文] AM5728:将 ov5640 摄像头移植到 TI Linux SDK 9.03。

Guru**** 2568585 points
Other Parts Discussed in Thread: AM5728

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1542118/am5728-porting-ov5640-camera-onto-to-ti-linux-sdk-9-03

器件型号:AM5728


工具/软件:

您好、

我有基于 TI AM5728 EVM 的 (e2e.ti.com/.../am5728-unable-to-get-correct-capture-with-ov5640-green-pink-screen-issue 中提到的相同定制电路板。

我运行的是最新版本  Linux PSDK 9.03  写出来。 我做了与上述文章中描述的相同 DTS 更改。 (请参阅下面的 DTS 更改:-)

clk_ov5640_fixed: clk_ov5640_fixed {
                          compatible = "fixed-clock";
                          #clock-cells = <0>;
                          clock-frequency = <24000000>;
                  };
clk_ov5640: clk_ov5640 {
                    compatible = "gpio-gate-clock";
                    #clock-cells = <0>;
                    clocks = <&clk_ov5640_fixed>;
                    enable-gpios = <&gpio5 18 GPIO_ACTIVE_HIGH>; //[04] changed in VIC2 from ACTIVE_LOW
                };


&vip2 {
    status = "okay";
};

&vin3a {
    status = "okay";

    port {
        vin3a_ep: endpoint {
            remote-endpoint = <&cam>;
            slave-mode;
            bus-width = <8>;
            data-shift = <0>;
            hsync-active = <1>;
            vsync-active = <0>;
            pclk-sample = <0>;
        };
    };
};

&i2c3 {
        status = "okay";
        clock-frequency = <400000>;

        ov5640@3c {
                compatible = "ovti,ov5640";
                reg = <0x3c>;
                status="okay";
                clocks = <&clk_ov5640>;
                clock-names = "xclk";
                powerdown-gpios = <&gpio5 17 GPIO_ACTIVE_HIGH>;

                port {
                        cam: endpoint {
                                bus-width = <8>;
                                data-shift = <0>;
                                hsync-active = <1>;
                                vsync-active = <0>;
                                pclk-sample = <0>;
                                remote-endpoint = <&vin3a_ep>;
                        };
                };
        };
};

我在内核中启用了 ov5640 驱动程序、我也在处理它的所有依赖项。 我使用的驱动程序代码与中的驱动程序代码相同  Linux 9.03 PSDK 。 驱动程序的路径为:   

/opt/ti-processor-sdk-linux-am57xx-evm-09_03_06_05/board-support/ti-linux-kernel-6.1.119 +gitAUTOINC+e4e8b16e66-ti/drivers/media/i2c/ov5640.c  


但摄像机设备未注册为/dev/video1(捕获设备)。 系统 /dev/video0 。  

我已在每个函数中放入打印件 drivers/media/i2c/ov5640.c  和  /drivers/media/platform/ti/vpe/vip.c  (请参阅下面的 dmesg 日志)

[    0.326049] VM********************* File: drivers/input/keyboard/omap4-keypad.c, Line: 358, Function: omap4_keypad_probe ****************************
[    9.326629] VM********************* File: drivers/media/i2c/ov5640.c, Line: 3850, Function: ov5640_probe ****************************
[    9.362701] VM********************* File: drivers/media/i2c/ov5640.c, Line: 3814, Function: ov5640_get_regulators ****************************
[    9.496124] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 3937, Function: vip_probe ****************************
[    9.597930] VM********************* File: drivers/media/i2c/ov5640.c, Line: 3442, Function: ov5640_init_controls ****************************
[    9.660461] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 3782, Function: vip_endpoint_scan ****************************
[    9.686187] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 333, Function: vip_init_format_info ****************************
[    9.817169] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 3617, Function: get_field ****************************
[    9.884002] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 529, Function: vip_shared_set_clock_enable ****************************
[    9.938079] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 569, Function: vip_top_vpdma_reset ****************************
[   10.002136] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 451, Function: insert_field ****************************
[   10.018829] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 451, Function: insert_field ****************************
[   10.044342] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 3867, Function: vip_probe_slice ****************************
[   10.065155] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 540, Function: vip_top_reset ****************************
[   10.087524] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 451, Function: insert_field ****************************
[   10.102722] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 451, Function: insert_field ****************************
[   10.118164] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 629, Function: vip_set_slice_path ****************************
[   10.158843] VM********************* File: drivers/media/i2c/ov5640.c, Line: 3827, Function: ov5640_check_chip_id ****************************
[   10.207580] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 451, Function: insert_field ****************************
[   10.267791] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 3867, Function: vip_probe_slice ****************************
[   10.400909] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 540, Function: vip_top_reset ****************************
[   10.490997] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 451, Function: insert_field ****************************
[   10.583160] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 451, Function: insert_field ****************************
[   10.583160] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 629, Function: vip_set_slice_path ****************************
[   10.583160] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 451, Function: insert_field ****************************
[   10.588836] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 3937, Function: vip_probe ****************************
[   10.588867] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 3782, Function: vip_endpoint_scan ****************************
[   10.604034] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 3624, Function: vip_vpdma_fw_cb ****************************
[   10.604064] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 3801, Function: vip_probe_complete ****************************
[   10.604064] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 3704, Function: fwnode_graph_get_next_endpoint_by_regs ****************************
[   10.604095] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 3583, Function: alloc_port ****************************
[   10.604095] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 3712, Function: vip_register_subdev_notif ****************************
[   10.604095] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 3704, Function: fwnode_graph_get_next_endpoint_by_regs ****************************
[   10.604125] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 3704, Function: fwnode_graph_get_next_endpoint_by_regs ****************************
[   10.604125] VM********************* File: drivers/media/platform/ti/vpe/vip.c, Line: 3704, Function: fwnode_graph_get_next_endpoint_by_regs ****************************


什么是我的缺失?  

请帮助解决此问题!

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

    你好、Vishal、

     ov5640 探测是否成功? 如果您运行 lsmod、会出现什么? 您可以发送 dmesg 吗?

    我注意到端点值与中的 DTS 不同: AM5728:使用 ov5640 无法获得正确的捕获(绿色/粉色屏幕问题)。 这会引起问题吗?

    此致、
    Jared

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

    你好、Vishal、

    [引述 userid=“436452" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1542118/am5728-porting-ov5640-camera-onto-to-ti-linux-sdk-9-03/5933530

    实际上、我在 上面的 dmesg 输出中得到了 vin3a 打印(如下所示) 、但我没有使用我的 dts 文件。

    [/报价]

    我假设与之前 E2E 的版本相比、您的器件树存在一些问题。

    [引述 userid=“436452" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1542118/am5728-porting-ov5640-camera-onto-to-ti-linux-sdk-9-03/5933530

    这种行为背后的原因可能是什么??

    [/报价]

    您能否将照片添加到驱动程序/media/platform/ti/VPE/vip.c 驱动程序? 似乎没有基于缺失的 dmesg 语句创建/分配流。

    此致、
    Jared

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

    你好、Vishal、

    您的摄像头可能未正确开机或未正确插入。 请确保您的摄像头的引脚复用正确无误。

    您可以通过使用 i2cdetect 扫描 i2c 线路来检查摄像头是否已打开/可探测。

    此致、
    Jared

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

    你好、Vishal、

    似乎已将新属性添加到驱动程序的设备树节点。  ti,vip-channels 属性。

    能否在设备树节点中设置该值?

    您可能需要向 6.3 版本添加打印件、以查看使用了多少信道/设置值的内容。

    此致、
    Jared

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

    你好、Vishal、

    是的、您应设置 GPIO 的引脚多路复用。

    以下应该是 GPIO5_17 和 GPIO5_18 的正确宏:

    DRA7XX_CORE_IOPAD(0x1644, PIN_OUTPUT | MUX_MODE14)
    DRA7XX_CORE_IOPAD(0x1648, PIN_OUTPUT | MUX_MODE14)
    

    您可能还必须将 pinctrl-0 和 pinctrl-names 属性添加到节点。

    此致、
    Jared

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

    你好、Vishal、

    您可以将 pinmux 设置添加到 dra7_PMX_core 节点。 这可以在 dtsi 或 dts 中完成:

    &dra7_pmx_core {
        camera_gpio: camera-gpio {
            DRA7XX_CORE_IOPAD(0x1644, PIN_OUTPUT | MUX_MODE14)
            DRA7XX_CORE_IOPAD(0x1648, PIN_OUTPUT | MUX_MODE14)
        };
    };

    pinctrl-0 和 pinctrl-names 属性应添加到 ov5640 节点:

            ov5640@3c {
                    compatible = "ovti,ov5640";
                    reg = <0x3c>;
                    clock-names = "xclk";
                    clocks = <&clk_ov5640>;
                    pinctrl-names = "default";
                    pinctrl-0 = <&camera_gpio>;
                    powerdown-gpios = <&gpio5 17 GPIO_ACTIVE_HIGH>;
    
                    port {
                            cam: endpoint {
                                    bus-width = <8>;
                                    data-shift = <2>;
                                    hsync-active = <1>;
                                    vsync-active = <1>;
                                    pclk-sample = <1>;
                                    remote-endpoint = <&vin3a_ep>;
                            };
                    };
            };

    此致、
    Jared

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

    你好、Vishal、

    看起来正在找到 GPIO。 gpiochip6 对应于 GPIO5(两者都有 HEADER_INT)。

    查看类似的器件树 (am57xx-EVM-ov10635.dtso) 和 ov5640 YAML、可能需要设置 reset-gpioes 属性。

    // SPDX-License-Identifier: GPL-2.0
    /*
     * Copyright (C) 2025 Texas Instruments Incorporated - http://www.ti.com/
     */
    
    /dts-v1/;
    /plugin/;
    #include <dt-bindings/gpio/gpio.h>
    
    &vip1 {
    	status = "okay";
    };
    
    &vip2 {
    	status = "okay";
    };
    
    
    &vip3 {
    	status = "okay";
    };
    
    / {
    	fragment@101 {
    		target-path = "/";
    
    		__overlay__ {
    			clk_ov10635: clock-gate {
    				compatible = "gpio-gate-clock";
    				#clock-cells = <0>;
    				clocks = <&clk_ov10635_fixed>;
    				enable-gpios = <&gpio5 10 GPIO_ACTIVE_HIGH>;
    			};
    
    			clk_ov10635_fixed: clock-fixed {
    				compatible = "fixed-clock";
    				#clock-cells = <0>;
    				clock-frequency = <24000000>;
    			};
    		};
    	};
    };
    
    &i2c5 {
    	status = "okay";
    	clock-frequency = <400000>;
    
    	#address-cells = <1>;
    	#size-cells = <0>;
    
    	ov10635@30 {
    		compatible = "ovti,ov10635";
    		reg = <0x30>;
    		clock-names = "xvclk";
    		clocks = <&clk_ov10635>;
    		powerdown-gpios = <&gpio5 11 GPIO_ACTIVE_HIGH>;
    		reset-gpios = <&gpio4 17 GPIO_ACTIVE_HIGH>;
    
    		port {
    			cam: endpoint {
    				remote-endpoint = <&vin3a_ep>;
    				hsync-active = <1>;
    				pclk-sample = <1>;
    				vsync-active = <1>;
    				bus-width = <8>;
    			};
    		};
    	};
    };
    
    &vin3a {
    	vin3a_ep: endpoint {
    		remote-endpoint = <&cam>;
    		hsync-active = <1>;
    		pclk-sample = <1>;
    		vsync-active = <1>;
    	};
    };
    
    &gpio6 {
    	p11 {
    		gpio-hog;
    		gpios = <11 GPIO_ACTIVE_LOW>;
    		line-name = "cm-camen-gpio";
    		output-high;
    	};
    };

    您可能还需要一个挂钩来启用摄像头。

    此致、
    Jared

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

    我们只有两个用于摄像头的 GPIO、并且没有用于 RESET-GPIO 的配置。  

    Jared  

    有一些困惑。 请将其解决。

    我在 arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi 中添加了以下条目

       gpio-keys {
                    compatible = "gpio-keys";
    
                    button-user1 {
                            gpios = <&gpio1 14 0>;
                            label = "VM_HOOK_INT";
                            linux,code = <103>;
                    };
    
                    button-user2 {
                            gpios = <&gpio2 6 1>;
                            label = "VM_KEYL_INT";
                            linux,code = <102>;
                    };
    
                    button-user3 {
                            gpios = <&gpio5 1 0>;
                            label = "VM_HEADSET_INT";
                            linux,code = <108>;
                    };
    
            };
    

    实用程序启动内核并运行命令  CAT /sys/kernel/debug/gpio  我得到了以下输出:-

    oot@am57xx-evm:~# cat /sys/kernel/debug/gpio
    gpiochip0: GPIOs 0-31, parent: platform/4ae10000.gpio, gpio-0-31:
     gpio-14  (                    |VM_HOOK_INT         ) in  hi IRQ 
    
    gpiochip1: GPIOs 32-63, parent: platform/48051000.gpio, gpio-32-63:
     gpio-43  (                    |fixedregulator-vtt  ) out hi 
     gpio-50  (                    |enable              ) out lo 
    
    gpiochip2: GPIOs 64-95, parent: platform/48053000.gpio, gpio-64-95:
    
    gpiochip3: GPIOs 96-127, parent: platform/48055000.gpio, gpio-96-127:
     gpio-102 (                    |VM_KEYL_INT         ) in  hi IRQ ACTIVE LOW
     gpio-104 (                    |51000000.pcie       ) out lo ACTIVE LOW
     
    
    gpiochip4: GPIOs 128-159, parent: platform/48057000.gpio, gpio-128-159:
    
    gpiochip5: GPIOs 160-191, parent: platform/48059000.gpio, gpio-160-191:
     gpio-181 (                    |vbus                ) in  lo IRQ 
    
    gpiochip6: GPIOs 192-223, parent: platform/4805b000.gpio, gpio-192-223:
     gpio-193 (                    |VM_HEADSET_INT      ) in  lo IRQ 
     gpio-204 (                    |enable              ) out hi
     gpio-209 (                    |powerdown           ) out lo 
     gpio-210 (                    |enable              ) out hi 
    
    gpiochip7: GPIOs 224-255, parent: platform/4805d000.gpio, gpio-224-255:
     gpio-251 (                    |cd                  ) in  lo IRQ ACTIVE LOW
    
    gpiochip8: GPIOs 504-511, parent: platform/48070000.i2c:tps659038@58:tps659038_gpio, 48070000.i2c:tps659038@58:tps659038_gpio, can sleep:

    用于条目  GPIO =<&GPIO1 14 0>;  中的相应条目  CAT /sys/kernel/debug/gpio 输出  是  

    GPIO-14 (|VM_HOOK_INT) 在高 IRQ 中  根据下面的计算、这似乎很好:

    GPIO1 — 组 1 引脚 14、 因此对应的 GPIO 引脚将为 0*32 + 14 = 14、从而进入该条目 GPIO-14  可用功率。

    但是、针对  GPIO =<&GPIO2 6 1>; 它应该是 1*32+6=38、因此该条目应该是

     GPIO-38 (           |VM_KEYL_INT     ) IN Hi IRQ 低电平有效

    但它显示条目  

    GPIO-102 (           |VM_KEYL_INT     ) IN Hi IRQ 低电平有效

    类似的  GPIO =<&GPIO5 1 0>;  它应该是 4*32+ 1 =129 、因此该条目应该是

     GPIO-129 (           |VM_HEADHATHER_INT   )   

    但它显示如下:-

     GPIO-193 (           |VM_HEADHATHER_INT   )   

    类似 5_17 和 5_18  它应该是 GPIO-145 和 GPIO-146、但分别显示 GPIO-209 和 GPIO-210。

    正如我之前与大家分享的、在 6.03 SDK 中、GPIO 的所有条目都适用。

    请帮助您解决这个问题。

    [报价 userid=“574088" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1542118/am5728-porting-ov5640-camera-onto-to-ti-linux-sdk-9-03/5950053

    查看类似的器件树 (am57xx-EVM-ov10635.dtso) 和 ov5640 YAML、可能需要设置 reset-gpioes 属性。

    [/报价]

    我们只有两个用于摄像头的 GPIO、并且没有用于 RESET-GPIO 的配置。 如何添加它呢?

    [报价 userid=“574088" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1542118/am5728-porting-ov5640-camera-onto-to-ti-linux-sdk-9-03/5950053

    您可能还需要一个挂钩来启用摄像头。

    [/报价]

    并没有得到这个。 请更加具体。

    谢谢!

    - Vishal

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

    你好、Vishal、

    [引述 userid=“436452" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1542118/am5728-porting-ov5640-camera-onto-to-ti-linux-sdk-9-03/5951329

    请帮助您解决这个问题。

    [/报价]

    gpiochip6 对应于地址 0x4805b000、应该没有问题或值得担心的理由。 gpiochips 的枚举方式可能不同、可能是修补了另一个 GPIO 子段并偏移了其余子段。

    [引述 userid=“436452" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1542118/am5728-porting-ov5640-camera-onto-to-ti-linux-sdk-9-03/5951329

    我们只有两个用于摄像头的 GPIO、并且没有用于 RESET-GPIO 的配置。 如何添加它呢?

    [/报价]

    摄像头的原理图/连接是什么? 有多少行/行的功能是什么?

    [引述 userid=“436452" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1542118/am5728-porting-ov5640-camera-onto-to-ti-linux-sdk-9-03/5951329

    并没有得到这个。 请更加具体。

    [/报价]

    ov10635 dtso 包含一个用于启用摄像头的 GPIO HOG:

    &gpio6 {
    	p11 {
    		gpio-hog;
    		gpios = <11 GPIO_ACTIVE_LOW>;
    		line-name = "cm-camen-gpio";
    		output-high;
    	};
    };

    此致、
    Jared

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

    Jared

    [报价 userid=“574088" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1542118/am5728-porting-ov5640-camera-onto-to-ti-linux-sdk-9-03/5952923

    摄像头的原理图/连接是什么? 有多少行/行的功能是什么?

    [/报价]

    GPIO5_18 用于启用/禁用摄像头模块的电源。
    GPIO5_17 连接到摄像头模块的断电引脚。

    系统复位也用作摄像头模块的复位。

    - Vishal

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

    你好、Vishal、

    您能否测试摄像头是否已打开电源?

    则可以尝试从 I2C 地址读取某些内容。

    此致、
    Jared

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

    Jared

    [报价 userid=“574088" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1542118/am5728-porting-ov5640-camera-onto-to-ti-linux-sdk-9-03/5955218

    您能否测试摄像头是否已打开电源?

    [/报价]

    我们的摄像头在 6.03 SDK 中工作正常。 还有哪些其他方法可以测试相机通电?  

    [报价 userid=“574088" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1542118/am5728-porting-ov5640-camera-onto-to-ti-linux-sdk-9-03/5955218

    则可以尝试从 I2C 地址读取某些内容。

    [/报价]

    i2cdetect 命令工作正常、如下面的输出所示。 摄像头设备由摄像头驱动程序保留、因此显示在 3°C UU 。 我想、这也可以确认摄像头已通电。

    i2cdetect -y -r 2
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:                         -- -- -- -- -- -- -- -- 
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    30: -- -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- 
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    50: -- -- -- -- -- -- -- 57 -- -- -- -- -- -- -- -- 
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- UU 
    70: -- -- -- -- -- -- -- --     

    另外、  我的 rootfs 的 boot 和 boot/dtb 目录的内容如下:

    /media/cdot/rootfs/boot# ls -lart
    total 15684
    drwxr-xr-x 19 root root    4096 Mar  9  2018 ..
    lrwxrwxrwx  1 root root      31 Jul 15 16:57 uImage -> uImage-6.1.119-ti-ge4e8b16e66f5
    -rw-r--r--  1 root root 7930432 Jul 15 16:57 uImage-6.1.119-ti-ge4e8b16e66f5
    lrwxrwxrwx  1 root root      31 Jul 15 16:57 zImage -> zImage-6.1.119-ti-ge4e8b16e66f5
    -rw-r--r--  1 root root 8016384 Aug  5 12:45 zImage-6.1.119-ti-ge4e8b16e66f5
    drwxr-xr-x  2 root root   65536 Aug  5 12:45 dtb
     drwxr-xr-x  4 root root    4096 Aug  5 12:46 .
     
    /media/cdot/rootfs/boot/dtb# ls -lart
    total 228
    -rw-r--r-- 1 root root 154639 Aug  5 12:45 am57xx-beagle-x15-revc.dtb
    drwxr-xr-x 2 root root  65536 Aug  5 12:45 .
    drwxr-xr-x 4 root root   4096 Aug  5 12:46 ..

    是否 需要在 ov5640.c 驱动程序中进行任何其他更改才能显示 video1 设备文件?

    - Vishal

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

    你好、Vishal、

    此 dmesg 日志让我担心:

    [    9.353057] of_get_named_gpiod_flags: parsed 'powerdown-gpios' property of node '/ocp/interconnect@48000000/segment@0/target-module@60000/i2c@0/ov5640@3c[0]' - status (0)
    [    9.353118] gpio gpiochip6: Persistence not supported for GPIO 17
    [    9.353118] ov5640 2-003c: GPIO lookup for consumer reset
    [    9.353118] ov5640 2-003c: using device tree for GPIO lookup
    [    9.353149] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of node '/ocp/interconnect@48000000/segment@0/target-module@60000/i2c@0/ov5640@3c[0]'
    [    9.353179] of_get_named_gpiod_flags: can't parse 'reset-gpio' property of node '/ocp/interconnect@48000000/segment@0/target-module@60000/i2c@0/ov5640@3c[0]'
    [    9.353240] ov5640 2-003c: using lookup tables for GPIO lookup
    [    9.353240] ov5640 2-003c: No GPIO consumer reset found

    此致、
    Jared

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

    Jared

    您究竟担心什么? 请更加具体。

    我可以与您分享我的所有代码更改。

    但请帮助我解决问题!

    - Vishal

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

    你好、Vishal、

    dmesg 日志指出 ov5640 正在请求 Reset-GPIO。

    您可能需要使用器件树中的 RESET-GPIO 属性表示 RESET-GPIO。

    此致、
    Jared

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

    你好、Vishal、

    您 是否可以设置 ti、vip-channels =<1>?

    此外、在 drivers/media/platform/ti/VPE/vip.c 的 alloc_stream 函数中添加 print 语句  

    删除:

    ti,vip-instance = <1>; // VIP2 = instance 1
    ti,vip-port = <0>; // Port A

    添加到 vin3_EP:

            hsync-active = <1>;
            pclk-sample = <1>;
            vsync-active = <1>;

    此致、
    Jared

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

    你好、Vishal、

    IT 通道如何独立

     ti、vip-channels 属性控制通道数量、而非哪个特定通道。 我不知道它是如何/是否与 0 通道一起工作的。

    [引述 userid=“436452" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1542118/am5728-porting-ov5640-camera-onto-to-ti-linux-sdk-9-03/5975148

    如何测试相机那么?!

    [/报价]

    您是否具有任何 v4l2 或 yavta 功能?

    此致、
    Jared

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

    Jared

    [报价 userid=“574088" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1542118/am5728-porting-ov5640-camera-onto-to-ti-linux-sdk-9-03/5975995

     ti、vip-channels 属性控制通道数量、而非哪个特定通道。 我不知道它是如何/是否与 0 通道一起工作的。

    [/报价]

    好的、我已将通道数设置为 1。  

    [报价 userid=“574088" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1542118/am5728-porting-ov5640-camera-onto-to-ti-linux-sdk-9-03/5975995

    您是否具有任何 v4l2 或 yavta 功能?

    [/报价]

    root@am57xx-evm:~# v4l2-ctl -d /dev/video1 --set-fmt-video=width=640,height=480,pixelformat=YUYV
    root@am57xx-evm:~# 
    root@am57xx-evm:~# 
    root@am57xx-evm:~# yavta -c20 -Fdefault.yuv -fYUYV -s640x480 /dev/video1
    Device /dev/video1 opened.
    Device `vip' on `platform:vip2:vin3a:stream0' (driver 'vip') supports video, capture, without mplanes.
    Video format set: YUYV (56595559) 640x480 (stride 1280) field none buffer size 614400
    Video format: YUYV (56595559) 640x480 (stride 1280) field none buffer size 614400
    8 buffers requested.
    length: 614400 offset: 0 timestamp type/source: mono/EoF
    Buffer 0/0 mapped at address 0xb6dfa000.
    length: 614400 offset: 614400 timestamp type/source: mono/EoF
    Buffer 1/0 mapped at address 0xb6d64000.
    length: 614400 offset: 1228800 timestamp type/source: mono/EoF
    Buffer 2/0 mapped at address 0xb6cce000.
    length: 614400 offset: 1843200 timestamp type/source: mono/EoF
    Buffer 3/0 mapped at address 0xb6c38000.
    length: 614400 offset: 2457600 timestamp type/source: mono/EoF
    Buffer 4/0 mapped at address 0xb6ba2000.
    length: 614400 offset: 3072000 timestamp type/source: mono/EoF
    Buffer 5/0 mapped at address 0xb6b0c000.
    length: 614400 offset: 3686400 timestamp type/source: mono/EoF
    Buffer 6/0 mapped at address 0xb6a76000.
    length: 614400 offset: 4300800 timestamp type/source: mono/EoF
    Buffer 7/0 mapped at address 0xb69e0000.
    0 (0) [-] top 0 614400 B 0.000904 0.297213 0.000 fps ts /(null)
    Segmentation fault (core dumped)
    

    无论 Weston 是否在运行、都没有如上所示的命令可正常运行。  

    现在该怎么办?

    - Vishal

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

    你好、Vishal、

    您可以创建和共享媒体设备的图形吗?

    https://trac.gateworks.com/wiki/linux/media 

    此致、
    Jared

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

    你好、Vishal、

    如果您尝试将图像捕获到原始文件、您会得到什么?

    此致、
    Jared

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

    Jared

    [报价 userid=“574088" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1542118/am5728-porting-ov5640-camera-onto-to-ti-linux-sdk-9-03/5982283

    如果您尝试将图像捕获到原始文件、您会得到什么?

    [/报价]

    请参阅以下命令。

    v4l2-ctl --device=/dev/video1 \
    >          --set-fmt-video=width=640,height=480,pixelformat=NV12 \
    >          --stream-mmap \
    >          --stream-count=1 \
    >          --stream-to=frame_nv12.raw
    <
    root@am57xx-evm:~# 
    root@am57xx-evm:~# 
    root@am57xx-evm:~# ls -lart frame_nv12.raw 
    -rw-r--r-- 1 root root 460800 Aug 19 04:30 frame_nv12.raw
    root@am57xx-evm:~# 
    root@am57xx-evm:~# ffmpeg -f rawvideo -pix_fmt nv12 -s 640x480 -i frame_nv12.raw -frames:v 1 output.jpg
    ffmpeg vef Copyright (c) 2000-2022 the FFmpeg developers
      built with gcc 11.5.0 (GCC)
      configuration: --cross-prefix=arm-oe-linux-gnueabi- --ld='arm-oe-linux-gnueabi-gcc -march=armv7-a -mthumb -mfpu=neon -mfloat-abi=hard --sysroot=/recipe-sysroot' --cc='arm-oe-linux-gnueabi-gcc -march=arb
      libavutil      57. 17.100 / 57. 17.100
      libavcodec     59. 18.100 / 59. 18.100
      libavformat    59. 16.100 / 59. 16.100
      libavdevice    59.  4.100 / 59.  4.100
      libavfilter     8. 24.100 /  8. 24.100
      libswscale      6.  4.100 /  6.  4.100
      libswresample   4.  3.100 /  4.  3.100
    [rawvideo @ 0x512d0] Estimating duration from bitrate, this may be inaccurate
    Input #0, rawvideo, from 'frame_nv12.raw':
      Duration: 00:00:00.04, start: 0.000000, bitrate: 92160 kb/s
      Stream #0:0: Video: rawvideo (NV12 / 0x3231564E), nv12, 640x480, 92160 kb/s, 25 tbr, 25 tbn
    Stream mapping:
      Stream #0:0 -> #0:0 (rawvideo (native) -> mjpeg (native))
    Press [q] to stop, [?] for help
    [swscaler @ 0x63670] [swscaler @ 0x6cbe0] deprecated pixel format used, make sure you did set range correctly
    [swscaler @ 0x63670] [swscaler @ 0x93570] deprecated pixel format used, make sure you did set range correctly
    [swscaler @ 0x63670] [swscaler @ 0xb9b20] deprecated pixel format used, make sure you did set range correctly
    Output #0, image2, to 'output.jpg':
      Metadata:
        encoder         : Lavf59.16.100
      Stream #0:0: Video: mjpeg, yuvj420p(pc, progressive), 640x480, q=2-31, 200 kb/s, 25 fps, 25 tbn
        Metadata:
          encoder         : Lavc59.18.100 mjpeg
        Side data:
          cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
    frame=    1 fps=0.0 q=2.5 Lsize=N/A time=00:00:00.04 bitrate=N/A speed= 1.4x    
    video:26kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
    root@am57xx-evm:~# 
    root@am57xx-evm:~# ls -lart output.jpg 
    -rw-r--r-- 1 root root 27066 Aug 19 04:30 output.jpg
    

    无法附加 frame_nv12.raw 文件。

    这是生成的 output.jpg

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

    你好、Vishal、

    图像的分辨率是否正确? 是否无法附加原始文件?

    此致、
    Jared

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

    您好 Jared、

    有点忙、所以不能回复。  
    我使用以下命令捕获帧。  

    v4l2-ctl --device=/dev/video1 --set-fmt-video=width=640,height=480,pixelformat=NV12 --stream-mmap --stream-count=1 --stream-to=frame_nv12.raw

    并重命名了 frame_nv12.raw   如此生成到 frame_nv12.txt  以便能够连接此处。  

    e2e.ti.com/.../frame_5F00_nv12.txt

    现在、请说明问题是否可以解决。

    - Vishal

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

    你好、Vishal、

    我目前不在办公室。 请预计延迟至 9 月 2 日。

    此致、
    Jared

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

    你好、Vishal、

    看看  ov5640 的驱动程序、分辨率似乎不是 640x480。

    您确定这是正确的分辨率吗?

    此致、
    Jared

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

    Jared

    [报价 userid=“574088" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1542118/am5728-porting-ov5640-camera-onto-to-ti-linux-sdk-9-03/6006818

    看看  ov5640 的驱动程序、分辨率似乎不是 640x480。

    [/报价]

    我刚刚运行了命令以捕获帧。  

    [报价 userid=“574088" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1542118/am5728-porting-ov5640-camera-onto-to-ti-linux-sdk-9-03/6006818

    您确定这是正确的分辨率吗?

    [/报价]

    当我无法看到正确的捕获图像时、如何验证? 我没有对驱动器的分辨率进行任何更改、  

    - Vishal

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

    你好、Vishal、

    抱歉、我已更正、该驱动程序支持 640x480。

    但是、该驱动程序似乎不支持 YUV420 (NV12)。 它似乎支持 YUV422。 您可以尝试其他格式吗?

    $ grep -in "yuv420" ./drivers/media/i2c/ov5640.c
    $ grep -in "yuv422" ./drivers/media/i2c/ov5640.c
    186:	OV5640_FMT_MUX_YUV422 = 0,
    204:		/* YUV422, YUYV */
    209:		.mux		= OV5640_FMT_MUX_YUV422,
    211:		/* YUV422, UYVY */
    216:		.mux		= OV5640_FMT_MUX_YUV422,
    218:		/* YUV422, YUYV */
    223:		.mux		= OV5640_FMT_MUX_YUV422,
    272:		/* YUV422, YUYV */
    277:		.mux		= OV5640_FMT_MUX_YUV422,
    279:		/* YUV422, UYVY */
    284:		.mux		= OV5640_FMT_MUX_YUV422,
    286:		/* YUV422, YUYV */
    291:		.mux		= OV5640_FMT_MUX_YUV422,
    523:/* YUV422 UYVY VGA@30fps */
    3814:		fd->entry[fd->num_entries].bus.csi2.dt = MIPI_CSI2_DT_YUV422_8B;
    3903:	 * YUV422 UYVY VGA(30FPS in parallel mode, 60 in MIPI CSI-2 mode)

    此致、
    Jared

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

    Jared  

    有一个漫长的周末休息。 我获取了以下格式捕获:-

    YUYV→紧凑 YUV 4:2:2(YUYV 排序)

    UYVY→紧凑 YUV 4:2:2(UYVY 排序)

    我 像前面一样将这些文件附加为.txt 文件。  

    e2e.ti.com/.../frame_5F00_yuyv.txt

    e2e.ti.com/.../frame_5F00_uyvy.txt

    这些分别由命令捕获:-

    v4l2-ctl --device=/dev/video1 --set-fmt-video=width=640,height=480,pixelformat=YUYV --stream-mmap --stream-count=1 --stream-to=frame_yuyv.raw
    v4l2-ctl --device=/dev/video1 --set-fmt-video=width=640,height=480,pixelformat=UYVY --stream-mmap --stream-count=1 --stream-to=frame_uyvy.raw

    - Vishal

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

    你好、Vishal、

    它看起来稍好一点,而不是灰色的绿色条纹,它现在都是灰色的。

    您是否可以 对摄像机进行编程以发送色条?

    您是否可以尝试将摄像头流式传输到显示器并查看其外观?

    此致、
    Jared

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

    尊敬的 Vishal Maheshwari

    [引述 userid=“436452" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1542118/am5728-porting-ov5640-camera-onto-to-ti-linux-sdk-9-03/6019672

    这是我运行的用于捕获的命令  

    [/报价]

    你能尝试  YuYV 吗?

    [引述 userid=“436452" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1542118/am5728-porting-ov5640-camera-onto-to-ti-linux-sdk-9-03/6019672

    这是不清楚的。 请给出命令。

    [/报价]

    一些摄像头可以发送色条进行测试。 这通常由摄像头上需要设置的特定 I2C 寄存器进行控制。

    我不知道具体的寄存器是什么、但我假设它们存在。

    色条示例:

    此致、
    Jared

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

     Jared McArthur ,

    [报价 userid=“574088" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1542118/am5728-porting-ov5640-camera-onto-to-ti-linux-sdk-9-03/6021134

    你能尝试  YuYV 吗?

    [/报价]

     我已经阅读到 YUY2 是 V4L2 FourCC 的标准 Gstreamer 名称'YUYV'

    因此该命令给出如下所示的错误:

    root@am57xx-evm:~# gst-launch-1.0 v4l2src device=/dev/video1 !     video/x-raw,format=YUYV,width=640,height=480,framerate=30/1 !     videoconvert !     autovideosink
    WARNING: erroneous pipeline: could not link v4l2src0 to videoconvert0, neither element can handle caps video/x-raw, format=(string)YUYV, width=(int)640, height=(int)480, framerate=(fraction)30/1
    

    [报价 userid=“574088" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1542118/am5728-porting-ov5640-camera-onto-to-ti-linux-sdk-9-03/6021134

    一些摄像头可以发送色条进行测试。 这通常由摄像头上需要设置的特定 I2C 寄存器进行控制。

    [/报价]

    在 6.03 SDK 上、执行此操作时会显示以下色条。  

    #Ran this command to open camera
    gst-launch-1.0 v4l2src device=/dev/video1 ! videoconvert ! autovideosink
    
    # Ran the following commands to set register values from another terminal:-
    /usr/sbin/i2cset -f -y 2 0x3c 0x50 0x3d 0x80 i
    /usr/sbin/i2cset -f -y 2 0x3c 0x47 0x41 0x00 i
    
    

    在 9.03 SDK 上、当我运行相同的命令时、色条会显示、但它如下所示:-

    因此、我认为需要添加一些驱动器更改才能使其正常工作。 请帮助他们。

    我这边的器件驱动程序没有任何变化。

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

    尊敬的 Vishal Maheshwari

    [引述 userid=“436452" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1542118/am5728-porting-ov5640-camera-onto-to-ti-linux-sdk-9-03/6022079

    在 6.03 SDK 上、执行此操作时会显示以下色条。  

    [/报价]

    在 06.03 SDK 上运行时、您是否指定了上限?

    video/x-raw,format=YUYV,width=640,height=480,framerate=30/1

    [引述 userid=“436452" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1542118/am5728-porting-ov5640-camera-onto-to-ti-linux-sdk-9-03/6022079

    因此、我认为需要添加一些驱动器更改才能使其正常工作。 请帮助他们。

    [/报价]

    您是否能够测试 ov5640 是否可以在另一台设备上工作? 我想确保问题出在 ov5640 驱动程序中、而不是其他问题。

    4.19 和 6.1 驱动程序之间的差异很大、我想在深入查看驱动程序之前验证驱动程序是否损坏。


    它输出的视频仍然使我认为在某处的分辨率或格式存在问题。

    此致、
    Jared

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

    Jared

    在 06.03 SDK 上运行时、您是否指定上限?

    就像我说的、我在两个 SDK 上运行了相同的命令、因此没有变化。

    您是否能够测试 ov5640 是否可以在另一台设备上运行? 我想确保问题出在 ov5640 驱动程序中、而不是其他问题。

    已经 测试了另一个电路板、但 9.03 SDK 仍然存在相同问题、但可使用 6.03 SDK。  

    [报价 userid=“574088" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1542118/am5728-porting-ov5640-camera-onto-to-ti-linux-sdk-9-03/6023811

    4.19 和 6.1 驱动程序之间的差异很大、我想在深入查看驱动程序之前验证驱动程序是否损坏。


    它输出的视频仍然使我认为在某处的分辨率或格式存在问题。

    [/报价]

    噢。 因为我们被困在这个驱动程序中、请进行研究。

    我们的摄像头还连接在并行接口上。 是否需要对 DTS/驱动程序代码进行任何特定更改以支持该功能?

    - Vishal

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

    尊敬的 Vishal Maheshwari

    [引述 userid=“436452" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1542118/am5728-porting-ov5640-camera-onto-to-ti-linux-sdk-9-03/6024262

    已经 测试了另一个电路板、但 9.03 SDK 仍然存在相同问题、但可使用 6.03 SDK。  

    [/报价]

    抱歉、我指的是完全不同的器件、是非 AM57 器件。

    [引述 userid=“436452" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1542118/am5728-porting-ov5640-camera-onto-to-ti-linux-sdk-9-03/6024262

    我们的摄像头还连接在并行接口上。 是否需要对 DTS/驱动程序代码进行任何特定更改以支持该功能?

    [/报价]

    并行接口是什么意思? CSI 是串行接口。


    可以尝试使用器件树执行以下操作:

    1. 删除 ti、vip-channels 属性 vin3a。
    2. 从 ov5640 中删除 data-shift 属性。
    3. 删除从属模式属性 vin3a。

    此致、
    Jared

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

     Jared McArthur ,

    抱歉、我指的是完全不同的器件、非 AM57 器件。

    不、这不是我们的用例。 我们没有任何额外的硬件来连接和测试它。

    并行界面是什么意思? CSI 是串行接口[/报价]

    DVP 接口

    [报价 userid=“574088" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1542118/am5728-porting-ov5640-camera-onto-to-ti-linux-sdk-9-03/6025729

    可以尝试使用器件树执行以下操作:

    1. 删除 ti、vip-channels 属性 vin3a。
    2. 从 ov5640 中删除 data-shift 属性。
    3. 删除从属模式属性 vin3a。
    [/报价]

    没有变化。 摄像头仍然相同。
    我不知道为什么/dev/video1 仍然被创建时,就我记得它第一次解决时, ti,vip-channels 设置为 1。  
    或者、在添加以下内容时它可能有效。  

    hsync-active = <1>
    pclk-sample = <1>;
    vsync-active = <1>;

    如果我错了,你能纠正我吗?!

    无论如何,还有什么可以尝试?

    - Vishal  

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

    你好、Vishal、

    [引述 userid=“436452" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1542118/am5728-porting-ov5640-camera-onto-to-ti-linux-sdk-9-03/6026481

    DVP 接口

    [/报价]

    这应该不是问题。

    您能否完整发送新的设备树/覆盖层? 我想看看它以确保它符合预期。

    如果我错了、您能纠正我吗?!
    [/报价]

    您是对的。

    此致、
    Jared

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

    你好、Vishal、

    [引述 userid=“436452" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1542118/am5728-porting-ov5640-camera-onto-to-ti-linux-sdk-9-03/6028773

    我 已经共享了 dtsi 文件。 再次共享、其中包括以下更改:-  

    [/报价]

    节点中确实需要数据移位属性。

    https://www.kernel.org/doc/Documentation/devicetree/bindings/media/i2c/ovti%2Cov5640.yaml 

    您能否像上述 YAML 一样尝试将 vsync 和 HSYNC 设置为 0?

    因此、您的意思是、 由于 HSYNC、vsync 条目等原因、它已经起作用 是否在正确的位置?  
    我之所以这样说、是因为 之前未 检测到摄像头时、摄像头 处于下方 功率 但 当摄像头检测开始工作时、它们就被置于下 vin3a_ep 。  [/报价]

    它们必须位于 ov5640 -> 端口节点和 vin3a 节点下。  

    此致、
    Jared

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

    你好、Vishal、

    请将 vsync 和 HSYNC 添加回。

    您能否向 I2C 命令添加打印件以查看这两个版本之间是否有任何差异?

    此致、
    Jared

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

    你好 Jared McArthur ,

    [报价 userid=“574088" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1542118/am5728-porting-ov5640-camera-onto-to-ti-linux-sdk-9-03/6035263

    请将 vsync 和 HSYNC 添加回。

    [/报价]

    您是指在两者下将它们设回 1 功率 vin3a. 应用手册?

    [报价 userid=“574088" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1542118/am5728-porting-ov5640-camera-onto-to-ti-linux-sdk-9-03/6035263

    您能否向 I2C 命令添加打印件以查看这两个版本之间是否有任何差异?

    [/报价]

    您指的是两个版本 其中 HSYNC 和 VSYNC 为 1 另一侧 其中 HSYNC 和 VSYNC 为 0 ? 您指的是哪些 i2c 命令?

    你能在这里发帖时非常具体吗?

    - Vishal  

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

    你好、Vishal、

    [引述 userid=“436452" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1542118/am5728-porting-ov5640-camera-onto-to-ti-linux-sdk-9-03/6036014

    您是指在两者下将它们设回 1 功率 vin3a. 应用手册?

    [/报价]

    是的、我的意思是将它们都设置回 1。 听起来他们根据您的评论对这些设置的表现更好。

    您指的是两个版本 其中 HSYNC 和 VSYNC 为 1 另一侧 其中 HSYNC 和 VSYNC 为 0 ? 您指的是哪些 i2c 命令?
    [/报价]

    我的意思是 6.03 和 9.03。 我想看看 ov5640 I2C 寄存器之间有何差异。 如果 9.03 版本设置的寄存器多于/少于 6.03、则可以解释行为上的差异。

    您应该能够 将 DEV_INFO 添加到 ov5640_write_reg 函数中以查看设置的内容。

    此致、
    Jared

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

    Jared  
    我生病的时候就离开了。  

    [报价 userid=“574088" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1542118/am5728-porting-ov5640-camera-onto-to-ti-linux-sdk-9-03/6037309

    我的意思是 6.03 和 9.03。 我想看看 ov5640 I2C 寄存器之间有何差异。 如果 9.03 版本设置的寄存器多于/少于 6.03、则可以解释行为上的差异。

    您应该能够将 dev_print 添加到 ov5640_write_reg 函数、以查看设置的内容。

    [/报价]

    我很快就会告诉你的结果!

    - Vishal

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

    你好、Vishal、

    谢谢、请在能够更新主题时更新该主题。

    此致、
    Jared

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

    Jared  

    我已 设置的值 HSYNC 和 VSYNC 回到 1。

    您想让我重新添加  ti,vip-channels 属性吗?

    我会将打印内容放在 ov5640_write_reg 函数内。

    基本上、我将在驱动程序中打印出 reg 变量的值、并 在这里附加 dmesg 输出。

    - Vishal

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

    你好、Vishal、

    我想查看正在写入哪些寄存器和值。

    例如:

    printk("i2c reg: 0x%x, value: 0x%x", i2c_reg, i2c_val);

    此致、
    Jared

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

    你好、Vishal、

    您 是否也可以发送 6.03 消息? 我想比较这两者。

    此致、
    Jared

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

    Jared

    我告诉你 6.03 SDK 没有给我任何打印启动时,我把打印  ov5640_write_reg 测量输出。

    - Vishal

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

    你好、Vishal、

    我需要能够查看 6.03 上发送的 I2C 值以进行比较。 DEV_INFO 或将打印内容放置在另一个 I2C reg 函数中是否起作用?

    此致、
    Jared

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

    Jared

    请告诉我!

    有这么多的功能,我可以放置打印。 告诉我函数名称。 我会再回来的!

    - Vishal

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

    你好、Vishal、

    您是否可以发送添加的更改?

    以下修补程序是否正常工作?

    From a2f4f925b46c9019810d797c1a58a1ab4fa694b6 Mon Sep 17 00:00:00 2001
    From: Jared McArthur <j-mcarthur@ti.com>
    Date: Thu, 25 Sep 2025 13:59:38 -0500
    Subject: [PATCH 1/1] media: ov5640: Add print to i2c reg write
    
    Signed-off-by: Jared McArthur <j-mcarthur@ti.com>
    ---
     drivers/media/i2c/ov5640.c | 2 ++
     1 file changed, 2 insertions(+)
    
    diff --git a/drivers/media/i2c/ov5640.c b/drivers/media/i2c/ov5640.c
    index e9667f50ee8c..b71f2fafd3f5 100644
    --- a/drivers/media/i2c/ov5640.c
    +++ b/drivers/media/i2c/ov5640.c
    @@ -628,6 +628,8 @@ static int ov5640_write_reg(struct ov5640_dev *sensor, u16 reg, u8 val)
     		return ret;
     	}
     
    +	dev_info(&client->dev, "i2c reg: 0x%x, value: 0x%x\n", reg, val);
    +
     	return 0;
     }
     
    -- 
    2.34.1

    此致、
    Jared

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

    Jared。  

    您能发送您添加的更改吗?

    我已经告诉过你,我添加了一个 printk 函数在 9.03 和 6.03 SDK 在我之前的答复。

    以下修补程序是否起作用?

    我将在 9.03 SDK 中向您发送此函数的输出、因为在 6.03 SDK 中、该函数在启动时无法调用。 尽管我不确定它是否会得到编译。  
     
    很快就会更新您!

    - Vishal