rk3288
RK3288平台下调屏参基本步骤
注:因为涉及到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=<MIPI_DSI_FMT_RGB666>;八位:dsi.format=<MIPI_DSI_FMT_RGB888>,lane-rate计算公式中的RGB与BIT值根据format参数得出;
二、通过时序图分析水平和垂直各个参数:
下图是行同步信号:HS 里面的864=16+32+800+16,我们可以看到在DE 为高电平时,HS 为低电平的时候就是有效的数据,即屏的水平像素为800。在HS 为高电平时,DE 是低电平,意思就是这个时候不需要显示数据,需要去消隐,就是hsync。在往后的32 个像素,就是屏真正的信号出来前的无效信号长度,因为如果我们直接出来,很可能会丢数据和出现杂波,多这32 个像素是为了防止这种情况,就是上面提到的HBP 参数,最后的16 像素,也是同理。所以一个完整的行信号是=hsync+hbp+hactive+hfp。
下图是场同步信号,其他的和行同步信号是一致,只不过这个里面在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手机助手连接一下。
相关阅读
为什么要做? 其实很简单,为了钱! 当一个APP积累了一定的用户量时,除了APP自身内容产生商业价值外,老板就会要求寻求更多能带来收入的
今天来讲一下如何提高Facebook的用户参与度这个问题。在facebook上衡量参与度的重要指标就是reach率。现在很多人反映在Facebook
【计算广告】在线分配算法之 —— HWM(High water mark
该算法是雅虎工程师提出的一个解决合约制广告或者说GD(担保式投放)投放系统在线分配问题的贪心算法,思路很直接,下面是本人对照其论文
Appium初级(1)----启动Appium的参数配置介绍
本文来源网络各个资料,适用还不懂Appium的小白人员,使用语言Python 1.Appium启动的参数介绍: deviceName:这个是手机的名字,一般都随
操作erdas的时候需要对操作步骤进行截图,但是发现原来在win7上一直无法使用的PrintScreen键并不能全屏截图 网上查了一大堆,大多说