rk3568 适配摄像头 (CIF协议)

news2024/10/5 19:14:31

rk3568 适配摄像头 (CIF协议)

在RK3568处理器中,支持CIF协议的摄像头可以通过CSI接口连接到处理器,实现视频数据的采集和处理。同时,RK3568还支持多种图像处理算法和编解码器,可以对采集到的视频数据进行实时处理和压缩,提高系统性能和效率。CIF(Camera Interface Format)协议是一种用于数字摄像头和处理器之间通信的协议。它定义了数据传输的格式和时序,包括像素数据、同步信号、时钟信号等。CIF协议支持多种分辨率和帧率,可以满足不同应用场景的需求。


提示:rk3568 cif支持8、10、12、16bits,可根据实际情况调整总线深度。

文章目录

  • rk3568 适配摄像头 (CIF协议)
  • 圈重点 看想学
  • 1. 核查硬件,适配gc2145
    • 1.1 核查硬件
    • 1.2 内核设备树适配 gc2145
  • 2 适配 lt8619
    • 2.1 内核设备树适配 lt8619
  • Tips
  • 总结


圈重点 看想学

a) 适配 gc2145 摄像头
b) 适配 lt8619,HDMI-IN 转DVP


1. 核查硬件,适配gc2145

原理图中使用是高性能的摄像头gc2145,它适用于各种数字相机、手机、平板电脑等消费电子产品。gc2145还支持多种输出格式,包括YUV、RGB、JPEG等,可以满足不同应用场景的需求。此外,它还具有低功耗、小尺寸、易于集成等特点,可以方便地集成到各种消费电子产品中。gc2145的分辨率为640x480,支持最高30帧/秒的视频录制。它还具有自动曝光、自动白平衡、自动对焦等功能,可以自动调整图像的亮度、色彩和清晰度,使得拍摄出的照片和视频更加清晰、自然。它采用了先进的CMOS技术,具有高分辨率、低功耗、高灵敏度、低噪声等优点。

1.1 核查硬件

  • 核查摄像头供电、传输协议
    在这里插入图片描述

CIF_PWREN 是 gc2145 供电CIF_5V控制,受控于 GPIO0_C1。
CIF_PWDN 是 gc2145 休眠控制,受控于 GPIO4_A6。
CIF_RST 是gc2145 复位控制,受控于 GPIO3_B5。
IR_LED_EN 是红外补光灯控制,受控于 GPIO4_B3。

  • rk3568 CIF总线连接
    在这里插入图片描述
    细心通许会发现 gc2145 仅有8bits总线,而rk3568则是16bits总线,如何连接呢?
  • CIF 总线位数适配
    在这里插入图片描述
    本文中采用8bits 总线,需连接高8位数据线。

1.2 内核设备树适配 gc2145

/ {
	vcc_camera: vcc-camera-regulator {
		compatible = "regulator-fixed";
		gpio = <&gpio0 RK_PC1 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&camera_pwr>;
		regulator-name = "vcc_camera";
		enable-active-high;
		regulator-always-on;
		regulator-boot-on;
	};
};

&i2c4 {
	/* i2c4 sda conflict with camera pwdn */
	status = "okay";

	/*
	 * gc2145 needs to be disabled,
	 * when gmac1 is enabled;
	 * pinctrl conflicts;
	 */
	gc2145: gc2145@3c {
		compatible = "galaxycore,gc2145";
		reg = <0x3c>;
		clocks = <&cru CLK_CIF_OUT>;
		clock-names = "xvclk";
		power-domains = <&power RK3568_PD_VI>;
		pinctrl-names = "default";
		/* conflict with gmac1m1_rgmii_pins & cif_clk*/
		pinctrl-0 = <&cif_clk &cif_dvp_clk &cif_dvp_bus16>;

		/*avdd-supply = <&vcc2v8_dvp>;*/
		/*dovdd-supply = <&vcc1v8_dvp>;*/
		/*dvdd-supply = <&vcc1v8_dvp>;*/

		reset-gpios = <&gpio3 RK_PB5 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 = "CameraKing";
		rockchip,camera-module-lens-name = "Largan";
		port {
			gc2145_out: endpoint {
				remote-endpoint = <&dvp_in_bcam>;
			};
		};
	};
};

