RK3568 EDP接口调试

描述

  RK3568支持多种接口,本文主要介绍通过edp显示接口驱动edp显示屏的具体操作方法以及调试记录。

硬件准备

首先介绍一下硬件。主板为风火轮科技的YY3568开发板,主控RK3568。此开发板的相关介绍可以参考

https://wiki.youyeetoo.cn/zh/YY3568

板上带有一个edp接口,这种接口定义是通用的。

调试

edp屏使用的是风火轮科技的11.6寸edp屏。此屏幕的相关介绍可以参考

http://wiki.youyeetoo.cn/zh/YYT_116EDP

硬件连接如下

调试

如果只用到显示功能,接上edp线即可,另外还有触摸相关的IO,下一篇文章会介绍

原理图如下

调试

核心板把EDP的四组差分线都拉出来了,但底板只使用了两组。因为这种30pin的座子标准就是只有两组。

另外EDP还有热插拔引脚,也就是这里的EDP_HPD,接到了GPIO_C2,不过R192默认不贴,因此在底板上默认是用不了热插拔功能的。如果需要这功能需要贴上R192。

调试

另外还有GPIO1_A4是它背光使能,这里直接默认上拉了。如果要控制背光使能,则需要贴上R199

背光调节使用的是PWM14_M0。

软件准备

本文所使用的YY3568开发板已经有配备SDK,以及编译,烧录的教程,可以参考YY3568的wiki,链接如下

https://wiki.youyeetoo.cn/zh/YY3568

调试

linux系列的sdk和android系列的sdk编译方法以及烧录方法是不一样的,编译的时候注意一下。

要调试edp屏,主要涉及kernel部分修改,建议读者首先了解kernel的编译以及烧录方法,这部分本文不做赘述。

Kernel部分修改

RK3568的VOP2带有三个VIDEO PORT(VP0 VP1 VP2),支持最多6个图层。下面以HDMI+EDP为例介绍kernel部分的修改。

目前Android全部采用的都是Linux DRM框架进行显示,在DRM框架中,其显示通路如下图所示

调试

图中的几个组成部分

Framebuffer:显存,嵌入式系统使用的是内存的一部分

CRTC:显示控制器,在RK3568平台是VOP2,VOP2支持三个VIDEO PORT。这三个VP共享6个图层,而每个图层只能被一个VP使用。VP0最大支持4K输出,VP1最大支持2K输出。VP2只能支持RGB和LVDS,最大1080P,用的比较少。

Encoder:输出转换器,指RGB、LVDS、DSI、eDP、HDMI、CVBS、VGA 等显示接口,它本质就是一个编码器,将CRTC提供过来的信号编码为对应显示接口需要的信号。RK3568支持DSI0 DSI1 EDP LVDS HDMI RGB六个显示接口。

Connector:连接器,指encoder 和panel 之间交互的接口部分;

Panel:各种具体的屏幕

因此,要驱动EDP屏幕,有三个部分需要配置,包括VOP,EDP控制器,屏幕的参数。

一般选择VOP和具体显示接口的对应关系时,会考虑性能问题,市面上EDP屏最大的分辨率一般不会超过2K,而HDMI很多4K的,因此这里选择VP0接到HDMI,VP1接到EDP。

首先配置VOP。VOP需要配置的东西不多,只需指定各个vp使用的图层,如果只用两个vp,那一般就是每个vp各分配三个图层。这里的参考如下,也可以调换vp0和vp1的配置。

在芯片级设备树rk3568.dtsi中edp的配置如下图,这个edp控制器有一个ports,指定了它连接到vp0或者是vp1 

调试

如果选择连接到vp1,则要把edp_in_vp0设为disabled,同时把edp_in_vp1设为okay。另外还要使能它的phy,也就是这个&edp_phy,因此,在板级设备树中,配置如下图

调试

在rk3568的设备树配置中,vop默认enable了所有的endpoint,因此,只需要使能了edp那里的endpoint,即可设置连接关系。

调试

如果需要开机logo (kernel加载阶段那个logo,不是android logo),则需要使能route_edp节点。默认是disabled的。

调试

如果不使用开机logo的时候,uboot是不会加载DRM驱动的,这样可以略微降低uboot阶段消耗的时间。

然后需要配置edp控制器的一些属性。

调试

