RK3568 HDMI屏调试记录

1、环境介绍

硬件:飞凌ok3568-c开发板

软件:原厂rk356x sdk

HDMI屏:我买的是7寸的HDMI便携屏,带USB触摸,带耳机接口

2、HDMI介绍

2.1、HDMI 类型

  1. 按连接器类型分:

Type A:标准型 HDMI 连接器,是最常用的类型,有 19 针,插头尺寸为 13.9×4.45mm,广泛应用于电视、电脑显示器、游戏机等设备。

Type B:有 29 针,主要用于一些专业设备或者早期高分辨率显示设备,在 HDMI 1.3 标准发布后,其使用场景逐渐减少。

Type C:Mini-HDMI,也是 19 针,尺寸较小,插头尺寸为 10.42×2.42mm,常用于便携式设备如数码相机、平板电脑等。

Type D:Micro-HDMI,同样是 19 针,尺寸更小,插头尺寸为 6.4×2.8mm,主要用于智能手机等更小的便携式设备。

Type E:随 HDMI 1.4 标准引入,专为高速汽车应用而设计,具有抗振动和冲击的特性,其先进的设计还包括一个可承受振动的锁定片和一个可防止连接内部受潮和脏污的金属外壳。

  1. 按公对母锁定机制分:

直式 HDMI 连接器:常用的直式 HDMI 连接器,公接头和母接头直接插入连接。

直角 HDMI 连接器:在连接处有一个 90 度的锐角弯曲,可节省连接点的空间。

2.2、HDMI引脚定义

以 Type A 接口为例,以下是其引脚的详细定义:

引脚信号引脚信号引脚信号
1数据2+2数据2屏蔽3数据2-
4数据1+5数据1屏蔽6数据1-
7数据0+8数据0屏蔽9数据0-
10时钟+11时钟屏蔽12时钟-
13CEC14保留15SCL
16SDA17DDC/CEC地18+5V电源
19热插拔检测
  1. TMDS 数据传输引脚:1-9 号引脚为 TMDS 数据传输引脚,分为 0、1、2 三组,用于传输视频像素数据、音频数据包、图像信息包等。
  2. TMDS 时钟信号引脚:10-12 号引脚为 TMDS 时钟信号引脚,为 TMDS 数据传输提供时钟同步信号,确保数据的正确传输和接收。
  3. CEC 引脚:13 号引脚为 CEC(Consumer Electronics Control)引脚,类似一种扩展的 HDMI 功能,供厂家自己定制 HDMI 消息,可实现通过一个遥控器控制多个连接的设备。
  4. 保留引脚:14 号引脚为保留引脚,未使用,部分情况下也可作为 CEC 的备用引脚。
  5. DDC 引脚:15-16 号引脚为 I2C 引脚,用于 DDC(Display Data Channel)传输,主要用于 EDID(Extended Display Identification Data)与 HDCP(High-bandwidth Digital Content Protection)的传输,设备通过 DDC 来获取对方设备的 EDID 等信息。
  6. 接地引脚:17 号引脚为接地引脚,提供电路的参考电位,保证信号传输的稳定性和安全性。
  7. 5V AC 引脚:18 号引脚为 5V 的 AC 引脚,为连接的 HDMI 设备提供电源。
  8. 热插拔检测引脚:19 号引脚为 Hotplug(热拔插)引脚,用于监测 HDMI 设备有没有存在,当设备连接时,该引脚会发出信号,以便设备能够正确地识别和配置 HDMI 接口。

3、RK3568显示接口

RK3568显示接口如下,其中有1个原生的HDMI2.0接口:

RK3568显示接口最大输出分辨率:

4、RK3568 VOP

VOP 是视频输出处理器。它主要负责处理视频信号的输出,将经过处理(如解码、图形渲染等)后的视频数据转换为适合显示设备(如显示器、电视等)接收的格式,并输出到物理接口(如 HDMI、eDP 等)。

4.1、RK3568 VOP基础特性

4.2、RK3568 VP

RK3568 VOP2.0有3个Video Post接口,分别是VP0、VP1、VP2。

下图是RK3568 VP接口和各显示接口的连接关系,其中支持HDMI输出的有VP0、VP1接口:

5、原理图查看

ok3568-c开发板原理图HDMI部分:

6、显示调试

6.1、dts配置

6.1.1、使能HDMI

&hdmi {
	status = "okay";
};

6.1.2、绑定VP

当使能HDMI接口后,其支持HDMI的所有VP接口默认会打开,我们只能选择一个,这里我们使用VP0,那么VP1就要关掉:

/* 使能vp0 */
&hdmi_in_vp0 {
    status = "okay";
};

/* 关闭vp1 */
&hdmi_in_vp1 {
    status = "disabled";
};

/* 配置hdmi使用vp0输出 */
&route_hdmi {
	status = "okay";
	connect = <&vp0_out_hdmi>;
};

同时,关闭其它暂时用不到的显示接口和VP接口:

/* edp */
&edp {
	status = "disabled";
};

&edp_in_vp0 {
	status = "disabled";
};

&edp_in_vp1 {
	status = "disabled";
};

