RK3588-HDMIRX

文章介绍了在RK3588芯片平台上通过HDMIRX模块开发HDMIIN功能的方法,包括dts配置以设置HDMIRX控制器和预留内存,以及如何调试和获取HDMI输入源的分辨率信息,使用v4l2-ctl命令进行抓帧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 简介

  • HDMI IN功能可以通过桥接芯⽚的⽅式实现,将HDMI信号转换成MIPI信号接收,RK3588芯⽚平台⾃带
    HDMI RX模块,可以直接接收HDMI信号。
  • 本篇文章主要介绍在RK3588 平台通过HDMI RX模块开发实现HDMI IN功能的⽅法。

2. dts配置

2.1 HDMI RX控制器配置

/* Should work with at least 128MB cma reserved above. */ 
&hdmirx_ctrler { 
	status = "okay"; 
	
	/* Effective level used to trigger HPD: 0-low, 1-high */ 
	hpd-trigger-level = <1>; 
	hdmirx-det-gpios = <&gpio1 RK_PC6 GPIO_ACTIVE_LOW>; 
	pinctrl-names = "default"; 
	pinctrl-0 = <&hdmim1_rx &hdmirx_det>; 
}; 

&pinctrl {
	hdmirx {
		hdmirx_det: hdmirx-det {
			rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};
}

2.2 预留内存

RK3588 HDMI RX模块只能使用物理连续内存,需要预留至少128MB的CMA内存:
注:按3840x2160分辨率,RGB888图像格式,4个轮转Buffer计算。

/* If hdmirx node is disabled, delete the reserved-memory node here. */ 
reserved-memory { 
	#address-cells = <2>; 
	#size-cells = <2>; 
	ranges; 
	
	/* Reserve 128MB memory for hdmirx-controller@fdee0000 */ 
	cma { 
		compatible = "shared-dma-pool"; 
		reusable; 
		reg = <0x0 (256 * 0x100000) 0x0 (128 * 0x100000)>; 
		linux,cma-default; 
	}; 
};

3. 调试

HDMI-IN 设备在内核中会被注册为 video 设备,生成的节点如:/dev/video20,可以通过 v4l2-ctl 命令来获取设备信息和抓帧。

  • 查看所有video节点

    ls /dev/video* 
    
  • 获取设备信息,查找rk_hdmirx设备对应的是哪个video节点

     v4l2-ctl -d /dev/video* -D      例: v4l2-ctl -d /dev/video20 -D 
    

    使⽤v4l2-ctl -d参数指定vidoe节点,-D命令查看节点信息,通过Driver name确认哪个是节点是rk_hdmirx 设备:

    在这里插入图片描述

  • 获取外部设备输入的分辨率信息

    v4l2-ctl -d /dev/video20  -V
    

    在这里插入图片描述
    可以看出此时输入源的像素格式为 ’ NV24 ’ 。分辨率为 1920 * 1080

    抓图:根据输入源的格式和分辨率设置好抓图命令的格式和分辨率: ( 这里像素格式为 ’ NV24 ’ 。分辨率为 1920 * 1080 )

    v4l2-ctl -d /dev/video20 --set-fmt-video=width=1920,height=1080,pixelformat=NV24 --stream-mmap=3 --stream-skip=100 --stream-to=/oem/NV24.yuv --stream-count=1 --stream-poll
    
  • 在 PC 端查看抓取到的帧文件

    将抓取到的NV24.yuv图片可adb pull到PC端,通过7yuv、YUView等⼯具软件查看:

    adb pull /oem/NV24.yuv ./  
    
### 关于RK3588-G-S芯片的规格参数 #### 芯片概述 RK3588-G-S是一款基于Rockchip RK3588系列设计的高性能处理器,专为图形处理优化而打造。它继承了RK3588的核心架构优势,在GPU性能上进行了进一步强化,适合应用于高端图像渲染、游戏开发以及多媒体处理场景。 #### 主要技术特性 - **核心配置**: - CPU部分由四个Cortex-A76大核(频率可达2.4 GHz)和四个Cortex-A55小核组成[^1]。相较于标准版RK3588,其大小核频率保持一致,但在实际应用中针对特定负载做了更优调校。 - 集成强大的Mail-G610 MP4 GPU模块,相比基础版本提供更高的浮点运算能力和更好的能效表现[^3]。 - **AI加速能力**: - 内置专用神经网络处理单元(NPU),理论峰值算力达到6 TOPS以上,能够高效执行深度学习推理任务,满足计算机视觉、自然语言处理等多种应用场景需求。 - **存储支持**: - 支持LPDDR4X/LPDDR5高速内存颗粒,最高容量可达32 GB RAM;同时兼容UFS 3.1闪存标准以实现更快的数据读写速度。 - **显示与媒体功能**: - 提供卓越的多屏异步输出解决方案,单路分辨率上限至8K@60fps级别,并且具备HDMI 2.1接口选项用于连接外部显示器设备。 - 嵌入先进的VPU子系统来完成超高清视频编码/解码工作流程(HEVC/H.265,H.264,Vp9等主流格式均被良好覆盖). - **无线通信扩展性**: - 结合最新一代Wi-Fi协议(WiFi7),通过适配器如WCN7851可以显著提升数据传输效率并减少延迟现象发生概率[^2]. - **其他外设集成度**: - 包含双千兆以太网控制器(PHY内置型);USB Type-C Gen2端口;PCIe Gen3×2通道资源分配方案等等多样化硬件设施布局规划. 以下是具体的一些关键指标总结表: | 参数类别 | 描述 | |----------------|----------------------------------------------------------------------| | 制造工艺 | 8nm | | CPU | Quad-core Cortex-A76 @ 2.4GHz + Quad-core Cortex-A55 @ 1.8GHz | | GPU | Mali-G610 MP4 | | NPU | Up to 6TOPs | | 存储 | Supports up to LPDDR5 and UFS 3.1 | | 显示输出 | Dual-channel MIPI DSI / eDP, HDMI 2.1 | | 编解码能力 | H.265 (up to 8K@60fps decode) | | 网络支持 | Dual Gigabit Ethernet PHY | | 扩展接口 | PCIe Gen3 ×2 lanes | #### 应用领域 由于上述提到的强大性能组合,RK3588-G-S非常适合部署到如下几个方向当中去探索更多可能性: - ARM桌面电脑平台构建. - 边缘侧智能分析节点搭建. - 工业控制自动化项目实施过程中作为主控大脑角色存在. ```python # 示例代码展示如何初始化一个基本的Linux环境检测脚本 import os def check_system_info(): cpuinfo = os.popen('cat /proc/cpuinfo').read() meminfo = os.popen('free -h').read() return f"CPU Info:\n{cpuinfo}\nMemory Info:\n{meminfo}" if __name__ == "__main__": system_details = check_system_info() print(system_details) ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式Linux开发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值