搭建简易的摄像检测系统(2)————设备树

目录

建立Petalinux工程

1.设置“离线编译”和“本地内核源码以及 u-boot 源码”

2.修改设备树(第一代)

第一代设备树:

 3.修改设备树(第二代)

第二代设备树:

 总结:


接着上次的步骤,为了搭建摄像头,这次主要讲解设备部分

建立Petalinux工程

1.设置“离线编译”和“本地内核源码以及 u-boot 源码”

2.修改设备树(第一代)

第一代设备树:

/include/ "system-conf.dtsi"
/ {
	misc_clk_a: misc_clk_a {
		#clock-cells = <0>;
		clock-frequency = <12000000>;
		compatible = "fixed-clock";
	};
amba_pl: amba_pl@0 {
    dpu: DPUCZDX8G@80000000 {
			compatible = "xilinx,dpu";
			base-addr = <0x80000000>;
	};
};

};


&qspi {
        status = "okay";
};


/* SD */
&sdhci1 {
	disable-wp;
	no-1-8-v;
};

/* USB  */
&dwc3_0 {
    status = "okay";
    dr_mode = "host";
};

         这次设置的主要是开发板的基础功能。主要描述了系统中的时钟源、DPU设备、QSPI设备、SD卡控制器和USB控制器的配置和状态。帮助用户先跑一下,看看板卡设备是否有问题

 3.修改设备树(第二代)

第二代设备树:

/include/ "system-conf.dtsi"
/ {
	misc_clk_a: misc_clk_a {
		#clock-cells = <0>;
		clock-frequency = <12000000>;
		compatible = "fixed-clock";
	};
amba_pl: amba_pl@0 {
    dpu: DPUCZDX8G@81000000 {
			compatible = "xilinx,dpu";
			base-addr = <0x81000000>;
	};
};
	misc_clk_a: misc_clk_a {
		#clock-cells = <0>;
		clock-frequency = <12000000>;
		compatible = "fixed-clock";
	};
	cam_reg_1v8: regulator-1v8 {
		compatible = "regulator-fixed";
		regulator-name = "1v8";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
	};
	cam_reg_2v8: regulator-2v8 {
		compatible = "regulator-fixed";
		regulator-name = "2v8";
		regulator-min-microvolt = <2800000>;
		regulator-max-microvolt = <2800000>;
	};
	cam_reg_1v5: regulator-1v5 {
		compatible = "regulator-fixed";
		regulator-name = "1v5";
		regulator-min-microvolt = <1500000>;
		regulator-max-microvolt = <1500000>;
	};

};

&qspi {
        status = "okay";
};

&i2c0 {
        clock-frequency = <400000>;
        eeprom@50{
                compatible = "atmel,24c04";
                reg = <0x50>;
                pagesize = <16>;
	};

        lm75@48 {
                compatible = "nxp,lm75";
                reg = <0x48>;
        };
};

&i2c1 {
	ov5640: camera@3c {
		compatible = "ovti,ov5640";
		reg = <0x3c>;
		clocks = <&misc_clk_a>;
		clock-names = "xclk";
		/* rotation = <180>; */
		DOVDD-supply = <&cam_reg_1v8>;
		AVDD-supply = <&cam_reg_2v8>;
		DVDD-supply = <&cam_reg_1v5>;
		port {
			/* MIPI CSI-2 bus endpoint */
			ov5640_to_mipi_csi2: endpoint {
				remote-endpoint = <&csiss_in>;
				clock-lanes = <0>;
				data-lanes = <1 2>;
			};
		};
	};
};

&mipi_csi2_rx_subsyst_0{
	compatible = "xlnx,mipi-csi2-rx-subsystem-5.0";
	csiss_ports: ports {
		#address-cells = <1>;
		#size-cells = <0>;
		csiss_port0: port@0 {
			reg = <0>;

			xlnx,video-format = <0>;
			xlnx,video-width = <8>;

			csiss_out: endpoint {
				remote-endpoint = <&csc_in>;
			};
		};
		csiss_port1: port@1 {
			reg = <1>;

			xlnx,video-format = <0>;
			xlnx,video-width = <8>;

			csiss_in: endpoint {
				data-lanes = <1 2>;
				remote-endpoint = <&ov5640_to_mipi_csi2>;
			};
		};
	};
};

&v_proc_ss_0{
	compatible = "xlnx,v-vpss-scaler-2.2";
	reset-gpios = <&gpio 86 1>;
	csc_ports: ports {
		#address-cells = <1>;
		#size-cells = <0>;
		csc_port0: port@0 {
			reg = <0>;
			xlnx,video-format = <3>;
			xlnx,video-width = <8>;
			csc_in: endpoint {
				remote-endpoint = <&csiss_out>;
			};
		};
		csc_port1: port@1 {
			reg = <1>;
			xlnx,video-format = <3>;
			xlnx,video-width = <8>;
			csc_out: endpoint {
				remote-endpoint = <&vcap_in>;
			};
		};
	};
};

&v_frmbuf_wr_0 {
	compatible = "xlnx,axi-frmbuf-wr-v2.1";
	reset-gpios = <&gpio 85 1>;
};

&amba_pl {
	vcap_mipi {
		compatible = "xlnx,video";
		dma-names = "port0";
		dmas = <&v_frmbuf_wr_0 0>;
		vcap_ports: ports {
			#address-cells = <1>;
			#size-cells = <0>;
			vcap_port: port@0 {
				direction = "input";
				reg = <0>;
				vcap_in: endpoint {
					remote-endpoint = <&csc_out>;
				};
			};
		};
	};
};

/* SD */
&sdhci1 {
	disable-wp;
	no-1-8-v;
};

/* USB  */
&dwc3_0 {
    status = "okay";
    dr_mode = "host";
};

这次修改后的设备树里面增加了一些和摄像头有关的内容:

  1. OV5640摄像头设备:新的设备树中添加了一个OV5640摄像头设备,配置了摄像头的各种属性,包括时钟源、电压供应以及线路的连接信息。这在之前的设备树中没有。
  2. MIPI CSI-2接收子系统:新的设备树中引入了MIPI CSI-2接收子系统,定义了视频格式、视频宽度以及与其他设备的连接信息。
  3. 视频处理子系统:新的设备树中添加了视频处理子系统,包含了CSC(颜色空间转换器),并定义了视频格式、视频宽度以及与其他设备的连接信息。
  4. 帧缓冲写入设备:新的设备树中包含了帧缓冲写入设备,包括一个复位GPIO引脚。
  5. AMBA总线中的视频捕获设备:在新的设备树中,将AMBA总线中的视频捕获设备 (vcap_mipi) 添加到了设备树,其中包括了DMA信息以及与CSC设备的连接信息。

 总结:

我的设备树修改的具体过程是:

        在github网站里面的设备树只有一部分是我们配置摄像头所需要的,我将设备树代码发送给了chatgpt让它为我说明每一段具体是什么功能。然后我将一些自己认为与摄像头无关的内容删掉,最后留下的内容构成了这个新的设备树。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值