&rkcif {
	status = "okay";
};

&rkcif_dvp {
	status = "okay";

	port {
		/* Parallel bus endpoint */
		dvp_in_bcam: endpoint {
			remote-endpoint = <&gc2145_out>;
			bus-width = <8>;
			vsync-active = <0>;
			hsync-active = <1>;
		};
	};
};

&rkcif_mmu {
	status = "okay";
};

&rkcif_dvp_sditf {
	status = "okay";
};

2 适配 lt8619

Lontium的LT8619C是一款基于ClearEdge®技术的高性能HDMI/双模DP接收器芯片,符合HDMI1.4规范。TTL输出可支持RGB,BT656,BT1120,输出分辨率可支持高达4Kx2K@30Hz的分辨率。LT8619 可转换为DVP信号,而再拓展出一路HDMI-IN。

2.1 内核设备树适配 lt8619

/ {
	vcc_camera: vcc-camera-regulator {
		compatible = "regulator-fixed";
		gpio = <&gpio0 RK_PC1 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&camera_pwr>;
		regulator-name = "vcc_camera";
		enable-active-high;
		regulator-always-on;
		regulator-boot-on;
	};

	ext_cam_clk: external-camera-clock {
		compatible = "fixed-clock";
		clock-frequency = <25000000>;
		clock-output-names = "CLK_CAMERA_25MHZ";
		#clock-cells = <0>;
	};
};

&i2c2 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&i2c2m1_xfer>;
	lt8619c: lt8619c@32 {
		compatible = "lontium,lt8619c";
		reg = <0x32>;
		clocks = <&ext_cam_clk>;
		clock-names = "xvclk";
		pinctrl-names = "default";
		pinctrl-0 = <&cif_dvp_clk &cif_dvp_bus16 &cif_dvp_bus8>;
		power-gpios = <&gpio0 RK_PD5 GPIO_ACTIVE_HIGH>;
		reset-gpios = <&gpio4 RK_PD2 GPIO_ACTIVE_LOW>;
		plugin-det-gpios = <&gpio0 RK_PD6 GPIO_ACTIVE_LOW>;
		hpd-output-inverted;
		rockchip,dvp-mode = <3>; /* 3:BT1120, 4:BT656, 5:BT1120_8bit */
		rockchip,dual-edge = <1>; /* 0:single edge, 1:dual edge */
		rockchip,camera-module-index = <0>;
		rockchip,camera-module-facing = "back";
		rockchip,camera-module-name = "LT8619C";
		rockchip,camera-module-lens-name = "NC";

		port {
			lt8619c_out: endpoint {
				remote-endpoint = <&cif_para_in>;
				bus-width = <16>;
				pclk-sample = <1>;
			};
		};
	};
};

&rkcif_dvp {
	status = "okay";

	port {
		/* Parallel bus endpoint */
		cif_para_in: endpoint {
			remote-endpoint = <&lt8619c_out>;
		};
	};
};

&rkcif {
	status = "okay";
};

&rkcif_mmu {
	status = "okay";
};

&rkcif_dvp_sditf {
	status = "okay";
};

Tips

  1. camera I2C通信无应答
    先核查硬件供电,再核查上电时许、reset、pwdn等。然后是必须有要有的 clk 时钟,别问为什么,问就是不专业。
  2. camera clk信号没有
    先排查GPIO 复用,再排查是否被正常申明,然后测量上电时许是否为开始正常然后消失。
    camera 设备在注册失败,或者关闭camera时会主动关闭 clk。再测量则不会有信号。
  3. camera 正常注册,但是无法打开
    HAL1和HAL3不仅需要内核正常注册,还需要匹配 camera列表。你的camera_default.xml 匹配了?