&route_edp {
	status = "disabled";
};

/* dsi0 */
&dsi0 {
	status = "disabled";
};

&dsi0_in_vp0 {
	status = "disabled";
};

&dsi0_in_vp1 {
	status = "disabled";
};

&route_dsi0 {
	status = "disabled";
};

/* dsi1 */
&dsi1 {
	status = "disabled";
};

&dsi1_in_vp0 {
	status = "disabled";
};

&dsi1_in_vp1 {
	status = "disabled";
};

&route_dsi1 {
	status = "disabled";
};

/* lvds */
&lvds {
	status = "disabled";
};

&lvds_in_vp1 {
	status = "disabled";
};

&lvds_in_vp2 {
	status = "disabled";
};

&route_lvds {
	status = "disabled";
};

/* rgb */
&rgb {
	status = "disabled";
};

&rgb_in_vp2 {
    status = "disabled";
};

&route_rgb {
    status = "disabled";
};

6.2、验证

6.2.1、观察启动logo

正常情况下,接入HDMI屏幕后,系统启动过程中,屏幕会显示logo。

6.2.2、查看VOP接口状态

cat /sys/kernel/debug/dri/0/summary

6.2.3、查看Connector状态

/sys/class/drm 目录下可以看到驱动注册的各个显卡:

ls /sys/class/drm


以 card0-HDMI-A-1 为例,其目录下有以下文件:

ls /sys/class/drm/card0-HDMI-A-1

  • enabled:使能状态
  • status:连接状态
  • modes:连接设备支持的分辨率列表

6.2.4、查看HDMI工作状态

cat /sys/kernel/debug/dw-hdmi/status

6.2.5、查看HDMI CEC工作状态

cat /sys/kernel/debug/dw-hdmi/status

  • configured 表示 cec adapter 是否配置完毕,1 为配置完毕,0 为未完毕。
  • configuring 表示 cec adapter 是否正在配置,1 为正在,0 为配置完毕或未开始配置。
  • phys_addr 表示 cec 的物理地址,未获取物理地址时为 f.f.f.f。
  • number of LAs 表示该 cec 设备的逻辑地址数量,大部分设备为 1,极少数为 2。
  • LA mask 表示当前绑定的逻辑地址,具体取值为(1 << 绑定的逻辑地址)。如:取值为 0x0010 时,右移 4 位后为 1,则说明当前的逻辑地址为 4,取值为 0x0800 时,右移 11 位后为 1,则说明当前的逻辑地址为11.如未绑定任何逻辑地址时为 0x0000。
  • pending transmits 表示当前还有多少待发送的 cec 消息。

6.2.6、强制使能/禁用HDMI

强制使能 HDMI:

echo on > /sys/class/drm/card0-HDMI-A-1/status

强制禁用 HDMI:

echo off > /sys/class/drm/card0-HDMI-A-1/status

恢复检测热插拔:

echo detect > /sys/class/drm/card0-HDMI-A-1/status

7、触摸调试

本次调试的屏幕带USB触摸,在板卡适配好USB Host的情况下(RK3568 bsp 9 - USB调试记录-CSDN博客),使用一根USB转Type-C的线连接屏幕和板卡对应的接口。上电后,USB控制器驱动会枚举设备,当发现是一个HID设备后,会为其加载HID设备驱动,HID设备驱动会根据报告描述符将其注册进输入子系统,分配inputEvent节点。

查看原始触摸数据:

hexdump /dev/input/event5

8、总结

嵌入式Linux学习交流群:424571391
参考文章:

《Rockchip_Developer_Guide_HDMI_CN.pdf》

rk3568是一款RK3568芯片组,常用于Android TV盒子等设备中,它内置了一块GPU,可以驱动外接的HDMI显示器。要修改HDMI触摸的分辨率,你需要按照以下一般步骤操作: 1. **进入开发者模式**:首先,通过设备设置进入关于手机或平板电脑的信息界面,找到并开启"开发者选项"。 2. **启用USB调试**:在开发者选项中,允许USB调试并选择"仅ADB"连接模式。 3. **安装ADB工具**:下载并安装适用于你的系统的Android Debug Bridge (ADB)。这通常可以从Google的开发者网站上获得。 4. **连接设备**:通过USB线将设备连接到电脑,并确保电脑能识别设备。 5. **更改分辨率命令**:打开命令行(Windows: cmd, Mac/Linux: terminal),输入以下命令以列出当前可用的HDMI显示模式: ``` adb shell pm list displays ``` 6. 找到你想要设置的分辨率,然后运行类似这样的命令来设置新分辨率(例如分辨率为1920x1080): ``` adb shell wm size 1920x1080 ``` 注意,这个命令会改变整个屏幕的分辨率,包括触摸部分。 7. **重启设备**:更改分辨率后,通常需要重启设备使其生效。 8. **确认设置**:重启后,检查HDMI输出是否已更新为新的分辨率,并测试触摸功能是否正常。 如果你遇到问题,可能需要查阅具体的rk3568用户手册或者在线社区的解决方案,因为不同的硬件配置和固件版本可能会有所不同。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值