在安防、工业物联、机器人、多媒体等领域的产品开发过程中,都需要进行图像采集,这要求硬件具备摄像头接口来实现。 i.MX 8M Plus 是 NXP 推出的一款具有高可靠性,适合用于机器学习和视觉、高级多媒体和工业物联网的处理器。启扬 IAC-IMX8MP-Kit 开发板基于 NXP i.MX8M Plus 四核 Arm Cortex-A53 处理器,主频达 1.6GHz,同时集成了神经网络加速单元(NPU),提供高达 2.3TOPS 的计算能力;集成了双图像处理单元 ISP,输入速率高达 375M 像素 /s,分辨率可达 12MPix/s,支持两路摄像头输入,集成的 ISP 可处理高动态范围(HDR)的快速多重曝光、图像增强等复杂的图像处理任务。

启扬 i.MX8M Plus 开发板引出两路 MIPI-Camera 接口,支持两路摄像头同时输入,应用于多领域实现图像采集功能。

根据官方资料,i.MX8M Plus 支持 ov5640、ov2775 和 basler camera,本次将简单了解 如何在 i.MX8M Plus 开发板上测试 ov5640 摄像 头模块。
ov5640 摄像头模块简介
OV5640 是豪威科技生产的 500W 像素的 CMOS 图像传感器,最高支持 2624*1964 分辨率(物理尺寸),对应 2592*1944(图像尺寸)。该传感器内部集成了图像处理的电路,包括自动曝光控制(AEC)、自动白平衡( AWB) 等。同时该传感器支持 LED 补光、 MIPI(移动产业处理器接口,多用于手机等)输出接口和 DVP(数字视频并行,在设计 HDMI 显示时,就用的这个)输出接口选择、 ISP(图像信号处理)以及自动聚焦控制(AFC)等功能。
开发板摄像头接口原理图
查看源码以及开发板原理图文件



参考原理图,当前的 evk 使用 gpio4_IO0 作为 power down pin,gpio4_IO1 作为 reset pin,但是让我们看一下 i.mx8mp-evk.dts 文件
ov5640_1: ov5640_mipi@3c {
compatible = "ovti,ov5640";
reg = <0x3c>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_csi0_pwn>, <&pinctrl_csi0_rst>, <&pinctrl_csi_mclk>;
clocks = <&clk IMX8MP_CLK_IPP_DO_CLKO2>;
clock-names = "xclk";
assigned-clocks = <&clk IMX8MP_CLK_IPP_DO_CLKO2>;
assigned-clock-parents = <&clk IMX8MP_CLK_24M>;
assigned-clock-rates = <24000000>;
csi_id = <0>;
powerdown-gpios = <&gpio4 1 GPIO_ACTIVE_HIGH>;
reset-gpios = <&gpio4 0 GPIO_ACTIVE_LOW>;
mclk = <24000000>;
mclk_source = <0>;
mipi_csi;
status = "disabled";
port {
ov5640_mipi_1_ep: endpoint {
remote-endpoint = <&mipi_csi1_ep>;
data-lanes = <1 2>;
clock-lanes = <0>;
};
};
};
如果想把 I2C3 连接到 ov5640 上,要按照原理图的定义,改变掉电针和复位针。
&i2c3 {
/delete-node/ov2775_mipi@36;
};
&ov5640_1 {
pinctrl-0 = <&pinctrl_csi1_pwn>, <&pinctrl_csi1_rst>, <&pinctrl_csi_mclk>;
csi_id = <1>;
status = "okay";
};