RK3568—基于GM8775C的MIPI转双通道LVDS屏幕调试
?Rockchip RK3568 原生顯示接口不支持雙通道LVDS屏幕的數據輸出,因此需要借助顯示轉換芯片才能實現雙通道LVDS屏幕的驅動。本文介紹使用GM8775C芯片方案,在 RK3568 平臺實現單路 MIPI DSI 信號輸出來驅動雙通道LVDS顯示屏。
關于GM8775C
GM8775C 型 DSI 轉雙通道 LVDS 發送器產品主要實現將 MIPI DSI 轉單/雙通道 LVDS功能,MIPI 支持 1/2/3/4 通道可選,每通道最高支持 1Gbps 速率,最大支持 4Gbps 速率。LVDS時鐘頻率高達 154MHz,最大支持視頻格式為 FULL HD(1920 x 1200)。系統應用圖如下:
?
雙通道LVDS顯示屏
在軟件調試驅動顯示屏之前,我們需要閱讀顯示屏規格書,從規格書中獲取屏幕的引腳定義、分辨率、時鐘頻率、顯示參數和信號模式等信息。下面以一個雙通道LVDS屏幕為例,說明如何從其規格書中獲取點屏所需要的主要參數。
由表格中 Display format 欄可知,此屏幕分辨率為 1920x1080
從通道數據映射表可知,該屏幕信號格式為VESA標準,并結合屏幕線序定義來確認兩個LVDS通道的奇偶分布。
從以上描述得知,該屏幕每個顏色有8位,由規格書中的顏色分布表可確認該屏幕顏色格式為RGB888。
以時序表格中間一列典型值作為參考,可以獲取到顯示屏的掃描窗口參數。在幀率為60Hz的情況下,時鐘頻率約為147MHz。其中垂直方向,有效顯示時鐘周期為1080,空白周期為45;水平方向,有效顯示周期為 960x2,空白周期為280。
RK3568 MIPI TX 顯示接口
RK3568 具有兩路 MIPI DSI ,單 MIPI 模式下支持 1920x1080@60Hz 顯示輸出。EVB3568 開發板硬件上使用MIPI_DSI_TX0 通道與 GM8775C 芯片連接,實現最大支持 1080P 的雙通道 LVDS 顯示屏驅動能力。
硬件連接如下圖所示:
內核設備樹配置
MIPI_DSI_TX0 在軟件上對應于設備樹中的 dsi0 節點,我們需要在設備樹中將 dsi0 相關的配置開啟,并在該節點下填寫屏幕的參數。主要參數說明如下:
rockchip,lane-rate?-- MIPI單通道帶寬(單位Mbps) power-supply?-- 供電regulator backlight?-- 屏幕背光控制節點 dsi,format?-- 數據輸格式 dsi,lanes?-- 通道個數 panel-init-sequence?-- 屏幕初始化命令 dsi0_timing0?-- 時序設置將從屏幕規格書上查閱到的參數填寫至dsi0 節點的對于參數位置。
時序及時鐘
dis0_timing0 中填寫時序前后肩和同步等參數如下:
disp_timings0: display-timings {native-mode =?<&dsi0_timing0>;dsi0_timing0: timing0 {clock-frequency =?<148500000>;hactive =?<1920>;vactive =?<1080>;hfront-porch =?<140>;hsync-len =?<10>;hback-porch =?<130>;vfront-porch =?<20>;vsync-len =?<10>;vback-porch =?<15>;hsync-active =?<0>;vsync-active =?<0>;de-active =?<0>;pixelclk-active =?<0>;}; };-
其中前后肩和同步參數的總和對應于規格書中的 blanking;
-
clock-frequency 的計算公式:
通道數
輸出信號使用單MIPI 4通道,dsi,lanes設置為 4;
數據格式
數據為每個顏色8bit 24位色,所以dsi,format 設置為 MIPI_DSI_FMT_RGB888 ;
通道帶寬
MIPI 單線通道帶寬計算公式如下:
lane-rate = (clock-frequency?* 1000 *?bpp / lanes ) * 10 /9= ((148500 * 1000 * 24) / 9) * 10 / 9= 990 000 000rockchip,lane-rate 參數在缺省的情況下,內核驅動會自動計算。
初始命令
panel-init-sequence 需要填寫 MIPI 向 GM8775C 芯片下發的寄存器參數,根據屏幕時序參數和硬件連接情況,此處借助 GM8775C 配套的上位機軟件,在軟件界面中設置屏幕的參數,即可得到轉換好的實際寄存器設置參數。
上圖紅色框為我們設置的內容,其中 MIPI時鐘需要設置為 rockchip,lane-rate 的二分之一;綠色框內為轉換得到的寄存器參數列表。最終將其轉換為Rockchip 平臺的 panel-init-sequence 代碼如下:
panel-init-sequence = [29 00 02 27 AA29 00 02 48 0229 00 02 B6 2029 00 02 01 8029 00 02 02 3829 00 02 03 4729 00 02 04 8C29 00 02 05 0A29 00 02 06 8229 00 02 07 0029 00 02 08 1429 00 02 09 0A29 00 02 0A 0F29 00 02 0B 8229 00 02 0C 1229 00 02 0D 0129 00 02 0E 8029 00 02 0F 2029 00 02 10 2029 00 02 11 0329 00 02 12 1B29 00 02 13 6329 00 02 14 0129 00 02 15 2329 00 02 16 4029 00 02 17 0029 00 02 18 0129 00 02 19 2329 00 02 1A 4029 00 02 1B 0029 00 02 1E 4629 00 02 51 3029 00 02 1F 1029 00 02 2A 0105 78 01 1105 14 01 29];文章篇幅有限,完整的參數配置可查看IDO-EVB3568開發板Linux SDK 中的?kernel\arch\arm64\boot\dts\rockchip\ido-rk3568-evb3568-dual-lvds.dts?文件。
IDO-EVB3568開發板Linux SDK鏈接:
https://pan.baidu.com/s/1L3WECV_8q6B-a_PWr3bqvw提取碼:yms6
屏幕驅動效果
總結
以上是生活随笔為你收集整理的RK3568—基于GM8775C的MIPI转双通道LVDS屏幕调试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 鼠标右键弹出快捷菜单的实现
- 下一篇: 是否安装成功MAMP自测(Mac版本)