首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

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

  • 23-07-24 11:52
  • 1635
  • 11329
blog.csdn.net

上篇简单介绍了下最终效果,本篇开始将详细介绍相机适配、图像调优过程。
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

注:本文转载自blog.csdn.net的光脚怕穿鞋的文章"https://blog.csdn.net/zongheng_raobo/article/details/130611837?spm=1001.2014.3001.5501"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2024 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top