前些天在展讯8825上调试一个ili9807的屏,屏幕一直显示为白屏,这就非常麻烦了,因为白屏意味着基本的显示也没有,
调试屏的时候,即使是显示花屏或者任何的乱彩色线条,甚至是简单的几条线,也算是成功了一小部分,能显示数据,
意味着基本的数据链路是联通的。
开始是从屏的连接器上找问题,从硬件上测量FPC是正常连接的,简单的就是测量屏与主板的各个引脚是连接通的,
各引脚上的电压是正常的,各引脚是否短路,经过长时间的测量和ic原厂的工程师帮助下,硬件在FPC上飞线,
屏的FPC终于是正常联通了!这立马让我可以正常的读到了屏的id,但是屏上依然是白屏......囧!
经过测量引脚上数据线输出的波形,发现也是正常的,屏的寄存器也是貌似正常的写入了指令,但是屏就是无法正
常的初始化,原因大致上找到了,原来是11,29寄存器写不成功!
屏白屏的原因一般是以下几个原因:
1,屏本身是坏的,液晶无法正常的翻转,如果无法正常在原厂的制具上点亮,那么屏坏的可能性就非常的大了!
2,平台没有向屏上发送数据,可以检测主板上的数据脚输出的波形,看是否正常,看屏的数据线是否波形也正常,
检查基本的通信协议,看是不是平台发送的数据不满足显示条件。
注:
这个也可以通过简单的抓取framebuffer的buffer内容,看平台是否正常发送数据!下面简单的以展讯平台举例:
#gsnap /data/fb.png /dev/graphics/fb0
$adb pull /data/fb.png
其他平台的截图方法可参考以下文档:
1,http://www.cnblogs.com/Amandaliu/archive/2012/01/04/2311670.html
2,http://wuquan-1230.blog.163.com/blog/static/29811153201282873020129/
3,http://www.crifan.com/the_frame_buffer_embedded_linux_screenshot_-_framebuffer_screenshot_in_embedded_linux/
3 仔细检查屏的初始化代码,看是否因为疏忽大意造成初始化序列没有正常写入,这个是最基本的,一定要仔细检查,
我就是因为没有仔细检查初始化代码,导致屏代码无法正常从Page 6上切到Page 0,此时,你写入11,29寄存器,
也无法正常的初始化屏,造成显示白屏!