i.MX 8M Plus是NXP推出的一款具有高可靠性,適合用于機(jī)器學(xué)習(xí)和視覺、高級多媒體和工業(yè)物聯(lián)網(wǎng)的處理器。為發(fā)揮其強(qiáng)大的多媒體性能,啟揚(yáng)在i.MX8M Plus配套底板上引出1 路 4 通道 MIPI-DSI 顯示接口、1 路雙通道 LVDS 顯示接口、1 路 HDMI 顯示接口(內(nèi)含 eARC 功能),支持三屏同顯和三屏異顯。
今天小編將簡單分享一下啟揚(yáng)IAC-IMX8MP-Kit開發(fā)板在連接LVDS屏幕的過程中所進(jìn)行的一系列調(diào)試過程。
注意
本文不著重于硬件的適配過程,只從軟件角度分析,默認(rèn)LVDS屏幕連接正確,背光等連接正常。
工具:
啟揚(yáng)IAC-IMX8MP-Kit開發(fā)板
1920x1080@60雙通道LVDS屏幕
1
分析屏幕手冊
首先,我們需要查看LVDS屏幕的datasheet,然后從中找出屏幕引腳圖說明,如圖所示:
從上圖我們可以看出該屏幕是一個(gè)雙通道的LVDS屏幕,一般來說這種屏幕的顏色模式是3x8bit。
從數(shù)據(jù)手冊中我們能看到LVDS接口類型和信號格式。一般來說LVDS顯示屏有VESA和JEIDA兩種接口標(biāo)準(zhǔn),兩種接口標(biāo)準(zhǔn)的區(qū)別在于每對低壓差分信號上傳輸?shù)腞、G、B三色的位數(shù)和HS、VS、DE位置不同。8bit液晶屏需要4對差分對傳輸R、G、B三色和HS、VS、DE控制信號,如下圖所示
根據(jù)下面數(shù)據(jù)手冊中內(nèi)容與上圖接口標(biāo)準(zhǔn)的對照,我們可以看出本次調(diào)試使用的LVDS屏幕的接口標(biāo)準(zhǔn)屬于VESA標(biāo)準(zhǔn)。
除了上述信息外,我們還需要timing參數(shù),這個(gè)參數(shù)能夠詳細(xì)地表述屏幕的顯示區(qū)域,在數(shù)據(jù)手冊中顯示如下圖所示
一般來說,我們需要Vactive+vbp+vfp+vsync以及Hactive+hbp+hfp+hsync還有時(shí)鐘等信息,這些參數(shù)有的屏幕手冊會詳細(xì)寫出,而有的則給出如上圖類似的信息。
這里筆者給大家簡要說明一下參數(shù)的關(guān)系,具體參數(shù)的意義因篇幅原因大家可以搜專業(yè)的解說帖子。
圖中V_active以及H_active就是我們屏幕實(shí)際的分辨率參數(shù),也就是1920*1080。上圖中H_active之所以顯示為960,這是因?yàn)樵撈聊皇且粋€(gè)分割屏幕,由兩塊兒屏幕組裝而成,所以Horizontal顯示的參數(shù)都要乘以2。
圖中TVB=bp+fp+sync,所以vbp+vfp+vsync=36、hbp+hfp+hsync=92x2=184,時(shí)鐘這里直接給出是70.5Mhz,因此不需要進(jìn)行計(jì)算。
以上就是數(shù)據(jù)手冊中上我們需要在意的參數(shù)部分。
此外我們需要重點(diǎn)關(guān)注的還有電壓電流以及上電時(shí)序等信息,只是這部分信息一般情況下都由硬件工程師通過硬件手段幫忙適配。如果需要參與軟件控制也不屬于LVDS適配層面,那么這里就不再過多的講述,那么就期待我們下章關(guān)于代碼部分的適配工作吧。
2
軟件代碼適配
本次啟揚(yáng)i.MX8M Plus開發(fā)板需要適配一款1920*1080@60 的雙通道LVDS屏幕,適配流程與以往i.MX系列的適配僅需要在相關(guān)設(shè)備節(jié)點(diǎn)寫timing不同,本次屏幕適配采用DRM驅(qū)動框架適配,因此我們需要先從設(shè)備樹開始入手。
不著重分析DRM驅(qū)動以及詳細(xì)的適配過程,僅從修改適配方向入手,為如何快速的適配一組LVDS屏幕提供參考。
打開設(shè)備樹文件(arch/arm64/boot/dts/freescale/imx8mp-qiyang-NV156FHM.dts)。
這里為適配多屏而單獨(dú)新建了一個(gè)設(shè)備樹文件,這樣就可以加載不同的設(shè)備樹點(diǎn)不同的屏幕,避免了在同一個(gè)設(shè)備樹上持續(xù)更改的繁瑣。
首先,#include一行直接帶入主設(shè)備樹,將開發(fā)板周邊設(shè)備一同囊括進(jìn)來。
其次,lvds0_panel_pwr節(jié)點(diǎn)是通過適配開發(fā)板上的電源管理芯片,將電源管理芯片的輸出電壓拉到lvds上使用,所以lvds供電由一個(gè)電源管理芯片來控制。
lvds0_panel節(jié)點(diǎn)主要是描述lvds的相關(guān)屬性。例如compatible屬性是為了匹配DRM相關(guān)驅(qū)動,因?yàn)榇舜芜m配的是一個(gè)雙通道的屏幕,所以寫“regulator-fixed”屬性;backlight節(jié)點(diǎn)是背光節(jié)點(diǎn);power節(jié)點(diǎn)引用上面lvds0_panel_pwr節(jié)點(diǎn),描述電源的部分;重要的是port節(jié)點(diǎn),該節(jié)點(diǎn)指明LVDS屏幕是接在哪個(gè)顯示通道上,需要結(jié)合下面ldb節(jié)點(diǎn)的內(nèi)容來看。
(這里只是簡單描述一下這些節(jié)點(diǎn)的意思,具體包含的詳細(xì)信息需要查看內(nèi)核資料
(Documentation/devicetree/bindings/media/video-interfaces.txt)
lvds-channel@0節(jié)點(diǎn)表示顯示適配器開通了一個(gè)lvds的通道,然后該通道有mapping以及width兩個(gè)屬性,mapping表示顏色的模式,width表示數(shù)據(jù)寬度,這里我們根據(jù)屏幕數(shù)據(jù)手冊的內(nèi)容可以直接寫spwg以及24。
port@1表示使用的是通道1。現(xiàn)在圖形處理器日益強(qiáng)大,很多圖形處理器可以開多通道,這里我們就開一個(gè)通道,然后將端點(diǎn)設(shè)置為我們上面描述的lvds,這樣的話我們就把ldb部分給配通了。
(更加詳細(xì)的解釋可以到提供的開發(fā)板系列資料Documentation/devicetree/bindings/display/imx/ldb.txt查看。)
總結(jié)一下就是我們需要在顯示適配器開通一個(gè)通道,然后這個(gè)通道是用來點(diǎn)lvds的,具體點(diǎn)哪個(gè)lvds需要endpoint節(jié)點(diǎn)的指引,然后再描述lvds,一般里面要寫具體是哪個(gè)屏幕,電源,背光等一系列信息,還要跟ldb的內(nèi)容互通,這樣保證兩者能夠相互找到,啟動之后驅(qū)動就會根據(jù)compatible節(jié)點(diǎn)去匹配屏幕。
-
開發(fā)板
+關(guān)注
關(guān)注
25文章
4949瀏覽量
97207
發(fā)布評論請先 登錄
相關(guān)推薦
評論