RK3568-RK628D调试之HDMI-IN

news/2025/2/6 7:10:09/

一. 简介

  • 本文是基于RK3568平台,HDMI-IN调试总结。

  • 视频桥接芯片:RK628D

  • 驱动代码:“kernel\drivers\media\i2c\rk628”(驱动用的是rk628-for-all-v21版本)

  • 本次调试的方案功能:HDMI-IN信号通过RK628D转换成MIPI-CSI传到主控SOC

  • 参考文档:“RKDocs\common\RK628\Rockchip_RK628D_For_All_Porting_Guide_CN_V21.pdf”

  • 场景描述:
    ① RK3568 不直接支持HDMI-IN接口,SOC有MIPI-CSI功能。需将HDMI-IN转换成MIPI-CSI才能获取视频信息。

    ②此文章使用场景是一个HDMI-IN信号输入到RK628D芯片,RK628D再将HDMI-IN信号转换成MIPI-CSI信号输出到RK3588 SOC。通过软件抓取输入进SOC的视频信息。

在这里插入图片描述

二. 视频桥接芯片RK628D调试

2.1 RK628驱动介绍

  • RK628驱动有两个版本,一个是SDK系统自带的版本,一个是RK628-for-all版本。

  • RK628 分为 Display 通路和 HDMI IN 通路,SDK 版本 Display 通路基于DRM框架,HDMI IN 通路基于V4L2框架。

  • RK628-For-All 版本驱动一样也分为Display 通路和 HDMI IN 通路,Display 通路的驱动于drivers/misc/rk628/
    下,HDMI IN 通路的驱动于drivers/media/i2c/rk628/下。本文采用RK628-For-All 版本HDMI IN 通路:media

  • Media 为 RK628 HDMI IN 通路的驱动代码,将RK628D作为类camera设备使用,实现如下功能。

在这里插入图片描述

2.2 调试总览,调试步骤分析

调试思路:先把四个HDMI-IN对应一个龙讯LT8641UXE芯片,对应一个RK628D芯片调好。再调另一组。

  • 步骤 ① 移植驱动
  • 步骤 ② dts编写
  • 步骤 ③ 编译烧录,调试

2.3 移植驱动:

移植,向RK业务拿到移植的驱动文件:RK628-for-all-v21版本(和泰旨项目三是一样)
① config配置:Rockchip_defconfig: 关闭原SDK的628配置(不关闭的话会导致for_all驱动和sdk自带驱动冲突导致报错!!!),开启for-all版本的628配置。

# CONFIG_VIDEO_RK628_CSI is not set (不关闭的话会和media驱动有冲突,重复定义)
CONFIG_VIDEO_RK628=y (这是RK628-for-all media驱动开关配置)
CONFIG_DRM=y

2.4 dts编写

链接关系:rk628 --> csi2_dphy0 --> rkisp_vir0 ( isp 链路 )

