rk3568 适配摄像头 (mipi 单摄)

news/2024/10/23 5:43:04/

rk3568 适配摄像头 (mipi 单摄)

MIPI CSI(Mobile Industry Processor Interface Camera Serial Interface)是一种用于移动设备的高速串行接口标准,用于连接图像传感器和图像处理器。MIPI CSI接口使用差分信号传输技术,将数据分为数据线和时钟线两部分,以提高传输速度和抗干扰能力。数据线和时钟线通过MIPI D-PHY(Physical Layer)进行物理层传输,D-PHY支持多种传输速率和数据格式。


提示:rk3568 支持 4lane 的mipi CSI,且可拆分成 2+2模式。

文章目录

  • rk3568 适配摄像头 (mipi 单摄)
  • 圈重点 看想学
  • 1. 核查硬件,匹配摄像头
    • 1.1 内核设备树适配gc8034
    • 1.2 内核设备树适配 ov5695
    • 1.3 gc8034 和ov5695自动匹配
  • 2 调试过程问题分析
  • 总结


圈重点 看想学

a) 适配mipi摄像头 gc8034
b) 适配mipi摄像头 ov5695


1. 核查硬件,匹配摄像头

核查原理图需要匹配摄像头的供电 avdd、vdd、vcc,控制信号 pwdn、reset、enable,主时钟(rk3568输出时钟),I2C总线和 mipi信号通道。此处不在赘述,需要了解的小伙伴请关注博主的下一篇博文。
rk3568 CSI
核查rk3568芯片手册发现仅有一个CSI 4 lane,可以拆分成 2 lane x 2分。匹配摄像头方式如下:
CSI-modes

1.1 内核设备树适配gc8034

