RK3568支持多種接口,本文主要介紹通過edp顯示接口驅(qū)動edp顯示屏的具體操作方法以及調(diào)試記錄。
硬件準備
首先介紹一下硬件。主板為風(fēng)火輪科技的YY3568開發(fā)板,主控RK3568。此開發(fā)板的相關(guān)介紹可以參考
https://wiki.youyeetoo.cn/zh/YY3568
板上帶有一個edp接口,這種接口定義是通用的。
edp屏使用的是風(fēng)火輪科技的11.6寸edp屏。此屏幕的相關(guān)介紹可以參考
http://wiki.youyeetoo.cn/zh/YYT_116EDP
硬件連接如下
如果只用到顯示功能,接上edp線即可,另外還有觸摸相關(guān)的IO,下一篇文章會介紹
原理圖如下
核心板把EDP的四組差分線都拉出來了,但底板只使用了兩組。因為這種30pin的座子標(biāo)準就是只有兩組。
另外EDP還有熱插拔引腳,也就是這里的EDP_HPD,接到了GPIO_C2,不過R192默認不貼,因此在底板上默認是用不了熱插拔功能的。如果需要這功能需要貼上R192。
另外還有GPIO1_A4是它背光使能,這里直接默認上拉了。如果要控制背光使能,則需要貼上R199
背光調(diào)節(jié)使用的是PWM14_M0。
軟件準備
本文所使用的YY3568開發(fā)板已經(jīng)有配備SDK,以及編譯,燒錄的教程,可以參考YY3568的wiki,鏈接如下
https://wiki.youyeetoo.cn/zh/YY3568
linux系列的sdk和android系列的sdk編譯方法以及燒錄方法是不一樣的,編譯的時候注意一下。
要調(diào)試edp屏,主要涉及kernel部分修改,建議讀者首先了解kernel的編譯以及燒錄方法,這部分本文不做贅述。
Kernel部分修改
RK3568的VOP2帶有三個VIDEO PORT(VP0 VP1 VP2),支持最多6個圖層。下面以HDMI+EDP為例介紹kernel部分的修改。
目前Android全部采用的都是Linux DRM框架進行顯示,在DRM框架中,其顯示通路如下圖所示
圖中的幾個組成部分
Framebuffer:顯存,嵌入式系統(tǒng)使用的是內(nèi)存的一部分
CRTC:顯示控制器,在RK3568平臺是VOP2,VOP2支持三個VIDEO PORT。這三個VP共享6個圖層,而每個圖層只能被一個VP使用。VP0最大支持4K輸出,VP1最大支持2K輸出。VP2只能支持RGB和LVDS,最大1080P,用的比較少。
Encoder:輸出轉(zhuǎn)換器,指RGB、LVDS、DSI、eDP、HDMI、CVBS、VGA等顯示接口,它本質(zhì)就是一個編碼器,將CRTC提供過來的信號編碼為對應(yīng)顯示接口需要的信號。RK3568支持DSI0 DSI1 EDP LVDS HDMI RGB六個顯示接口。
Connector:連接器,指encoder和panel之間交互的接口部分;
Panel:各種具體的屏幕
因此,要驅(qū)動EDP屏幕,有三個部分需要配置,包括VOP,EDP控制器,屏幕的參數(shù)。
一般選擇VOP和具體顯示接口的對應(yīng)關(guān)系時,會考慮性能問題,市面上EDP屏最大的分辨率一般不會超過2K,而HDMI很多4K的,因此這里選擇VP0接到HDMI,VP1接到EDP。
首先配置VOP。VOP需要配置的東西不多,只需指定各個vp使用的圖層,如果只用兩個vp,那一般就是每個vp各分配三個圖層。這里的參考如下,也可以調(diào)換vp0和vp1的配置。
在芯片級設(shè)備樹rk3568.dtsi中edp的配置如下圖,這個edp控制器有一個ports,指定了它連接到vp0或者是vp1
如果選擇連接到vp1,則要把edp_in_vp0設(shè)為disabled,同時把edp_in_vp1設(shè)為okay。另外還要使能它的phy,也就是這個&edp_phy,因此,在板級設(shè)備樹中,配置如下圖
在rk3568的設(shè)備樹配置中,vop默認enable了所有的endpoint,因此,只需要使能了edp那里的endpoint,即可設(shè)置連接關(guān)系。
如果需要開機logo (kernel加載階段那個logo,不是android logo),則需要使能route_edp節(jié)點。默認是disabled的。
如果不使用開機logo的時候,uboot是不會加載DRM驅(qū)動的,這樣可以略微降低uboot階段消耗的時間。
然后需要配置edp控制器的一些屬性。
其中force-hpd就是強制使能edp輸出,無熱插拔功能時需要配置這個屬性。由于底板默認沒有熱插拔腳,因此需要配置。不配置此屬性時則需要配置hpd-gpios,也就是指定熱插拔所使用的引腳。
edp控制器也是有兩個port的,前面已經(jīng)介紹了其中一個port是指定vop的,這里另外一個port是指定屏的。
panel的參數(shù)配置如下
其中power-supply是給屏使能的,這里用的是GPIO1_A4。雖然底板上面沒有這個功能(默認常使能),但還是可以配置上這個腳,后續(xù)有需要可以貼上電阻開啟這個功能。
backlight指定的是背光調(diào)節(jié)的節(jié)點,這里用的就是pwm14。
另外這個pwm14的使能要打開。
display-timings指定的是屏參。如果屏支持動態(tài)讀取edid,則可以不指定顯示屏的具體參數(shù)。否則需要指定。
這個屏參可以從風(fēng)火輪科技那里獲取。
完成這些修改之后,在kernel目錄下面執(zhí)行編譯,得到boot.img。然后燒錄到板上
然后注意一下串口的kernel log,這個log說明drm驅(qū)動已經(jīng)能夠正常運作,實現(xiàn)vop和edp的綁定
這個log會在第一幀圖像輸出時打印,說明當(dāng)前vop的輸出分辨率,也就是Encoder的輸出分辨率
如果確認上述的log都有,到這里,應(yīng)該開機,能顯示出圖像
到這里,kernel部分的修改完成。
RK3568平臺Android11或者debian 10以上的sdk對顯示的支持已經(jīng)很完善,不需要過多的修改,用默認配置即可
常見問題分析
1、背光不亮
首先確認背光節(jié)點是否存在
ls /sys/class/backlight/backlight_edp
這個背光節(jié)點名跟設(shè)備樹配置的一致,筆者這里是backlight_edp
如果沒有存在,檢查pwm是否工作正常,執(zhí)行
dmesg | grep pwm
查看有無報錯信息。
如果提示pwm加載失敗,存在pinctrl出錯,則說明pwm14使用的引腳被其它功能復(fù)用了,關(guān)閉其它功能即可
然后查看當(dāng)前亮度
cat /sys/class/backlight/backlight_edp/brightness
如果亮度為0,說明沒有配置默認亮度,需要在backlight節(jié)點增加如下屬性
2、背光亮,沒有畫面顯示
需要一個名為modetest的工具,這個工具專門用于drm框架下顯示功能的調(diào)試
Android SDK下面已有此工具,默認不安裝到系統(tǒng),使用如下命令編譯
mmm external/libdrm/tests/modetest/ -j8
輸出目錄為out/target/product/(product name)/data/nativetest64/modetest/modetest
將此工具通過U盤/adb等方式放到板上,執(zhí)行
modetest -c
可以看到如下信息
如果這個status顯示為disconnected,說明此時那個edp的節(jié)點打開了hpd-gpios,且此時沒有檢測到熱插拔事件,先確認硬件上是否支持,如果不支持,則需要打開force-hpd并關(guān)閉hpd-gpios,如果支持,則需要檢查硬件連接
然后檢查下方的分辨率是否跟屏實際的一致,如果不一致,那么cpu端edp輸出的信號無法被屏的邏輯板識別,也是黑屏
部分edp屏不具備edid的功能,也就是必須要在設(shè)備樹配置分辨率。
如果此時還是不能顯示,那就要考慮是不是上層未將正確的顯存?zhèn)鬟f到驅(qū)動,這時可以用modetest產(chǎn)生colorbar來測試
注意到Connectors的id為359,分辨率為1920x1080。那么可以使用命令
modetest -s 359:1920x1080
此時屏上會顯示出colorbar
3、花屏
首先排查edp的輸出參數(shù)和屏參是否一致,像素時鐘是否正確。edp的像素時鐘有上限。
另外有些屏上下電有時序要求,注意規(guī)格書上面會說明在屏使能之前還是之后才提供edp數(shù)據(jù)。如果這個時序不對,會導(dǎo)致屏上面有殘影,看起來就是花屏。
4、部分顯示不全、閃屏
通常是某個圖層工作不正常。這時候會看到類似如下的內(nèi)核日志
這說明edp綁定的vp的圖層帶寬不足。像分辨率較高的顯示接口,需要分配至少一個ROCKCHIP_VOP2_SMART,同時將它的primary-plane設(shè)置為這個SMART圖層??梢詤⒖忌弦徽鹿?jié)的VOP配置。
總結(jié)
本文以YY3568開發(fā)板外接11.6寸edp屏為例介紹了如何在RK3568平臺上面調(diào)試edp屏幕。同時提供了一些調(diào)試過程中遇到的問題的解決方法。目前edp的應(yīng)用場景越來越廣泛,在商顯,車載等領(lǐng)域,已有取代LVDS之勢。風(fēng)火輪科技的開發(fā)板上面已經(jīng)具備了這個標(biāo)準的edp接口,如果有需要在rk3568平臺適配各種edp屏的,可以考慮用YY3568開發(fā)板來調(diào)試。
審核編輯 黃宇
-
嵌入式
+關(guān)注
關(guān)注
5082文章
19126瀏覽量
305198 -
接口
+關(guān)注
關(guān)注
33文章
8598瀏覽量
151157 -
調(diào)試
+關(guān)注
關(guān)注
7文章
578瀏覽量
33943 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5050瀏覽量
97471 -
RK3568
+關(guān)注
關(guān)注
4文章
514瀏覽量
5051
發(fā)布評論請先 登錄
相關(guān)推薦
評論