300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > RK3568开发笔记-EDP显示屏接口调试记录

RK3568开发笔记-EDP显示屏接口调试记录

时间:2019-09-04 12:52:25

相关推荐

RK3568开发笔记-EDP显示屏接口调试记录

目录

文章目录

前言

一、edp显示接口介绍

二、edp接口部分原理图

三、edp接口显示屏参数介绍

四、RK3568设备树参数配置

五、完整DTS edp参数

六、RK3568多屏显示vop选择

七、调试遇到的问题

总结

前言

RK3568CPU提供了丰富的外设接口,本文主要介绍通过edp显示接口驱动edp接口显示屏的具体操作方法以及调试记录。

一、edp显示接口介绍

随着显示分辨率的越来越高,传统的VGA、DVI等接口逐渐不能满足人们的视觉需求。随后就产生了以HDMI、DisplayPort为代表的新型数字接口,外部接口方面HDMI占据了较大市场优势,但是DisplayPort凭借自身优势调整结构,使之差距正在减少。内部接口方面传统用LVDS,LVDS面对高分辨率的显示越来越吃力,DisplayPort内部接口eDP由此诞生,会在将来逐步取代LVDS,本文主要介绍在RK3568平台上使用edp接口显示屏的具体使用方法。

RK3568 CPU目前支持edp 1.3接口,4对数据线最大支持2.7Gbps/Lane,最大分辨率支持2560x1600(切记详细看屏幕参数,如果屏幕分辨率大于该参数,RK3568将驱动不了该显示屏

二、edp接口部分原理图

RK3568部分原理图如下图所示。edp接口才用4对数据线和显示屏相连接,没有单独的时钟线,目前最新的edp接口速率可达8.1Gbps/Lane。

三、edp接口显示屏参数介绍

调试才用京东方NE173QHM edp接口显示屏,支持4对数据连接,分辨率为2560x1440,屏幕简要描述如下图所示,。

Signal Timing Specification:该表格中典型时钟频率为667.887Mhz,经过计算得知该时钟为最大刷新率为160hz计算出来的时钟,本文才用60h、75hz刷新率分别验证。

edid table参数:edid中主时钟为161Mhz,该时钟为40hz刷新率始终参数。

四、RK3568设备树参数配置

本小节主要根据edp接口显示屏的参数来配置设备树文件,来实现对edp接口显示屏的时序调试。

a、背光使能:背光使能脚为gpio2 RK_PD6管教,该管脚来实现对pwm背光的使能控制脚。

edp-panel {status = "okay";compatible = "simple-panel";power-supply = <&vcc3v3_lcd0_n>;enable-gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>;prepare-delay-ms = <200>;enable-delay-ms = <200>;unprepare-delay-ms = <200>;disable-delay-ms = <200>;bus-format = <MEDIA_BUS_FMT_RGB888_1X7X4_SPWG>;bpc = <8>;backlight = <&backlight>;......}

b、EDP_HPD 使能:配置该管脚为gpio2 RK_PD0来对edp显示屏信号检测。

&edp {status = "okay";//hpd-gpios = <&gpio4 RK_PC4 GPIO_ACTIVE_HIGH>;hpd-gpios = <&gpio2 RK_PD0 GPIO_ACTIVE_HIGH>;force-hpd;ports {edp_out:port@1 {reg = <1>;edp_out_panel: endpoint {//reg = <0>;remote-endpoint = <&panel_in_edp>;};};};};

c、显示时序配置:根据屏幕参数章节可知参数,具体配置如下图所示:(不同刷新率的时钟频率计算如下所示)

display-timings {native-mode = <&edp_timing>;edp_timing: edp_timing {//clock-frequency = <161912000>;//40Hz//clock-frequency = <242868000>;//60Hzclock-frequency = <303585000>;//75Hzhactive = <2560>;vactive = <1440>;hfront-porch = <48>;hsync-len = <32>;hback-porch = <80>;vfront-porch = <2>;vsync-len = <4>;vback-porch = <34>;hsync-active = <0>;vsync-active = <0>;de-active = <0>;pixelclk-active = <0>;};};

各项参数含义

clock-frequency: 提供给lcd的时钟频率,一般屏的规格书都会给出, 也可以通过计算得到。假如刷帧率是40hz,横向分辨率2560,纵向分辨率1440;那么lcd的时钟频率 dclk = 2560x1440x40= 161.912MHz。

hactive: 横向分辨率2560。

vactive:纵向分辨率2440。

hsync-len 行同步回扫时间。

hback-porn: 行同步后肩时间。

hfront-porn:行同步前肩时间。

vsync-len: 帧同步回扫时间。

vback-porch: 帧同步后肩时间。

vfront-proch: 帧同步前肩时间。

de-active: DE 信号极性。

hysnc-active: 行同步信号极性。

vsync-active: 帧同步信号极性

根据edid参数表可知hback-porch + hfront-porch + hsync-len = 160,vback-porch + vfront-porch + vsync-len = 40(其中三个参数配置等于总值即可,具体可以细微调整)。

五、完整DTS edp参数

edp-panel {status = "okay";compatible = "simple-panel";power-supply = <&vcc3v3_lcd0_n>;enable-gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>;prepare-delay-ms = <200>;enable-delay-ms = <200>;unprepare-delay-ms = <200>;disable-delay-ms = <200>;bus-format = <MEDIA_BUS_FMT_RGB888_1X7X4_SPWG>;bpc = <8>;backlight = <&backlight>;display-timings {native-mode = <&edp_timing>;edp_timing: edp_timing {//clock-frequency = <161912000>;//40//clock-frequency = <242868000>;//60clock-frequency = <303585000>;//75hactive = <2560>;vactive = <1440>;hfront-porch = <48>;hsync-len = <32>;hback-porch = <80>;vfront-porch = <2>;vsync-len = <4>;vback-porch = <34>;hsync-active = <0>;vsync-active = <0>;de-active = <0>;pixelclk-active = <0>;};};ports {panel_in_edp: endpoint {remote-endpoint = <&edp_out_panel>;};};};&edp {status = "okay";//hpd-gpios = <&gpio4 RK_PC4 GPIO_ACTIVE_HIGH>;hpd-gpios = <&gpio2 RK_PD0 GPIO_ACTIVE_HIGH>;force-hpd;ports {edp_out:port@1 {reg = <1>;edp_out_panel: endpoint {//reg = <0>;remote-endpoint = <&panel_in_edp>;};};};};&edp_phy {status = "okay";};&edp_in_vp0 {status = "okay";};&edp_in_vp1 {status = "disabled";};&route_edp { status = "okay";logo,uboot = "logo.bmp";logo,kernel = "logo.bmp";logo,mode = "center";charge_logo,mode = "center";connect = <&vp0_out_edp>;};

六、RK3568多屏显示vop选择

在RK3568如需多屏幕同显,必须为不同的显示接口屏幕配置好vop通道,其中vop0可以用做hdmi、mipi、edp等显示接口使用,vop1可以用作hdmi、mipi、edp、lvds等显示接口使用,vop2可以用作lvds、rgb等显示接口使用。

同时开启三个vop接口配置如下:

&vop {status = "okay";assigned-clocks = <&cru DCLK_VOP0>,<&cru DCLK_VOP1>,<&cru DCLK_VOP2>;assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;};

如果edp接口屏幕显示分辨率较大,可以配置vop0显示通道。

七、调试遇到的问题

a、屏幕闪屏

可以加大显示屏时钟频率。

2、多屏显示异常

调整vop显示通道

总结

上述为本人在RK3568平台调试edp接口显示屏的开发记录,希望提供一定的的参考。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。