RK3588s imx415相机适配及ISP调优系列(二)--- mipi相机适配

news/2025/3/3 19:24:55/

上篇简单介绍了下最终效果,本篇开始将详细介绍相机适配、图像调优过程。
RK3588s imx415相机适配及ISP调优系列(一)

目录

  • 1、RK3588S硬件配置及性能介绍
    • 1) MIPI CSI
    • 2) Vicap
    • 3) ISP
  • 2、链接关系
  • 3、dtsi详细配置
  • 4、出图测试

1、RK3588S硬件配置及性能介绍

1) MIPI CSI

RK3588/RK3588S平台配备有两路DPHY、两路DCPHY硬件, 其中DCPHY只支持Full Mode模式:
1)使用csi2_dcphy0、csi2_dcphy1分别对应板卡上的物理接口:MIPI_DCPHY0_CSI0/MIPI_DCPHY1_CSI1;
2)data lane最大4 lanes;
3)最大速率2.5Gbps/lane;DPHY硬件分别是dphy0_hw/dphy1_hw,支持2种模式: Full Mode/Split Mode。其中每一个dphy硬件可以虚拟出3个逻辑dphy :csi2_dphy0/csi2_dphy1/csi2_dphy2。
Full Mode:
1)仅使用csi2_dphy0,csi2_dphy0与csi2_dphy1/csi2_dphy2互斥,不可同时使用;
2)data lane最大4 lanes;
3)最大速率2.5Gbps/lane。Split Mode:
1)仅使用csi2_dphy1和csi2_dphy2, 与csi2_dphy0互斥,不可同时使用;
2)csi2_dphy1和csi2_dphy2可同时使用;
3)csi2_dphy1和csi2_dphy2各自的data lane最大是2 lanes;
4)csi2_dphy1对应物理dphy的lane0/lane1;
5)csi2_dphy2对应物理dphy的lane2/lane3;
6)最大速率2.5Gbps/lane。

2) Vicap

RK3588S所有camera数据都需要通过vicap,再链接到isp。RK3588S VICAP支持输入RAW8/10/12/14,其仅支持一个vicap硬件,这个vicap支持同时输入6路mipi phy及1路dvp数据,所以我们将vicap分化成rkcif_mipi_lvds~rkcif_mipi_lvds5、rkcif_dvp等7个节点,各个节点的绑定关系需要严格按照节点顺序来配置,具体下节会详细介绍。

3) ISP

RK3588s 的ISP属于RK ISP v3.0版本,拥有2个ISP,单ISP最大可支持16M@30fps(4672 x 3504)。每个isp设备可虚拟出多个虚拟节点,软件上通过回读的方式,依次从ddr读取每一路的图像数据进isp处理。对于多摄方案,建议将数据流平均分配到两个isp上。
直通与回读模式区别:
1)直通:指数据经过vicap采集,直接发送给isp处理,不存储到ddr。需要注意的是hdr直通时,只有短帧是真正的直通,长帧需要存在ddr,isp再从ddr读取。
2)回读:指数据经过vicap采集到ddr,应用获取到数据后,将buffer地址推送给isp,isp再从ddr获取图像数据。
PS:在配置dts时,一个isp硬件,如果只配置一个虚拟节点,默认使用直通模式,如果配置了多个虚拟节点默认使用回读模式。

2、链接关系

链接关系图这次我用了两个Sony IMX415 MIPI口相机,因为AIO-RK3588S-JD4中配置有两个dcphy接口,所以直接可以按以上链接表进行配置。上图节点分别为:
1)mipi camera0/camera1: 相机节点;
2) csi2_dcphy0/csi2_dcphy1:dcphy节点
3) mipi0_csi2/mipi1_csi2:每个mipi phy都需要一个csi2模块来解析mipi协议,节点名称分别mipi0_csi2、mipi1_csi2。
4) rkcif_mipi_lvds/rkcif_mipi_lvds1: vicap节点,每个vicap节点与isp的链接关系,通过对应虚拟出的XXX_sditf来指明链接关系。
5) rkcif_mipi_lvds_sditf: vicap虚拟节点;
6) rkisp0_vir0/rkisp0_vir1: ISP虚拟节点,此处一个物理ISP了vir0、vir1这2个ISP虚拟节点。配置时需要关注下ISP处理能力,我调试过程中就遇到了两个相机使用一个物理ISP导致ISP处理能力不足的情况,这时就需要配两个物理ISP(rkisp0_vir0、rkisp1_vir0)。
在这里插入图片描述

3、dtsi详细配置

dtsi中最重要的配置是相机sensor寄存器的i2c配置,包括主时钟、reset、pwdn等参数。配置前,需要详细对照下官方给出的电路原理图:

dcphy0接口对应管脚信息:
dcphy0接口
dcphy1接口对应管脚信息:
在这里插入图片描述

对照上面两图,配置如下:
i2c7配置
i2c0配置
配置完i2c后,接下来就按照上节的链接图完成从camera到ISP的配置即可,这部分不容易出错,网上也有不少相关资料可以借鉴。

AIO-3588S-JD电路原理图及dtsi配置文件我上传网盘了,也可下载后进行参考配置:
https://pan.baidu.com/s/1y0yLWy0FrL3IbV4CuQDWRw
提取码:1234

4、出图测试