总结

活学活用,做个合格的搬运工。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/449581.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[Golang实战] 带你入手gin框架使用,以项目为例

&#x1f61a;一个不甘平凡的普通人&#xff0c;致力于为Golang社区和算法学习做出贡献&#xff0c;期待您的关注和认可&#xff0c;陪您一起学习打卡&#xff01;&#xff01;&#xff01;&#x1f618;&#x1f618;&#x1f618; &#x1f917;专栏&#xff1a;算法学习 &am…

Dear ImGui结合CMake实现基于GLFW和OpenGL3的入门级hello world代码

Dear ImGui结合CMake实现基于GLFW和OpenGL3的入门级hello world代码 如需转载请标明出处&#xff1a;https://blog.csdn.net/itas109 技术交流&#xff1a;129518033 环境&#xff1a; OS: windows 10 / Ubuntu 22.04 imgui: 1.89.5 glw: 3.3.8前言 Dear ImGui 是一个 用于…

alibaba arthas的新人上手教程

背景 Arthas 是Alibaba开源的Java诊断工具。 github开源地址&#xff1a;GitHub - alibaba/arthas: Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas 上手教程 1.下载arthas&#xff0c;并测试运行demo curl -O https://arthas.aliyun.com/arthas-boot.j…

高防IP的定义与作用

随着网络技术的发展&#xff0c;网络攻击的频率和威力不断升级&#xff0c;对企业和个人的网络安全造成了巨大风险。于是&#xff0c;高防IP作为一种网络安全防护工具应运而生&#xff0c;成为广大用户保障网络安全的重要手段。接下来让我们一起来详细了解下高防IP的定义和作用…

web实验(1)

&#xff08;1&#xff09; 应用html和css完成如图所示界面效果。内容相对于浏览器居中&#xff0c;图标见附件disc.jpg。 说明&#xff1a; 内容相对于浏览器居中&#xff0c;图标见附件disc.jpg盒子边框1px solid #ccc&#xff0c;内边距20px文本字体颜色#122e67&#xff…

outlook邮箱pc/mac客户端下载 含最新版

新的 Outlook for Windows or mac 为 Outlook 应用带来了最新功能、智能辅助功能和新的新式简化设计。 你可以根据自己的风格定制它&#xff0c;并使用新的 Outlook for Windows/mac 执行更多操作&#xff01; 览版&#xff0c;与我们一起开始旅程&#xff0c;并帮助我们塑造新…

SSM整合完整流程

&#x1f3e0;个人主页&#xff1a;shark-Gao &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是shark-Gao&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f389;目前状况&#xff1a;23届毕业生&#xff0c;目前在某公司实习&#x1f…

Django--DRf---序列化器:序列化器嵌套

模型表&#xff1a; from django.db import models# Create your models here.class StudentModel(models.Model):id models.AutoField(primary_keyTrue)name models.CharField(max_length32,verbose_name姓名)age models.SmallIntegerField(verbose_name年龄)class_mate_f…

人人可用的开源数据可视化分析工具-DataEase

DataEase 介绍 DataEase是一种开源的关系型数据库管理系统&#xff0c;旨在帮助用户创建和管理各种类型的数据。它是一种易于使用的工具&#xff0c;适用于各种规模的企业和组织&#xff0c;从个人使用到大型公司使用。 Github 地址&#xff1a;GitHub - dataease/dataease: …

2023年4月份上新的Transformer模型设计系列论文(附下载链接)

来源&#xff1a;投稿 作者&#xff1a;王老师 编辑&#xff1a;学姐 论文1 论文标题&#xff1a; Slide-Transformer: Hierarchical Vision Transformer with Local Self-Attention** 滑动Transformer&#xff1a;具有局部自注意的分层视觉Transformer 论文链接&#xff1a;h…

ChatGPT 克隆方案,开源了!开箱即用

