T527 基于 DRM 框架的 HDMI 调试

1、环境介绍

硬件:飞凌OK527

软件:原厂t527-tina5.0-aiot-v1.4 sdk(buildroot、Linux 5.15)

2、前言

本文将记录t527基于drm框架的hdmi调试。t527 hdmi最高分辨率支持4k。关于全志t527的显示接口和显示路由框架理清可以参考:T527 基于DRM框架的显示通路理清

3、T527 HDMI 功能支持表

由于不同 SDK 平台针对的使用场景不同,部分功能虽然硬件支持,但是 SDK 可能没有支持上。请综合考虑以下芯片硬件功能支持表和 SDK 平台功能实现表。

4、HDMI 显示框图

5、HDMI 模块框图

HDMI 模块内部大致分为视频处理模块、音频处理模块、帧打包模块和 PHY 模块:

视频处理模块:对输入的视频进行采样并重新打包。

音频处理模块:对输入的音频进行采样并重新打包。

帧处理模块:对音频和视频数据按照帧数据的方式进行融合打包,并添加相关的 infoframe 信息。

PHY 处理模块:将完整的帧数据按照 TMDS 协议转换为 TMDS Data,并输出到显示端。

6、uboot 设备树配置

hdmi 开启 logo显示。(如果不开,系统启动后不会自动进入weston桌面。不会自动进入weston桌面不代表hdmi无法使用)

7、kernel 设备树配置

以下是sdk出厂时关于hdmi的默认配置,可以直接用。需要修改可以参考《Linux HDMI2.0 DRM 开发指南》。同时需要关闭lvds。(如果不关lvds,系统启动后不会自动进入weston桌面。不会自动进入weston桌面不代表hdmi无法使用):

// &de(de0/de1) -> &vo0 -> &tv0(TCON2_TV0) -> &hdmi
&de {
    chn_cfg_mode = <3>;
    status = "okay";
};

&vo0 {
    status = "okay";
};

&tv0 {
    status = "okay";
};

&hdmi {
	bldo3-supply = <&reg_bldo3>;
	hdmi_power0 = "bldo3";
	hdmi_power_cnt = <1>;

	hdmi_hdcp1x_enable = <1>;
	hdmi_hdcp2x_enable = <0>;
	hdmi_cec_enable = <0>;

	inno_phy = <
		 25000 165000 0x01000102 0x1c1c1c1c 0x00000000 0x00000000
		165000 340000 0x01040506 0x1c1c1c1c 0x00000000 0x03030300
		340000 600000 0x010f0f0f 0x1c1c1c1c 0x00000000 0x00000000>;

	status = "okay";
};

&lvds0 {
	status = "disabled";		// 关闭lvds
//	dual-channel = <0>;
	pinctrl-0 = <&lvds0_pins_a>;
	pinctrl-1 = <&lvds0_pins_b>;
	pinctrl-names = "active","sleep";
	ports {
		port@1 {
			reg = <1>;
			lvds_panel_out: endpoint@0 {
				reg = <0>;
				remote-endpoint = <&lvds_panel_in>;
			};
		};
	};
};

8、内核配置

如下是内核配置,默认已开启:

Allwinner BSP ‑‑‑>
    Device Drivers ‑‑‑>
        DRM Drivers ‑‑‑>
            <*> DRM Support for Allwinner SoCs
            <*>   Support Hdmi Output
                [*] Support HDMI2.0 Output

9、测试

本次测试将使用1024*600分辨率的7寸hdmi屏。测试需要使用modetest工具,需在buildroot menuconfig中开启:

BR2_PACKAGE_SUNXI_MODETEST=y

9.1、查看log信息

插入1024*600分辨率7寸屏后,有如下log:

buildroot系统启动后会进入weston桌面(前提是配置了logo显示,关闭lvds):

9.2、modetest 介绍

modetest 是 DRM / KMS 框架的用户空间测试工具。可以验证drm驱动是否正常工作,替代图形界面进行底层测试。

9.3、使用modetest工具测试

关闭所有weston服务:

killall weston

查看hdmi connector id和crtcs id:

modetest -M sunxi-drm -c | grep "HDMI" && modetest -M sunxi-drm | grep -A 2 "CRTCs"

查看屏幕支持的分辨率:

modetest -M sunxi-drm -c | grep -A 20 "HDMI" | grep -E "[0-9]+x[0-9]+"

静态彩条测试:

# modetest -M sunxi-drm -s <hdmi_connector_id>@<crtcs_id>:<分辨率> -v
# 该命令会建立显示管道并输出图像
modetest -M sunxi-drm -s 149@100:1024x600

9.4、查看Tx信息

cat /sys/class/hdmi/hdmi/attr/hdmi_source

属性解释参考:《Linux HDMI2.0 DRM 开发指南》

cat /sys/class/hdmi/hdmi/attr/hdmi_sink

属性解释参考:《Linux HDMI2.0 DRM 开发指南》

9.6、更改输入源

目前支持 HDMI 的 frame composer 和 Tcon 的两种输入源替换,用于定位是否 DE 送进的数据有异常。

查看支持输出图片:

cat /sys/class/hdmi/hdmi/attr/pattern

设置输出图片:

# echo <index> > /sys/class/hdmi/hdmi/attr/pattern
# 输出红色图片
echo 1 > /sys/class/hdmi/hdmi/attr/pattern

切换回de输出:

10、总结

参考文章:

《Linux HDMI2.0 DRM 开发指南》

嵌入式Linux学习交流群:424571391

【SCI级别】多策略改进鲸鱼优化算法(HHWOA)和鲸鱼优化算法(WOA)在CEC2017测试集函数F1-F30寻优对比内容概要:本文档主要介绍了一项关于多策略改进鲸鱼优化算法(HHWOA)与标准鲸鱼优化算法(WOA)在CEC2017测试集函数F1-F30上进行寻优性能对比的研究,属于智能优化算法领域的高水平科研工作。文中通过Matlab代码实现算法仿真,重点展示了HHWOA在收敛速度、寻优精度和稳定性方面的优势,体现了多策略改进的有效性。该研究适用于复杂优化问题求解,尤其在工程优化、参数辨识、机器学习超参数调优等领域具有应用潜力。; 适合人群:具备一定算法基础和Matlab编程能力的研究生、科研人员及从事智能优化算法开发与应用的工程技术人员,尤其适合致力于SCI论文写作与算法创新的研究者。; 使用场景及目标:①用于理解鲸鱼优化算法的基本原理及多策略改进思路(如种群初始化、非线性收敛因子、精英反向学习等);②为智能优化算法的性能测试与对比实验提供CEC2017标准测试平台的实现参考;③支撑学术研究中的算法创新与论文复现工作。; 阅读建议:建议结合提供的Matlab代码进行实践操作,重点关注HHWOA的改进策略模块与WOA的差异,通过重复实验验证算法性能,并可将其思想迁移至其他优化算法的改进中,提升科研创新能力。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值