当前位置: 首页 > news >正文

RK3576摄像头MIPI-CSI拆分与DTS解析

MIPI-CSI是一种在嵌入式系统或移动设备中常见的摄像头接口,能够实现高速的图像数据传输。RK3576开发板拥有丰富的资源接口,其中支持5个CSI-2接口,意味着最多可同时支持5路摄像头的输入。

本篇内容就通过RK3576开发板为大家介绍一下RK3576处理器的Camera通路,以及如何配置MIPI-CSI摄像头。

在RK的平台,摄像头设备配置成一个V4l2的子设备,可参考子设备的配置方式,需要注意的点如下:

1.MIPI camera DTS配置注意事项

1、挂载的i2c总线与i2c地址需要配置正确,i2c地址此处为7为地址不包括读写位,sensor的datasheet提供的一般是8位地址,此处需要转换为7位地址配置,这里是0x3c。

2、时钟配置,若是主控提供的,需要根据原理图设计正确配置,并且正确引用pinctrl,否则可能会导致clk不输出。若是外部晶振,则无需配置。

3、powdn、reset控制配置:需要注意极性的配置,此处极性需要与代码逻辑流程想对应。

4、供电配置:此处是将电源使用regulator的形式,在驱动代码中进行控制。

4、rockchip,camera-module-index:指定camera sensor的设备ID号,后续注册camera会以这个作为cameraID

5、rockchip,camera-module-facing:指定camera sensor的前后摄

6、rockchip,camera-module-name:指定摄像头模组名称,后续会与效果文件匹配

7、rockchip,camera-module-lens-name:指定摄像头模组镜头名称,后续需与效果文件匹配

8、data-lanes:mipi的lane数配置,与实际硬件设计匹配,驱动可通过此处获取属性。

参考入下:

