前言
本文主要介绍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中的参数。