&i2c2 {status = "okay";pinctrl-0 = <&i2c2m1_xfer>;/* full mode: lane0-3 */gc8034: gc8034@37 {compatible = "galaxycore,gc8034";status = "okay";reg = <0x37>;clocks = <&cru CLK_CIF_OUT>;clock-names = "xvclk";power-domains = <&power RK3568_PD_VI>;pinctrl-names = "default";pinctrl-0 = <&cif_clk>;reset-gpios = <&gpio3 RK_PA6 GPIO_ACTIVE_LOW>;pwdn-gpios = <&gpio4 RK_PB2 GPIO_ACTIVE_LOW>;rockchip,camera-module-index = <0>;rockchip,camera-module-facing = "back";rockchip,camera-module-name = "RK-CMK-8M-2-v1";rockchip,camera-module-lens-name = "CK8401";port {gc8034_out: endpoint {remote-endpoint = <&dphy0_in>;data-lanes = <1 2 3 4>;};};};
};&csi2_dphy_hw {status = "okay";
};&csi2_dphy0 {status = "okay";/** dphy0 only used for full mode,* full mode and split mode are mutually exclusive*/ports {#address-cells = <1>;#size-cells = <0>;port@0 {reg = <0>;#address-cells = <1>;#size-cells = <0>;dphy0_in: endpoint@1 {reg = <1>;remote-endpoint = <&gc8034_out>;data-lanes = <1 2 3 4>;};};port@1 {reg = <1>;#address-cells = <1>;#size-cells = <0>;dphy0_out: endpoint@1 {reg = <1>;remote-endpoint = <&isp0_in_dphy0>;};};};
};&rkisp {status = "okay";
};&rkisp_mmu {status = "okay";
};&rkisp_vir0 {status = "okay";port {#address-cells = <1>;#size-cells = <0>;isp0_in: endpoint@0 {reg = <0>;remote-endpoint = <&dphy1_out>;};isp0_in_dphy0: endpoint@1 {reg = <1>;remote-endpoint = <&dphy0_out>;};};
};

1.2 内核设备树适配 ov5695

&i2c2 {status = "okay";pinctrl-0 = <&i2c2m1_xfer>;ov5695: ov5695@36 {status = "okay";compatible = "ovti,ov5695";reg = <0x36>;clocks = <&cru CLK_CAM0_OUT>;clock-names = "xvclk";power-domains = <&power RK3568_PD_VI>;pinctrl-names = "default";pinctrl-0 = <&cam_clkout0>;reset-gpios = <&gpio3 RK_PD0 GPIO_ACTIVE_HIGH>;pwdn-gpios = <&gpio3 RK_PC6 GPIO_ACTIVE_HIGH>;/*power-gpios = <&gpio0 RK_PC1 GPIO_ACTIVE_HIGH>;*/rockchip,camera-module-index = <0>;rockchip,camera-module-facing = "back";rockchip,camera-module-name = "TongJu";rockchip,camera-module-lens-name = "CHT842-MD";port {ov5695_out: endpoint {remote-endpoint = <&mipi_in_ucam0>;data-lanes = <1 2>;};};};
};&csi2_dphy0 {status = "okay";ports {#address-cells = <1>;#size-cells = <0>;port@0 {reg = <0>;#address-cells = <1>;#size-cells = <0>;mipi_in_ucam0: endpoint@1 {reg = <1>;remote-endpoint = <&ov5695_out>;data-lanes = <1 2>;};};port@1 {reg = <1>;#address-cells = <1>;#size-cells = <0>;csidphy_out: endpoint@0 {reg = <0>;remote-endpoint = <&isp0_in>;};};};
};&rkisp {status = "okay";
};&rkisp_mmu {status = "okay";
};&rkisp_vir0 {status = "okay";port {#address-cells = <1>;#size-cells = <0>;isp0_in: endpoint@0 {reg = <0>;remote-endpoint = <&csidphy_out>;};};
};

1.3 gc8034 和ov5695自动匹配

	gc8034: gc8034@37 {compatible = "galaxycore,gc8034";reg = <0x37>;clocks = <&cru CLK_CAM0_OUT>;clock-names = "xvclk";power-domains = <&power RK3568_PD_VI>;pinctrl-names = "default";pinctrl-0 = <&cam_clkout0>;reset-gpios = <&gpio2 RK_PD5 GPIO_ACTIVE_LOW>;pwdn-gpios = <&gpio4 RK_PA6 GPIO_ACTIVE_LOW>;rockchip,grf = <&grf>;rockchip,camera-module-index = <0>;rockchip,camera-module-facing = "back";rockchip,camera-module-name = "RK-CMK-8M-2-v1";rockchip,camera-module-lens-name = "CK8401";port {gc8034_out: endpoint {remote-endpoint = <&mipi_in_ucam0>;data-lanes = <1 2 3 4>;};};};ov5695: ov5695@36 {status = "okay";compatible = "ovti,ov5695";reg = <0x36>;clocks = <&cru CLK_CAM0_OUT>;clock-names = "xvclk";power-domains = <&power RK3568_PD_VI>;pinctrl-names = "default";pinctrl-0 = <&cam_clkout0>;reset-gpios = <&gpio2 RK_PD5 GPIO_ACTIVE_LOW>;pwdn-gpios = <&gpio4 RK_PA6 GPIO_ACTIVE_HIGH>;rockchip,camera-module-index = <0>;rockchip,camera-module-facing = "back";rockchip,camera-module-name = "TongJu";rockchip,camera-module-lens-name = "CHT842-MD";port {ov5695_out: endpoint {remote-endpoint = <&mipi_in_ucam1>;data-lanes = <1 2>;};};};
};&csi2_dphy_hw {status = "okay";
};&csi2_dphy0 {status = "okay";ports {#address-cells = <1>;#size-cells = <0>;port@0 {reg = <0>;#address-cells = <1>;#size-cells = <0>;mipi_in_ucam1: endpoint@1 {reg = <1>;remote-endpoint = <&gc8034_out>;data-lanes = <1 2 3 4>;};mipi_in_ucam2: endpoint@2 {reg = <2>;remote-endpoint = <&ov5695_out>;data-lanes = <1 2>;};};port@1 {reg = <1>;#address-cells = <1>;#size-cells = <0>;csidphy_out: endpoint@0 {reg = <0>;remote-endpoint = <&isp0_in>;};};};
};&rkisp {status = "okay";
};&rkisp_mmu {status = "okay";
};&rkisp_vir0 {status = "okay";port {#address-cells = <1>;#size-cells = <0>;isp0_in: endpoint@0 {reg = <0>;remote-endpoint = <&csidphy_out>;};};
};

2 调试过程问题分析

本篇文章简单讲述摄像头匹配方法,文章篇幅过大不利于阅读,请关注原作的下一篇。

总结

活学活用,欢迎诸位订阅原作者。


http://www.ppmy.cn/news/52656.html

相关文章

微信小程序对接在线客服系统,对接小程序订阅消息模板,小程序订阅方法以及后端发送订阅模板消息的方法...

微信小程序想要对接独立在线客服系统&#xff0c;除了使用小程序消息推送接口外&#xff0c;还可以使用webview嵌入的形式嵌入聊天链接。 但是&#xff0c;使用webview嵌入的形式&#xff0c;当用户离开页面以后&#xff0c;就收不到客服回复的消息了 所以&#xff0c;我们需要…

ICMP 协议详解

文章目录 1 概述2 ICMP 协议2.1 工作原理2.2 报文格式2.3 ICMP 类型 1 概述 #mermaid-svg-6yUB8ZNYSzjbbDDq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-6yUB8ZNYSzjbbDDq .error-icon{fill:#552222;}#mermaid-s…

苦熬10年,国产操作系统“归零”,新操作系统上新,跟Excel很像

苦熬10余年&#xff0c;国产操作系统自主研发 说到国内自主研发的操作系统&#xff0c;经验最丰富的品牌&#xff0c;当然是麒麟OS. 从诞生到发展&#xff0c;历经10多年的努力&#xff0c;麒麟os逐渐成为了国内自主研发操作系统领域中的一颗耀眼的明珠。麒麟OS不仅推出了许多…

【链表】力扣203题:移除链表元素

【链表】力扣203题&#xff1a;移除链表元素 力扣203题&#xff1a;移除链表元素 建议在看题目之前先了解数组的具体知识点&#xff0c;可以看这里&#xff1a; 算法基础&#xff08;三&#xff09;&#xff1a;链表知识点及题型讲解。 其它题目&#xff1a; 【链表】力扣206题…

设计模式简谈

设计模式是我们软件架构开发中不可缺失的一部分&#xff0c;通过学习设计模式&#xff0c;我们可以更好理解的代码的结构和层次。 设计原则 设计原则是早于设计方法出现的&#xff0c;所以的设计原则都要依赖于设计方法。这里主要有八个设计原则。 推荐一个零声学院免费教程&…

Spring IOC之对象的创建方式、策略及销毁时机和生命周期且获取方式

目录 一、对象的创建方式 1. 使用构造方法 2. 使用工厂类方法 3. 使用工厂类的静态方法 二、对象的创建策略 1. 单例策略 2. 多例策略 三、对象的销毁时机 四、生命周期方法 1. 定义生命周期方法 2. 配置生命周期方法 3. 测试 五、获取Bean对象的方式 1. 通过id/…

参与C++项目时的那些事儿

开发工具 在开发团队内部&#xff0c;使用相同的IDE、编译器等开发工具&#xff0c;工具的版本号和配置保持一致&#xff0c;便于开发团队积累使用经验&#xff0c;避免、消除工具的差异引入的问题。 代码质量 从检查时机看&#xff0c;分为&#xff1a; 开发人员本地检查&am…

以轻量级服务器niginx为核心的JavaWeb项目:第一章 项目设计

这里写目录标题 一 需求分析与环境搭建1.需求分析2.环境搭建1.2.1首先配置mysql环境1.2.2 配置maven环境 二 打成War包&#xff0c;发到linux上 一 需求分析与环境搭建 1.需求分析 2.环境搭建 1.2.1首先配置mysql环境 先查找一下mysql环境 [roothadoop122 ~]# mysql --vers…