什么是 ChatGPT ChatGPT是一种基于人工智能技术的大型语言模型&#xff0c;它能够理解和处理人类自然语言&#xff0c;并且在回答问题、生成文本和模拟对话等方面表现出色。ChatGPT使用的是GPT-3.5架构&#xff0c;它在训练过程中接触了大量的语言数据&#xff0c;并利用这些数…

机器学习算法系列(四)-- 决策树

机器学习算法之–决策树 最经典的机器学习模型之一&#xff0c;成树型结构&#xff0c;决策树的目的是为了产生一颗泛化能力强&#xff0c;处理未见实例能力强的树&#xff0c;通过特征判断不断分类&#xff0c;基本流程遵循“分而治之”的递归分类策略。 一、算法原理 1.1、特…

《C++程序设计原理与实践》笔记 第17章 向量和自由空间

本章和后面四章介绍C标准库的容器和算法部分&#xff08;通常称为STL&#xff09;。本章和后面两张的重点是最常用、最有用的STL容器——向量的设计和实现。 17.1 引言 C标准库中最有用的容器是vector。vector提供了给定类型的元素序列。标准库vector是一个方便、灵活、&…

Redis从零上手

文章目录 NoSQL概述互联网发展史单机MySQL的年代&#xff08;90年代&#xff09;缓存时代: Memcached MySQL 垂直拆分(读写分离)分库分表 水平拆分(MySQL集群)如今最近的年代 为什么要用NoSQL什么是NoSQLNoSQL特点阿里巴巴演进分析阿里巴巴中文站架构发展历程简单分析 NoSQL…

MySQL架构设计其实很简单

一、概述 我们很多互联网项目首选的数据库就是MySql5.7&#xff0c;因为免费&#xff0c;支持数据库主从复制&#xff0c;读写分离&#xff0c;且语法简单&#xff0c;容易上手&#xff0c;虽然对sql的函数、触发器、存储过程有一定的了解&#xff0c;也能说出一些优化sql语句…

基于SpringBoot+Vue的前后端分离的博客管理系统

菜单 首页写文章内容管理 博客管理相册管理归档登录、注册(项目整合了shiro+jwt+redis,用户未登录不能发布博客、内容管理、相册、归档等功能) 文章​​​​​​​末尾赋前后端代码以及数据库文件链接!!! 1 首页 首页包括菜单、博客、登录用户、推荐博客排行、博客分类…

Autosar-Interface接口

文章目录 一、Autosar接口1、AUTOSAR Interface2、Standardized Interface3、Standardized AUTOSAR Interface二、AUTOSAR接口的通用规则三、示例-存储四、总结一、Autosar接口 在Autosar里规定了三类接口,分别是AUTOSAR接口,标准AUTOSAR接口和标准接口。 下图将所有的接口…

【Linux】I/O复用

概述 I/O复用使得程序能同时监听多个文件描述符&#xff0c;看文件上是否有用户感兴趣的事件发生&#xff0c;提高程序性能。 使用I/O复用技术的情况&#xff1a; 客户端同时处理多个套接字 客户端同时处理用户输入和网络连接 同时监听多个端口 同时处理TCP和UDP请求 TCP服务器…

【JavaEE】文件操作(InputStream、OutputStream)

博主简介&#xff1a;想进大厂的打工人博主主页&#xff1a;xyk:所属专栏: JavaEE初阶 在Java中总会用到文件操作&#xff0c;比如从盘符读写文件&#xff0c;按字节和字符进行数据读写&#xff0c;那么你真的认识什么是文件路径吗&#xff1f;平时谈到的“文件”&#xff0c;…

mybatis实现CRUD详解(使用mapper映射文件实现增删改查)

mybatis实现CRUD详解(使用mapper映射文件实现增删改查) 创建maven项目&#xff1a;项目结构如图所示 准备数据库表&#xff1a; 准备pom.xml所需的依赖&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.…