es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

SONY IMX219 DTS en Avnet Maaxboard

Quiero ejecutar la cámara Sony IMX219 en el Avnet Maaxboard.

Estoy usando Yocto, con el kernel linux-imx 5.10.35.

El fabricante dijo: “De fábrica, las imágenes yocto y debian solo admiten soluciones basadas en la cámara OV5640. Cualquier soporte adicional para sensor de imagen deberá ser agregado”.

Entonces, empecé a desarrollar mi propia estructura de árbol de dispositivo (DTS) para manejar esta cámara. Usé el dts ov5640 como punto de partida.

Aquí está mi archivo DTS:

/dts-v1/;
/plugin/;
#include <dt-bindings clock/imx8mq-clock.h="">
#include <dt-bindings gpio/gpio.h="">

/{
    compatible = "avnet,maaxboard", "fsl,imx8mq";

    fragment@0 {
        target = <&i2c1>;
        __overlay__ {
            #address-cells = <1>;
            #size-cells = <0>;
            imx219_mipi@10 {
                compatible = "sony,imx219";
                reg = <0x10>;
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_csi1>;
                clocks = <&clk IMX8MQ_CLK_CLKO2>;
                clock-names = "csi_mclk";
                csi_id = <0>;
                pwn-gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>;
                rst-gpios = <&gpio3 18 GPIO_ACTIVE_HIGH>;
                status = "okay";

                mclk = <24000000>;
                mclk_source = <0>;

                port {
                    imx219_mipi1_ep: endpoint {
                        clock-lanes = <0>;
                        data-lanes = <1 2 3 4>;
                        remote-endpoint = <&mipi1_sensor_ep>;
                    };
                };
            };
        };
    };

    fragment@1 {
        target = <&csi1_bridge>;
        __overlay__ {
            status = "okay";
        };
    };

    fragment@2 {
        target = <&mipi_csi_1>;
        __overlay__ {
            status = "okay";
            rxhs-settle = <0x07>;
            port {
                mipi1_sensor_ep: endpoint@0 {
                    remote-endpoint = <&imx219_mipi1_ep>;
                    clock-lanes = <0>;
                    data-lanes = <1 2 3 4>;
                    bus-type = <4>;
                };
            };
        };
    };
};

Tuve éxito en iniciar y cargar mi archivo dts, el comando lsmod me dice que el controlador se ha cargado, y aparece /dev/video0.

Pero no está funcionando; cuando uso ffmpeg para tomar una fotografía, obtengo este error:

ffmpeg error

¿Alguien sabe cómo hacerlo funcionar?

Saludos cordiales
Thomas

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema está relacionado con el formato de imagen y resolución que estás solicitando de la cámara. Es posible que debas ajustar la configuración de captura en ffmpeg para que coincida con las capacidades de la cámara Sony IMX219.

    Puedes intentar usar el comando v4l2-ctl para listar los formatos y resoluciones admitidos por la cámara:

    v4l2-ctl --list-formats-ext -d /dev/video0
    

    Luego, ajusta tu comando ffmpeg en consecuencia. Por ejemplo, si la cámara admite formatos YUV 420 con una resolución de 1280×720, puedes intentar el siguiente comando ffmpeg:

    ffmpeg -f v4l2 -video_size 1280x720 -i /dev/video0 -frames:v 1 test.jpeg
    

    Si el problema persiste, es posible que debas investigar aún más la configuración del controlador y el sensor de imagen de la cámara para garantizar una comunicación adecuada entre la cámara y la placa.

    Saludos cordiales,
    [Tu Nombre]

Comments are closed.