完成以上配置,单独编译kernel(前提是板卡里已经烧写进完整系统镜像,如上篇中提到的官网固件AIO-3588SJD4-RTLINUX_Ubuntu20.04-Gnome-r21197_v1.0.1b_220922.img),RK3588s的内核编译命令为:
$./build.sh extboot
编译通过后,将sdk下kernel目录里的extboot.img文件烧写进板卡(烧写操作详见firefly wiki)即可。烧写完毕重启后,可通过以下指令判断是否配置正确、成功出图:
1)查看相机驱动的LOG信息:
$ dmesg | grep imx
若运行正常的情况下,则会出现fmt等信息,否则会看到未发现设备错误。

2)判断RKISP驱动加载状态:
RKISP驱动如果加载成功,会有video及media设备存在于/dev/目录下。系统中可能存在多个/dev/video设备,通过/sys可以查询到RKISP注册的video节点:
$ cat /sys/class/video4linux/video*/name

3)实时显示命令
$ gst-launch-1.0 v4l2src device=/dev/video11 io-mode=4 ! queue ! video/x-raw,format=NV12,width=3840,height=2160,framerate=30/1 ! glimagesink sync=false
PS: 末尾加上sync=false,会忽略时间同步的错误

4)查看数据输出帧率
$ v4l2-ctl -d /dev/video11 --set-fmt-video=width=3840,height=2160,pixelformat=‘NV12’ --stream-mmap=4 --set-selection=target=crop,flags=0,top=0,left=0,width=3840,height=2160 --stream-count=500
这条指令我调试用得比较多,因为可以直接看到输出的帧率及有没有丢帧。

在这里插入图片描述
参考:
1、firefly wiki: https://wiki.t-firefly.com/zh_CN/Core-3588SJD4/linux_compile_ubuntu.html
2、rk3588_repo_sdk_v1.0.2a目录下doc文档
3、firefly AIO-RK3588S-JD4电板电路原理图:MB-JD4-RK3588S-V10-20220530.pdf
4、RK3588 Kernel DTS解析: https://blog.csdn.net/weixin_43245753/category_11687839.html
5、Rockchip RK3588 kernel dts解析之Camera: https://blog.csdn.net/weixin_43245753/article/details/125304848
6、RK3566调试GC2053: https://blog.csdn.net/professionalmcu/article/details/125083662
7、Camera i2c、常见概念、系统架构简介:https://blog.csdn.net/weixin_38360181/article/details/118960293


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

相关文章

Keil.STM32F1xx_DFP.2.4.0.pack

我真是服了,在官网下速度贼慢,国内找镜像源要么是2.3.0版本的,要么就链接失效,上CSDN找,喵的下个这玩意还要收费。我现在下好了,放在百度网盘里,如果用得到的话帮我点下赞,谢谢。 …

Ubuntu20.04 配置D435i相机

文章目录 一、安装使用 InterRealSenseD435i SDK21.注册服务器的公钥2.安装3.安装开发者和调试包4.测试SDK2 二、安装realsense-ros1.创建工作空间2.源码安装3.编译: 三、安装kalibr1.安装kalibr 依赖2.安装python-igraph 和 python3-pyx3.创建工作空间4.编译&#…

小红书笔记为什么没有流量,归纳总结

我们都知道小红书是一个内容分享类平台。小红书笔记是平台的主要内容形式。但有时候,我们撰写了一篇笔记,却无法搜索到,今天为大家分享下小红书笔记为什么没有流量,归纳总结! 一、小红书笔记不被收录的原因 当我们精心…

APP测试要点有哪些?

我们日常购物、旅游、支付等活动都离不开手机,由此衍生了很多APP。 比如每天使用频率非常高的微信、支付宝、微博、抖音、王者荣耀等等。 APP测试主要进行功能测试、性能测试、自动化测试、安全性测试、兼容性测试、专项测试。 01、APP测试流程 APP测试流程与web测…

lenovo电脑如何进入Bios和Boot menu

1、不同型号按键不同,大多都为 F2或者fnF2 ;另外也可试试F10、DEL等 进入Bios 2、一键U盘/DVD启动,快捷键一般为F12,也可以到bios-boot进行手动改成第一启动项。 另外 GPT-UEFI 、 MBR-Legacy 对应 3、以上都没反应&#xff0c…

Lenovo/IBM ThinkPad 笔记本电脑指示灯释解

顺序自左向右: 1挂起状态指示灯绿色:计算机处于挂起状态绿色且不断闪烁:计算机正在进入挂起或休眠状态,或者正在从挂起或休眠状态中恢复回来2AC 电源状态指示灯绿色:计算机连接到交流电源上3电池状态指示灯绿色:电池电…

Lenovo到底是干什么的?

给专家准备的笔记本都是Lenovo的笔记本,昭阳E390,这个本子好不好用先不说了,我就怀疑为什么每个本子都带了一个正版的金山毒霸?和Lenovo的工程师聊天,才知道Lenovo已经在KingSoft有了50%的股份,一家人哦&am…

thinkbook 如何连接手机投屏

thinkbook 如何连接手机投屏 百度教程: 笔记本电脑怎么打开手机投屏功能? 关键词: PC:投影手机端:无线投屏 步骤 操作教程: 搜索关键词之后,点击跳转,进入如下图界面。 如上图&a…