其中force-hpd就是强制使能edp输出,无热插拔功能时需要配置这个属性。由于底板默认没有热插拔脚,因此需要配置。不配置此属性时则需要配置hpd-gpios,也就是指定热插拔所使用的引脚。

edp控制器也是有两个port的,前面已经介绍了其中一个port是指定vop的,这里另外一个port是指定屏的。

panel的参数配置如下

调试

其中power-supply是给屏使能的,这里用的是GPIO1_A4。虽然底板上面没有这个功能(默认常使能),但还是可以配置上这个脚,后续有需要可以贴上电阻开启这个功能。

调试

backlight指定的是背光调节的节点,这里用的就是pwm14。

调试

另外这个pwm14的使能要打开。

调试

display-timings指定的是屏参。如果屏支持动态读取edid,则可以不指定显示屏的具体参数。否则需要指定。

这个屏参可以从风火轮科技那里获取。

完成这些修改之后,在kernel目录下面执行编译,得到boot.img。然后烧录到板上

然后注意一下串口的kernel log,这个log说明drm驱动已经能够正常运作,实现vop和edp的绑定

调试

这个log会在第一帧图像输出时打印,说明当前vop的输出分辨率,也就是Encoder的输出分辨率

如果确认上述的log都有,到这里,应该开机,能显示出图像

调试

到这里,kernel部分的修改完成。

RK3568平台Android11或者debian 10以上的sdk对显示的支持已经很完善,不需要过多的修改,用默认配置即可

常见问题分析

1、背光不亮

首先确认背光节点是否存在

ls /sys/class/backlight/backlight_edp

这个背光节点名跟设备树配置的一致,笔者这里是backlight_edp

调试

如果没有存在,检查pwm是否工作正常,执行

dmesg | grep pwm

查看有无报错信息。

如果提示pwm加载失败,存在pinctrl出错,则说明pwm14使用的引脚被其它功能复用了,关闭其它功能即可

然后查看当前亮度

cat /sys/class/backlight/backlight_edp/brightness

如果亮度为0,说明没有配置默认亮度,需要在backlight节点增加如下属性

调试

2、背光亮,没有画面显示

需要一个名为modetest的工具,这个工具专门用于drm框架下显示功能的调试

Android SDK下面已有此工具,默认不安装到系统,使用如下命令编译

mmm external/libdrm/tests/modetest/ -j8

输出目录为out/target/product/(product name)/data/nativetest64/modetest/modetest

将此工具通过U盘/adb等方式放到板上,执行

modetest -c

可以看到如下信息

调试

如果这个status显示为disconnected,说明此时那个edp的节点打开了hpd-gpios,且此时没有检测到热插拔事件,先确认硬件上是否支持,如果不支持,则需要打开force-hpd并关闭hpd-gpios,如果支持,则需要检查硬件连接

然后检查下方的分辨率是否跟屏实际的一致,如果不一致,那么cpu端edp输出的信号无法被屏的逻辑板识别,也是黑屏

部分edp屏不具备edid的功能,也就是必须要在设备树配置分辨率。

如果此时还是不能显示,那就要考虑是不是上层未将正确的显存传递到驱动,这时可以用modetest产生colorbar来测试

注意到Connectors的id为359,分辨率为1920x1080。那么可以使用命令

modetest -s 359:1920x1080

此时屏上会显示出colorbar

调试

3、花屏

首先排查edp的输出参数和屏参是否一致,像素时钟是否正确。edp的像素时钟有上限。

另外有些屏上下电有时序要求,注意规格书上面会说明在屏使能之前还是之后才提供edp数据。如果这个时序不对,会导致屏上面有残影,看起来就是花屏。

4、部分显示不全、闪屏

通常是某个图层工作不正常。这时候会看到类似如下的内核日志

调试

这说明edp绑定的vp的图层带宽不足。像分辨率较高的显示接口,需要分配至少一个ROCKCHIP_VOP2_SMART,同时将它的primary-plane设置为这个SMART图层。可以参考上一章节的VOP配置。

总结

本文以YY3568开发板外接11.6寸edp屏为例介绍了如何在RK3568平台上面调试edp屏幕。同时提供了一些调试过程中遇到的问题的解决方法。目前edp的应用场景越来越广泛,在商显,车载等领域,已有取代LVDS之势。风火轮科技的开发板上面已经具备了这个标准的edp接口,如果有需要在rk3568平台适配各种edp屏的,可以考虑用YY3568开发板来调试。

审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分