&i2c2 {clock-frequency = <400000>;status = "okay";pinctrl-names = "default";pinctrl-0 = <&i2c2m1_xfer>;rk628_csi_v4l2: rk628_csi_v4l2@50 {status = "okay";reg = <0x50>;compatible = "rockchip,rk628-csi-v4l2";interrupt-parent = <&gpio0>;interrupts = <RK_PB0 IRQ_TYPE_LEVEL_HIGH>;enable-gpios = <&gpio3 RK_PA5 GPIO_ACTIVE_HIGH>;reset-gpios = <&gpio4 RK_PD2 GPIO_ACTIVE_LOW>;//hdcp-enable = <1>;scaler-en = <1>;pinctrl-names = "default";pinctrl-0 = <&refclk_pins>;assigned-clocks = <&pmucru CLK_WIFI>;//assigned-clocks = <&pmucru 28>;assigned-clock-rates = <24000000>;clocks = <&pmucru CLK_WIFI>;clock-names = "soc_24M";// pinctrl-names = "default";// pinctrl-0 = <&rk628_irq>;plugin-det-gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;rockchip,camera-module-index = <0>;rockchip,camera-module-facing = "back";rockchip,camera-module-name = "RK628-CSI";rockchip,camera-module-lens-name = "NC";port {hdmiin_out0: endpoint {remote-endpoint = <&mipi_in_ucam0>;data-lanes = <1 2>;};};};
};&csi2_dphy_hw {status = "okay";
};&csi2_dphy0 {status = "okay";ports {#address-cells = <1>;#size-cells = <0>;port@0 {reg = <0>;#address-cells = <1>;#size-cells = <0>;mipi_in_ucam0: endpoint@0 {reg = <0>;remote-endpoint = <&hdmiin_out0>;data-lanes = <1 2>;};};port@1 {reg = <1>;#address-cells = <1>;#size-cells = <0>;csidphy_out: endpoint@0 {reg = <0>;remote-endpoint = <&isp0_in>;};};};
};&rkisp {status = "okay";
};&rkisp_mmu {status = "okay";
};&rkisp_vir0 {status = "okay";port {#address-cells = <1>;#size-cells = <0>;isp0_in: endpoint@0 {reg = <0>;remote-endpoint = <&csidphy_out>;};};
};

三. 调试命令:

  • 查看media设备:

    ls /dev/media*
    
    /dev/media0  /dev/media1  
    
  • i2c设备的通用调试命令:查看设备是否挂载到i2c总线下:

    i2cdetect -y 2
    
  • 查看media节点的拓扑结构命令:

    media-ctl -d /dev/media0 -p
    media-ctl -p
    
  • 抓图命令:

    v4l2-ctl  -d   /dev/video0  --set-fmt-video=width=1920,height=1080,pixelformat=NV12 --stream-mmap=3 --stream-skip=100 --stream-to=/oem/NV12.yuv --stream-count=1 --stream-poll
    

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

相关文章

akg k420耳机换线

akg k420用了好多年了&#xff0c;最近发现线破了&#xff0c;有点接触不良&#xff0c;加上耳机上的海绵也老化坏了&#xff0c;其中一个上面的海绵已经掉了。 第一步就是网上找攻略&#xff0c;看看有没有别人写的更换经历blog&#xff0c;看到有一篇写的还不错&#xff0c;说…

RK3568 + 国产 PHY YT8531 调试

背景&#xff1a;国际斗争形式复杂&#xff0c;国产化替代也是不得不的事情&#xff0c;从原来的台湾 瑞昱 换成国产裕太 其实瑞昱 8211 和yt 8531 的外围电路机会一模一样&#xff0c;所以可以pin to pin 替换 调试之前需要根据官方说明&#xff0c;修改去驱动 net/phy 目录下…

希捷ST500LM012

机械硬盘为希捷ST500LM012&#xff0c;容量为500G&#xff0c;转速5400转&#xff0c;SATA2.0接口&#xff0c;具有8MB缓存。其实这款硬盘是三星产品&#xff0c;去年希捷收购三星硬盘后&#xff0c;三星硬盘也以希捷品牌出售。不过&#xff0c;据在韩国留学的朋友称&#xff0…

RK356X系列(RK3568)GL857L芯片 USB驱动开发

首先我们先区分一下USB几种控制器类型协议 OHCI UHCI EHCI xHCI。 OHCI、UHCI都是USB1.1的接口标准,而EHCI是对应USB2.0的接口标准,最新的xHCI是USB3.0的接口标准。 1. OHCI(Open Host Controller Interface)是支持USB1.1的标准,但它不仅仅是针对USB,还支持其他的一些接口…

k8s master 实现高可用

Kubernetes高可用master架构 k8s的高可用&#xff0c;主要是实现Master节点的高可用。那么我们看看各个组件是如何解决高可用的。 Kubelet、Kube-proxy&#xff1a;只工作在当前Node节点上&#xff0c;无需高可用。 etcd&#xff1a;etcd如果是放在集群内部的&#xff0c;在…

你觉得最便宜的 RX580 8G靠谱吗?磐镭RX580冰焰评测

​小编一朋友组装了一台游戏主机&#xff0c;CPU买的是Intel i3-6300&#xff0c;主板是技嘉H110M-DS2V DDR3-CF&#xff0c;内存是金士顿8GB&#xff0c;显卡是磐镭RX580 8G独显&#xff0c;机箱这些的就不说了。目前这些东西都已经到手了&#xff0c;朋友叫我帮忙测试一下&am…

RK3588开发板的性能参数、功耗及功能特点|飞凌动态讲解

内容来源&#xff1a;飞凌嵌入式官网-www.forlinx.com 2021年12月16日第六届瑞芯微开发者大会上&#xff0c;瑞芯微发布了全新一代旗舰处理器——RK3588。 相较前一代产品&#xff0c;RK3588的性能提高20%~30%&#xff01;同时采用新一代8nm制程工艺&#xff0c;也将大幅度降低…

rk3588硬件构成-rock5b

前言 rk3588是瑞芯微的一套新的arm64的板子&#xff0c;上一代用的比较多的是rk3399&#xff0c;新的硬件设备比之前更强大&#xff0c;接口更多&#xff0c;本系列就是介绍相关的硬件软件的一些资料&#xff0c;后面会根据不同的使用进行分篇的介绍 很多资料官网有提供&…