RK3576 Camera:资源介绍
RK3576是RK今年上市的中高端旗舰芯片,定位弱于RK3588。这篇文章主要分享一下RK3576这颗主控芯片的camera资源。
(1)RK3576 camera资源
①RK3576 camera硬件框图
RK3576的camera硬件框图如图所示,拥有一路4lane的DCPHY,2路4lane的DPHY,可以拆分成4路2lane的模式,还有一路DVP并口,可以支持BT1120/BT656/BT601接口视频数据。有一个ISP控制器。

②MIPI-CSI资源
RK3576 MIPI-CSI资源如下,有1路DCPHY,2路DPHY,其中2路DPHY都可以拆成2lane+2lane的模式使用,共计5个MIPI-CSI HOST,可支持接入5个MIPI camera设备,2lane的场景,最大带宽为5G/bps,4lane场景,最大带宽为10Gbps,YUV422的图像输入的话,例如HDMIIN转接芯片,可以支持到4K60。DCPHY可以作为DPHY 4lane输入也可以作为CPHY 3trios输入,CPHY的场景带宽可达到17Gbps。
| type | MAX bandwidth | num | mode | |
| DPHY | DPHY-v1.2 | 2.5Gbps/lane | 2 | 4lane or 2lane+2lane |
| DCPHY | DPHY-v2.0 or CPHY-v1.1 | 2.5Gbps/lane 2.5Gsps/trios | 1 | DPHY or CPHY |
③VICAP资源
| 接口 | 数量 | 输入 | 输出 |
| vicap | 5个MIPI 1个DVP | MIPI CSI: RAW8/10/12/14/16, RGB888, YUV422 8bit, YUV422 8bit interlaced, YUV420 8bit, Legacy YUV420 8bit DVP:BT.601 RAW8/10/12 YCbCr 422 8-bit input BT.656 YCbCr 422 8-bit progressive/interlaced input BT.1120 YCbCr 422 8-bit progressive/interlaced input | NV16/NV12/YUV400/YUYV 紧凑/非紧凑 RAW RGB888 |
④ISP资源
| 工作模式 | 吞吐率 | 最大分辨率 | 输入格式 |
| 单cis | 16M@30fps 48M@10fps | 4672x3504 8064x6048 | VICAP: raw8/raw10/raw12 |
⑤VPSS
看RK3576的描述,在ISP后级应该还有VPSS模块,可以做图像处理,但是目前RK官方似乎也没有描述RK3576该模块的功能以及使用方法。以下是网上海思VPSS模块的描述。
根据网上对海思VPSS模块的描述:VPSS(Video Process Sub-System)支持对一幅输入图像进行统一预处理,如去噪、去隔行等,然后再对各通道分别进行缩放、锐化等处理,最后输出多种不同分辨率的图像。
根据RK的描述,应该是可以支持旋转镜像裁减多路输出等功能。

⑥最多支持camera数量
RK3576最多可以支持5个MIPIcamera,一个DVP的camera,对应链接框图如下,两路DPHY分别使用2lane+2lane的方式,如果是YUV的sensor,仅需要链接到rkcif_mipi_lvds节点即可,不需要接到stdif虚拟节点。

若采用4lane的方式链接如下:

(2)dts配置
根据上述,RK3576至多可以同时接入5路 MIPI摄像头,下篇文章再介绍。可参考如下:
&csi2_dcphy0 {status = "okay";ports {#address-cells = <1>;#size-cells = <0>;port@0 {reg = <0>;#address-cells = <1>;#size-cells = <0>;mipi_in_gc05a2: endpoint@1 {reg = <1>;remote-endpoint = <&gc05a2_out0>;data-lanes = <1 2 3 4>;};};port@1 {reg = <1>;#address-cells = <1>;#size-cells = <0>;csidcphy0_out: endpoint@0 {reg = <0>;remote-endpoint = <&mipi0_csi2_input>;};};};
};&csi2_dphy3 {status = "okay";ports {#address-cells = <1>;#size-cells = <0>;port@0 {reg = <0>;#address-cells = <1>;#size-cells = <0>;mipi_in_s5k3l8xx: endpoint@1 {reg = <1>;remote-endpoint = <&s5k3l8xx_out0>;data-lanes = <1 2 3 4>;};mipi_in_ov16880: endpoint@2 {reg = <2>;remote-endpoint = <&ov16880_out0>;data-lanes = <1 2 3 4>;};};port@1 {reg = <1>;#address-cells = <1>;#size-cells = <0>;csidphy3_out: endpoint@0 {reg = <0>;remote-endpoint = <&mipi3_csi2_input>;};};};
};&csi2_dphy0_hw {status = "okay";
};&csi2_dphy1_hw {status = "okay";
};&i2c4 {status = "okay";pinctrl-0 = <&i2c4m3_xfer>;gc05a2: gc05a2@37 {compatible = "galaxycore,gc05a2";status = "okay";reg = <0x37>;clocks = <&cru CLK_MIPI_CAMERAOUT_M0>;clock-names = "xvclk";pinctrl-names = "default";pinctrl-0 = <&cam_clk0m0_clk0>;pwdn-gpios = <&gpio3 RK_PC7 GPIO_ACTIVE_HIGH>;reset-gpios = <&gpio3 RK_PA6 GPIO_ACTIVE_HIGH>;avdd-supply = <&vcc_mipipwr>;dovdd-supply = <&vcc_1v8_cam>;//dvdd-supply = <&vcc1v2_dvp>;rockchip,camera-module-index = <1>;rockchip,camera-module-facing = "front";rockchip,camera-module-name = "KYT-11210-V2";rockchip,camera-module-lens-name = "default";port {gc05a2_out0: endpoint {remote-endpoint = <&mipi_in_gc05a2>;data-lanes = <1 2>;};};};
};&i2c5 {status = "okay";pinctrl-names = "default";pinctrl-0 = <&i2c5m3_xfer>;ces6301: ces6301@c {compatible = "chipextra,ces6301";status = "okay";reg = <0x0c>;avdd-supply = <&vcc_mipipwr>;rockchip,vcm-max-current = <120>;rockchip,vcm-start-current = <10>;rockchip,vcm-rated-current = <85>;rockchip,vcm-step-mode = <9>;rockchip,camera-module-index = <0>;rockchip,camera-module-facing = "back";};s5k3l8xx: s5k3l8xx@10 {status = "okay";compatible = "samsung,s5k3l8xx";reg = <0x10>;clocks = <&cru CLK_MIPI_CAMERAOUT_M2>;clock-names = "xvclk";pinctrl-names = "default";pinctrl-0 = <&cam_clk2m0_clk2>;pwdn-gpios = <&gpio3 RK_PD5 GPIO_ACTIVE_HIGH>;reset-gpios = <&gpio3 RK_PA7 GPIO_ACTIVE_HIGH>;avdd-supply = <&vcc_mipipwr>;dovdd-supply = <&vcc_1v8_cam>;//dvdd-supply = <&vcc1v2_dvp>;rockchip,camera-module-index = <0>;rockchip,camera-module-facing = "back";rockchip,camera-module-name = "KYT-11097-B-V1";rockchip,camera-module-lens-name = "default";lens-focus = <&ces6301>;flash-leds = <&flash_rgb13h>;port {s5k3l8xx_out0: endpoint {remote-endpoint = <&mipi_in_s5k3l8xx>;data-lanes = <1 2 3 4>;};};};ov16880: ov16880@36 {status = "okay";compatible = "ovti,ov16880";reg = <0x36>;clocks = <&cru CLK_MIPI_CAMERAOUT_M2>;clock-names = "xvclk";pinctrl-names = "default";pinctrl-0 = <&cam_clk2m0_clk2>;pwdn-gpios = <&gpio3 RK_PD5 GPIO_ACTIVE_HIGH>;reset-gpios = <&gpio3 RK_PA7 GPIO_ACTIVE_HIGH>;avdd-supply = <&vcc_mipipwr>;dovdd-supply = <&vcc_1v8_cam>;//dvdd-supply = <&vcc1v2_dvp>;rockchip,camera-module-index = <0>;rockchip,camera-module-facing = "back";rockchip,camera-module-name = "KYT-11379-V1";rockchip,camera-module-lens-name = "default";lens-focus = <&ces6301>;flash-leds = <&flash_rgb13h>;port {ov16880_out0: endpoint {remote-endpoint = <&mipi_in_ov16880>;data-lanes = <1 2 3 4>;};};};
};&mipi0_csi2 {status = "okay";ports {#address-cells = <1>;#size-cells = <0>;port@0 {reg = <0>;#address-cells = <1>;#size-cells = <0>;mipi0_csi2_input: endpoint@1 {reg = <1>;remote-endpoint = <&csidcphy0_out>;};};port@1 {reg = <1>;#address-cells = <1>;#size-cells = <0>;mipi0_csi2_output: endpoint@0 {reg = <0>;remote-endpoint = <&cif_mipi_in0>;};};};
};&mipi3_csi2 {status = "okay";ports {#address-cells = <1>;#size-cells = <0>;port@0 {reg = <0>;#address-cells = <1>;#size-cells = <0>;mipi3_csi2_input: endpoint@1 {reg = <1>;remote-endpoint = <&csidphy3_out>;};};port@1 {reg = <1>;#address-cells = <1>;#size-cells = <0>;mipi3_csi2_output: endpoint@0 {reg = <0>;remote-endpoint = <&cif_mipi3_in0>;};};};
};&pinctrl {cam {mipicam_pwr: mipicam-pwr {rockchip,pins =/* camera power en */<3 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;};flash_led_gpios: flash-led {rockchip,pins =/* flash led enable */<2 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;};};
};&rkcif {status = "okay";
};&rkcif_mipi_lvds {status = "okay";port {cif_mipi_in0: endpoint {remote-endpoint = <&mipi0_csi2_output>;};};
};&rkcif_mipi_lvds_sditf {status = "okay";port {mipi_lvds_sditf: endpoint {remote-endpoint = <&isp_vir0_in0>;};};
};&rkcif_mipi_lvds3 {status = "okay";port {cif_mipi3_in0: endpoint {remote-endpoint = <&mipi3_csi2_output>;};};
};&rkcif_mipi_lvds3_sditf {status = "okay";port {mipi_lvds3_sditf: endpoint {remote-endpoint = <&isp_vir0_in1>;};};
};&rkcif_mmu {status = "okay";
};&rkisp {status = "okay";
};&rkisp_mmu {status = "okay";
};&rkisp_vir0 {status = "okay";port {#address-cells = <1>;#size-cells = <0>;isp_vir0_in0: endpoint@0 {reg = <0>;remote-endpoint = <&mipi_lvds_sditf>;};isp_vir0_in1: endpoint@1 {reg = <1>;remote-endpoint = <&mipi_lvds3_sditf>;};};
};
(3)总结
后续继续介绍详细的dts配置以及调试经验。
相关文章:
RK3576 Camera:资源介绍
RK3576是RK今年上市的中高端旗舰芯片,定位弱于RK3588。这篇文章主要分享一下RK3576这颗主控芯片的camera资源。 (1)RK3576 camera资源 ①RK3576 camera硬件框图 RK3576的camera硬件框图如图所示,拥有一路4lane的DCPHYÿ…...
Symfony DomCrawler库在反爬虫应对中的应用
在当今信息爆炸的时代,互联网上的数据量巨大,但这也带来了一些问题,比如恶意爬虫可能会对网站造成严重的影响,导致资源浪费和服务不稳定。为了解决这个问题,许多网站采取了反爬虫策略。Symfony DomCrawler库是一个强大…...
1Panel应用推荐:Uptime Kuma
1Panel(github.com/1Panel-dev/1Panel)是一款现代化、开源的Linux服务器运维管理面板,它致力于通过开源的方式,帮助用户简化建站与运维管理流程。为了方便广大用户快捷安装部署相关软件应用,1Panel特别开通应用商店&am…...
传输文件协议FTP与LFTP
目录 一.简介 二. FTP基础 主动模式(Active Mode): 被动模式(Passive Mode): 三. Vsftp 服务器简介 四. Vsftpd配置 1. 安装vsftpd(ftp服务端) 2.编辑配置文件 (…...
expdp和impdp 实战
1 查询需要导出数据的用户 select username,default_tablespace from dba_users where username like %USERNAME%; 2 查看原来表空间大小 set linesize 9999 pagesize 9999 SELECT total.tablespace_name, Round(total.MB, 2) AS Total_MB, Round(t…...
知了汇智引领未来:全新AIGC系列课程,打造数字时代人才新标杆
在全球AIGC(生成式人工智能)技术加速发展的背景下,一系列权威报道揭示了该领域内市场潜力、行业应用、教育研究、政府监管以及具体应用场景的蓬勃进展。据腾讯网4月19日报道,中国AIGC应用市场规模预计于2024年达到200亿人民币&…...
软件项目验收第三方测试报告如何获取
软件项目验收第三方测试报告是确保软件质量、安全性和稳定性的重要环节。对于企业和开发者来说,获取一份全面、专业的第三方测试报告,对于提升软件产品的竞争力和用户满意度至关重要。本文将介绍如何获取软件项目验收第三方测试报告,以及相关…...
linux下脚本监控mysql主从同步异常时发邮件通知
在MySQL中,同步异常监控通常涉及监控复制的状态。可以通过查询SHOW SLAVE STATUS命令来获取复制的状态信息,并对其进行监控。以下是一个简单的SQL脚本,用于监控MySQL复制状态并输出异常信息: 查mysql slave状态 SHOW SLAVE STAT…...
【MySQL】分组排序取每组第一条数据
需求:MySQL根据某一个字段分组,然后组内排序,最后每组取排序后的第一条数据。 准备表: CREATE TABLE t_student_score (id int(11) NOT NULL AUTO_INCREMENT COMMENT ID,stu_name varchar(32) NOT NULL COMMENT 学生姓名,course…...
滚珠螺杆在精密机械设备中如何维持精度要求?
滚珠螺杆在精密设备领域中的运用非常之广泛,具有精度高、效率高的特点。为了确保滚珠螺杆在生产设备中能够发挥最佳性能,我们必须从多个维度进行深入考量,并采取针对性的措施,以确保其稳定、精准地服务于现代化生产的每一个环节。…...
现代 c++ 三:右值引用与移动语义
c11 为了提高效率,引入了右值引用及移动语义,这个概念不太好理解,需要仔细研究一下,下文会一并讲讲左值、右值、左值引用、右值引用、const 引用、移动构造、移动赋值运行符 … 这些概念。 左值和右值 左值和右值是表达式的属性。…...
Java学习【类与对象—封装】
Java学习【类与对象—封装】 封装的概念封装的实现包的概念import 导包导包中*的介绍import static 导入包中的静态方法和字段 static关键字的使用static 修饰成员变量static修饰方法静态成员变量的初始化 代码块静态代码块非静态代码块/实例化代码块/构造代码块加载顺序 封装的…...
Co-Driver:基于 VLM 的自动驾驶助手,具有类人行为并能理解复杂的道路场景
24年5月来自俄罗斯莫斯科研究机构的论文“Co-driver: VLM-based Autonomous Driving Assistant with Human-like Behavior and Understanding for Complex Road Scenes”。 关于基于大语言模型的自动驾驶解决方案的最新研究,显示了规划和控制领域的前景。 然而&…...
硅胶可以镭射吗?
在科技发展的今天,我们经常会遇到各种各样的材料,其中就有一种叫做硅胶的材料。那么,硅胶可以镭射吗?答案是肯定的,硅胶不仅可以镭射,而且在某些应用中,它的镭射特性还非常突出。 首先ÿ…...
财务风险管理:背后真相及应对策略
市场经济蓬勃发展,机遇与风险并存也是市场经济的一项重要特征。而财务状况的好坏影响着一个企业的发展前景,作为市场经济的必然产物,财务风险贯穿于企业的一切生产经营活动中,无法预知也不以人的意志为转移。 一、企业财务风险的特…...
MySQL深入理解事务(详解)
事务概述 事务是数据库区别于文件系统的重要特性之一,当我们有了事务就会让数据库始终保持一致性,同时我们还能通过事务机制恢复到某个时间点,这样可以保证已提交到数据库的修改不会因为系统崩溃而丢失。 1、基本概念 事务:一组…...
【Linux系统】进程控制
本篇博客整理了进程控制有关的创建、退出、等待、替换操作方面的知识,最终附有模拟实现命令行解释器shell来综合运用进程控制的知识,旨在帮助读者更好地理解进程与进程之间的交互,以及对开发有一个初步了解。 目录 一、进程创建 1.创建子进…...
Go语言数值类型教程
Go语言提供了丰富的数值类型,包括整数类型、浮点类型和复数类型。每种类型都有其特定的用途和存储范围。下面将详细介绍这些类型,并附带示例代码。 原文链接: Go语言数值类型教程 - 红客网-网络安全与渗透技术 1. 整数类型 原文链接…...
Linux进程控制——Linux进程等待
前言:接着前面进程终止,话不多说我们进入Linux进程等待的学习,如果你还不了解进程终止建议先了解: Linux进程终止 本篇主要内容: 什么是进程等待 为什么要进行进程等待 如何进程等待 进程等待 1. 进程等待的概念2. 进…...
GPT-4o:融合文本、音频和图像的全方位人机交互体验
引言: GPT-4o(“o”代表“omni”)的问世标志着人机交互领域的一次重要突破。它不仅接受文本、音频和图像的任意组合作为输入,还能生成文本、音频和图像输出的任意组合。这一全新的模型不仅在响应速度上达到了惊人的水平,在文本、音频和图像理解方面也表现出色,给人带来了…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:
一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...
练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...
Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...
cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
蓝桥杯 冶炼金属
原题目链接 🔧 冶炼金属转换率推测题解 📜 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V,是一个正整数,表示每 V V V 个普通金属 O O O 可以冶炼出 …...
Java毕业设计:WML信息查询与后端信息发布系统开发
JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息࿰…...
招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...