&i2c5 { status = "okay"; clock-frequency = <400000>; pinctrl-0 = <&i2c5m3_xfer>; ov2735_cam: ov2735_cam@3c { compatible = "ovti,ov2735"; reg = <0x3c>; clocks = <&ext_cam_clk>; clock-frequency = <24000000>; clock-names = "xvclk"; avdd-supply = <&vcc2v8_dvp>; dovdd-supply = <&vcc1v8_dvp>; dvdd-supply = <&vcc1v8_dvp>; rockchip,camera-module-index = <1>; rockchip,camera-module-facing = "front"; rockchip,camera-module-name = "AL-MT8-F2-V1.0"; rockchip,camera-module-lens-name = "default"; reset-gpios = <&gpio3 RK_PD0 GPIO_ACTIVE_HIGH>; port { ucam1_out: endpoint { remote-endpoint = <&mipi_in_ucam1>; >2.链路配置和拆分

驱动框架数据流需要经过sensor->mipi-dphy->csi host->vicap->rkisp等模块处理,驱动上将各个模块虚拟成entity的示例,因此在DTS配置的时序我们需要正确数据链路的方向。

链路配置介绍

单摄(接第一个dphy)

sensor0->csi2_dphy0->mipi1_csi2->rkcif_mipi_lvds1(sditf)->rkisp_vir0

双摄(接两个dphy)

sensor0->csi2_dphy0->mipi1_csi2->rkcif_mipi_lvds1(sditf)->rkisp_vir0 sensor1->csi2_dphy3->mipi3_csi2->rkcif_mipi_lvds3(sditf)->rkisp_vir1

三摄(接dcphy和2个dphy)

sensor0->csi2_dcphy0->mipi0_csi2->rkcif_mipi_lvds(sditf)->rkisp_vir0 sensor1->csi2_dphy0->mipi1_csi2->rkcif_mipi_lvds1(sditf)->rkisp_vir1 sensor2->csi2_dphy3->mipi3_csi2->rkcif_mipi_lvds3(sditf)->rkisp_vir2

五摄(接dcphy,将2个dphy拆分)

sensor0->csi2_dcphy0->mipi0_csi2->rkcif_mipi_lvds(sditf)->rkisp_vir0 sensor1->csi2_dphy1->mipi1_csi2->rkcif_mipi_lvds1(sditf)->rkisp_vir1 sensor2->csi2_dphy2->mipi2_csi2->rkcif_mipi_lvds2(sditf)->rkisp_vir2 sensor3->csi2_dphy4->mipi3_csi2->rkcif_mipi_lvds3(sditf)->rkisp_vir3 sensor4->csi2_dphy5->mipi4_csi2->rkcif_mipi_lvds4(sditf)->rkisp_vir4

dts配置可参考如下,下述举例了dcphy0的链路配置

&csi2_dcphy0 { 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 = <&imx415_out0>; >需要注意的是,上述数据链路均基于 MIPI RAW Sensor,图像数据需先进入 RK ISP 进行处理,并通过运行 rkaiq 对曝光、增益等参数进行自动调节,以获得正常的图像效果。如果摄像头本身输出的是 YUV422 / YUV420 等格式,则无需经过 RK ISP 处理,图像可由 rkcif 直接接收。

http://www.jsqmd.com/news/636416/

相关文章:

  • 二维核密度估计图 (KDE Plot) 实战:用 Seaborn 解锁双变量数据分布的深层洞察
  • 告别手动配置烦恼:OpCore-Simplify智能黑苹果配置助手终极指南
  • **反编译防护新思路:基于混淆+加密的C++程序加固实战**在软件安全领域,**反编译防护**始终是开发者绕不开
  • SpaceClaim旋风分离器建模实战:从粗到细的精准设计
  • 从赛季数据到模板图库:深入解析 tft_fetch_assets.py和TFT 截图识别的资源构建链路
  • 猫抓浏览器扩展:3分钟掌握网页视频音频资源一键下载完整指南
  • 低成本DIY家庭监控:基于ESP32-CAM和OV2640的无线视频流方案实战
  • 在jupyter里面画图,并且显示中文字体
  • 别再弯腰插拔了!用闲置MicroUSB线和CH340N芯片,5分钟自制桌面TTL调试神器
  • 提示词工程(Prompt Engineering)-周红伟
  • 大数据分析与挖掘实战平台 实训报告
  • Harness Engineering(驾驭工程)-2026年最强的智能体-周红伟
  • 基于llama.cpp部署私有大模型
  • 民办本科自动化,大三下,蓝桥杯刚考砸,会的不多,想学嵌入式还来得及找到工作吗?求前辈真实建议,骂醒我也行
  • **发散创新:基于LLM的智能代码助手在Python开发中的实战落地**在现代软件工程
  • GD32F103C8T6驱动W25Q32 SPI Flash保姆级教程(含源码与接线图)
  • 《OpenNAS - 从零开始写一个开源NAS系统》04 - ZFS存储池的管理
  • 2026企业AI Agent落地秘籍:少走3年弯路,抢占数字化风口!
  • 别再死记硬背C#语法了!用5个机器视觉小例子带你快速上手(Visual Studio 2022版)
  • 【R语言实战】批量单因素Logistic回归:从数据清洗到变量初筛的自动化流程
  • 手把手教你用GPT-oss:20b:CSDN平台图文教程,小白也能快速部署
  • 信息学奥赛实战解析:N进制回文数的高精度运算与优化策略
  • vivado hls的应用(题外话之AI编程)
  • AI Harness 学习清单(AI生成)
  • 微信小程序实战:打造优雅的互动消息列表(评论 / 点赞 / 关注
  • 如何5分钟上手Translumo:Windows平台最强的实时屏幕翻译神器
  • 从零开始掌握时序逻辑电路:状态机设计与FPGA实战解析
  • 解决403 Forbidden:Pixel Script Temple API访问权限配置详解
  • 实验19:Gazebo:三维物理仿真平台
  • 从 Rule-Based 到 LLM-Based:企业自动化流程的重塑