注:因为涉及到lvds屏,mipi屏等众多类型不一的屏参调试,所以本文只记录基本调屏的一般步骤,不拿具体型号屏作说明。
调屏时一般板子的主控芯片为RK3288。
水平分辨率:hactive 垂直分辨率:vactive
水平前尖:hfront-porch(HFP) 垂直前尖:vfront-porch(VFP)
水平后尖:hback-porch(HBP) 垂直后尖:vback-porch(VBP)
水平消隐信号:hsync-len(HS) 垂直消隐信号:vsync-len(VS)
1.lane-rate= clk(时钟频率) * RGB(3) * BIT(6或8) / lane_num ,lane_num表示差分时钟通道数,具体数值要根据实际情况修改。注:以上公式的值计算出来后,rk3288里面需要*1.25,因为配置会比实际输出会低一点
2..clock-frequency=(水平分辨率+HS+HBP+HFP)(垂直分辨率+VS+VBP=VFP)*fps(帧频率);
3.dsi,format表示RGB三原色用多少位表示,如六位:dsi.format=
下图是场同步信号,其他的和行同步信号是一致,只不过这个里面在DE 为高电平时里面就是1280 个行同步信号。可能有点绕口,但是我们一定要理解,以这个800x1280 的屏为例,就是说屏幕上有800x1280 的dot,如果一个点一个点的在屏幕上显示,当水平显示800 个dot 后,就会有一个行同步信号,也就是800x1,然后转到第二行继续显示800 个然后出一个行同步信号,就是800x2,以此类推一直到800x1280,这个时候就会出一个场信号,告诉屏我一帧的画面已经画完了,现在要开始下一帧了。
1.先查看屏的规格说明书,确认屏的类型以及屏的具体型号,这很重要,确定之后,才能确定需要修改那个dts文件;
2.把全部代码编译一遍,使用AndroidTools工具将所有img文件下载到板子上,看能否发现ADB设备,能发现ADB设备表示代码可以跑起来;
3.根据自己需要使用到的dts文件,修改编译规则将自己修改的dts文件编译进去;一般是修改代码根目录下的.sh脚本文件 编译一般也是需要看.sh文件看怎么编译的;
编译注意事项:
配置脚本环境:source buile/envsetup.sh
launch 选择 rk3288-userdebug
打包:
./autobuild.sh kernel 只编译内核其他局部编译参照这个命令(可通过vi查看autobuild.sh文件里面的具体内容)打包固件 ./autobuild.sh image
也可先执行:
source build/envsetup.sh
lunch rk3288-userdebug
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
再执行./mkimage
4.修改dts文件,在autobuild.sh文件中修改编译规则,根据修改的dts文件编译相应的镜像文件
屏参先按规格说明书给出的标准参数填,如下图所示:
如果标准参数的点不亮,再尝试最大和最小,如果都点不亮,则需要慢慢修改参数调试;
CLK如果不准确 可以按照20MHZ增大或减小的逻辑调,如原来是150MHZ,可减小或增大20MHXZ,相应的,lane-rate值也要根据公式做出相应的改变,注意,如果一直都点不亮,可查看屏幕排线有没有接好,或者可能是硬件部分有问题。
4.dts文件修改完毕后,编译内核下载kernel.img和resource.img镜像文件。
小技巧:
1.如何进入maskrom模式:复位键与开机键,再上电,如果进入ADB模式但是进不去loader模式(maskrom模式下烧固件记得烧loader),在cmd窗口下尝试adbreboot loader进入,看能否进入,不能进尝试用360手机助手连接一下。