Firefly开源社区

12
发表新贴

HDMI 适配 5寸屏

41

积分

0

威望

0

贡献

技术小白

积分
41
发表于 2015-9-22 17:42:06     
HDMI 在5寸屏上显示超出区域了,求指点,怎么修改。


5寸屏800x480的尺寸。

版主在吗?求给个修改的方向吧。
回复

使用道具 举报

41

积分

0

威望

0

贡献

技术小白

积分
41
发表于 2015-9-23 14:04:59     
暴走的阿Sai 发表于 2015-9-23 12:49
这些参数是要按照实际的屏资料来修改的。没有通用的文档。不过可以参考其他的屏参来修改

timing 代表额意义都不懂,里面这么多项,..有参考也不会改...
回复

使用道具 举报

发表于 2015-9-23 10:22:19     
5寸的HDMI显示屏吗?
可以参考这个帖子:
http://developer.t-firefly.com/f ... =%B7%D6%B1%E6%C2%CA
暴走的创客!
回复

使用道具 举报

41

积分

0

威望

0

贡献

技术小白

积分
41
发表于 2015-9-23 11:17:45     
暴走的阿Sai 发表于 2015-9-23 10:22
5寸的HDMI显示屏吗?
可以参考这个帖子:
http://developer.t-firefly.com/forum.php?mod=viewthread&tid ...

timing 怎么修改,有文档吗?
回复

使用道具 举报

发表于 2015-9-23 12:49:59     
gqjjqg 发表于 2015-9-23 11:17
timing 怎么修改,有文档吗?

这些参数是要按照实际的屏资料来修改的。没有通用的文档。不过可以参考其他的屏参来修改
暴走的创客!
回复

使用道具 举报

265

积分

5

威望

6

贡献

实习版主

Rank: 7Rank: 7Rank: 7

积分
265

活跃会员热心会员突出贡献

发表于 2015-9-23 14:28:25     
gqjjqg 发表于 2015-9-23 14:04
timing 代表额意义都不懂,里面这么多项,..有参考也不会改...

SDK 的RKDOC目录看下那个调屏文档
回复

使用道具 举报

41

积分

0

威望

0

贡献

技术小白

积分
41
发表于 2015-9-23 17:08:48     
carlinluo 发表于 2015-9-23 14:28
SDK 的RKDOC目录看下那个调屏文档

有一定的帮助,但是还是搞不定
回复

使用道具 举报

265

积分

5

威望

6

贡献

实习版主

Rank: 7Rank: 7Rank: 7

积分
265

活跃会员热心会员突出贡献

发表于 2015-9-23 17:36:07     
pad 版本还是BOX,根据屏的规格书修改下lcd_xxx.dts看,或者去看下HDMI的驱动。
回复

使用道具 举报

41

积分

0

威望

0

贡献

技术小白

积分
41
发表于 2015-9-24 13:47:38     
carlinluo 发表于 2015-9-23 14:28
SDK 的RKDOC目录看下那个调屏文档

LCD的datasheet 根本没找到时序图。
文档也比较老旧了,对不上。。。。
回复

使用道具 举报

41

积分

0

威望

0

贡献

技术小白

积分
41
发表于 2015-9-25 10:22:33     
基本上算是改好了,不过改法也比较暴力,先简单记录一下,供大家参考一下:
屏幕 是微雪的 5inch HDMI LCD  800x480


记录一下修改的过程:
因为对系统的不了解走了很多的弯,先记录几个
首先 参考的是这个:http://developer.t-firefly.com/f ... &highlight=HDMI


/* HDMI default vide mode */
#define HDMI_VIDEO_DEFAULT_MODE                        HDMI_1280X720P_60HZ



这个模式,头文件定义了很多个,但是就是没有800x480的,改了几个也有效果,但是不能满足需求。放弃这个方法!




接下去参考这个:
http://developer.t-firefly.com/forum.php?mod=viewthread&tid=942&highlight=%B7%D6%B1%E6%C2%CA
虽然没说怎么改,但是提到一个重点:lcd-box.dtsi 修改这个文件。


对这个文件,个人觉得好像是配置LCDC的,也就是说和LCD屏其实应该无关(浪费我一天时间查这个屏的各种资料)。
于是我把timing0改成了:clock-frequency = <30000000>;
                hactive = <800>;
                vactive = <480>;
                hback-porch = <16>;
                hfront-porch = <210>;
                vback-porch = <10>;
                vfront-porch = <22>;
                hsync-len = <30>;
                vsync-len = <13>;
                hsync-active = <1>;
                vsync-active = <1>;
                de-active = <0>;
                pixelclk-active = <0>;
                swap-rb = <0>;
                swap-rg = <0>;
                swap-gb = <0>;

烧写启动之后,开机recovery 屏幕正常显示,出现了几行文字,接下去就启动就是黑屏加中间一条白色条纹。

经过多翻摸索,重新恢复默认的配置,只改hactive和vactive:
timing0: timing0 {
                                screen-type = <SCREEN_HDMI>;
                                out-face    = <OUT_P888>;
                                color-mode = <COLOR_YCBCR>;
                                clock-frequency = <74250000>;
                                hactive = <800>;
                                vactive = <500>;
                                hback-porch = <220>;
                                hfront-porch = <110>;
                                vback-porch = <20>;
                                vfront-porch = <5>;
                                hsync-len = <40>;
                                vsync-len = <5>;
                                hsync-active = <1>;
                                vsync-active = <1>;
                                de-active = <0>;
                                pixelclk-active = <0>;
                                swap-rb = <0>;
                                swap-rg = <0>;
                                swap-gb = <0>;
                             };


奇迹般的成功了,这个不是说和硬件配置有关吗?我随便改改也能正常显示?




IMG_20150925_091507.jpg

改完之后,屏幕竖屏旋转总是不能成功,于是,把系统也改了frameworks\base\services\core\java\com\android\server\wm\WindowManagerService.java
旋转控制在这里面:
if (mRotateOnBoot) {
            mRotation = Surface.ROTATION_0;
            rotation = Surface.ROTATION_90;
+        } else {
+                        rotation = Surface.ROTATION_90;
                }
改完就成上图这样了。


还存在的问题:
1. 横向少显示20个像素:800x480的仍然不能显示,但是800x500的可以显示了,问题在哪里仍然不知道。
2. dtsi不是配置硬件的吗?怎么我随便改都可以,难道只有hactive和vactive生效?

暂时先这样,记录一下。





回复

使用道具 举报

返回列表
12
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表