前言
本文主要介紹GM8775C調試單路LVDS屏幕的方法和主要修改位置。
我司基于RK3568開發的工控主板,四核A55,2.0G 主頻,支持高達8GB高速LPDDR4,1T算力NPU ,4K H.265硬解碼,4K?HDMI2.0顯示輸出,支持雙通道LVDS/eDP/兩路MIPI?DSI?等多種顯示接口,支持3屏異顯。板載2路千兆以太網,雙頻WIFI+藍牙,支持5G或4G通信,支持2路USB3.0和7路USB2.0/SATA3.0,5路串口(TTL/RS232/RS485),2路CAN總線。
支持Android11/Debian10/Ubuntu20/Buildroot/麒麟OS/開源鴻蒙等多種操作系統。
開發板規格書:IDO-EVB3568-V1 產品手冊
LVDS屏幕參數
以EV101WXM-N10型號屏幕為例,從規格書中,我們可以確認到的主要參數如下:
基本特性
從以上特性說明可知,此屏為單lvds,8位色。
屏幕時序
從屏幕時序中可知,此屏幕的分辨率為1280(H)×800(V),并且能夠得到詳細的前后肩以及標準時鐘頻率等參數。
接口定義
通過引腳功能定義表,確認屏幕的電壓,并且可以依據此表來調整屏幕與主板轉接線的線序。
RK3568 MIPIDSI0 TX顯示接口
EVB3568 開發板硬件上使用MIPI_DSI_TX0 通道與 GM8775C 芯片連接,對外提供雙LVDS插針接口,由于本次調試的屏幕為單LVDS,所以在硬件連接上只需要將屏幕排線接于下圖藍色框內的第一路LVDS0接口即可。
內核修改
設備樹配置
設備樹詳細參數可查看雙LVDS屏幕調試文章的說明,此處不再重復說明。根據此屏幕的參數,我們需要修改dsi0_timing0中的時鐘頻率前后肩和同步等參數如下
disp_timings0: display-timings { native-mode = <&dsi0_timing0>; dsi0_timing0: timing0 { clock-frequency = <71000000>; hactive = <1280>; vactive = <800>; hfront-porch = <48>; hsync-len = <32>; hback-porch = <80>; vfront-porch = <3>; vsync-len = <6>; vback-porch = <14>; hsync-active = <0>; vsync-active = <0>; de-active = <0>; pixelclk-active = <0>; }; };
配置初始代碼
使用GM8775C上位機軟件設置屏幕參數后,獲得MIPI初始化代碼。
軟件獲取地址
鏈接:https://pan.baidu.com/s/1BaPoC8SV38uSNsykGluu8A?pwd=1234
提取碼:1234
分別設置以上框選中的內容,其中MIPI配置的MIPI時鐘可以通過計算獲取,也可以通過配置好timings時序后,將編譯的內核文件下載至開發板中,從uboot的打印信息中獲取MIPI的時鐘,如下所示:
設置完參數后,點擊“創建寄存器表”即可獲得初始化代碼參數,將這些參數轉換為RK平臺的初始化代碼格式填寫至panel-init-sequence中,如下:
panel-init-sequence = [ 29 00 02 27 AA 29 00 02 48 02 29 00 02 B6 20 29 00 02 01 00 29 00 02 02 20 29 00 02 03 35 29 00 02 04 30 29 00 02 05 20 29 00 02 06 50 29 00 02 07 00 29 00 02 08 03 29 00 02 09 06 29 00 02 0A 0E 29 00 02 0B 82 29 00 02 0C 12 29 00 02 0D 01 29 00 02 0E 80 29 00 02 0F 20 29 00 02 10 20 29 00 02 11 03 29 00 02 12 1B 29 00 02 13 03 29 00 02 14 01 29 00 02 15 23 29 00 02 16 40 29 00 02 17 00 29 00 02 18 01 29 00 02 19 23 29 00 02 1A 40 29 00 02 1B 00 29 00 02 1E 46 29 00 02 51 30 29 00 02 1F 10 29 00 02 2A 01 05 78 01 11 05 1E 01 29 ];
屏幕顯示效果
調試注意事項
如果LVDS屏幕為6bit或JEIDA屏幕,則需要根據屏幕參數,修改LINK0中的參數。