LCD驱动调试中部分常见问题的分析及解决办法
LCD点不亮——无法正确完成初始化:
LCD点不亮问题的原因有很多,但出现这个问题后,首先应该判断LCD是否正确完成初始化。最简单的判断方法就是测量LCM的FPC上的电容两端电压。(具体的值可以和模组供应商沟通)
如果经过上一步,检测出没有正确完成初始化,接下来首先和模组、IC一起确认初始化代码是否有问题。 确认好代码以后还是点不亮,说明是模组无法进行初始化,而不是初始化出错。重新理一遍流程:上电->初始化。上电这个步骤一般不会有问题,如果没有遵循正确的上电时序和RESET的流程的话也比较好排查。 那么还能存在哪些问题呢?
在上电成功以后,BB会通过LCD串行总线发送LCD的初始化数据,如果这个环节出现问题,那肯定初始化不能成功。在这个过程中能出现问题的就只有SPI
的通讯控制这一块了,(通常LCD的通讯接口有CPU和串行总线接口等,手机中较常用的就是串行总线接口,串行总线接口又以SPI接口居多),其实造成
SPI通讯不符合LCD模组驱动芯片的要求的原因也是多种
多样的:
1、 虽然都是SPI接口,但是,不同的LCD模组,在控制信号的要求上往往都会有细小的不同,有时候,CPU的SPI接口甚至都无法产生LCD模组所要求的特定波形时序。有些LCD模组可能还会有特定的势能信号来控制SPI接口工作与否。
2、 多数LCD驱动芯片其实都是具有读取寄存器和ID号的功能的,但是很多模组在封装的时候往往没有吧芯片的SPI接口的SDO信号线引出来。导致无法通过读取寄存器和ID的方式来判断SPI总线上的通信协议是否正确。 那么,如果确定了是SPI通讯控制不满足要求的话,就可以通过修改SPI的读写控制来适配LCD模组IC的要求。 如果CPU所提供SPI接口实在没有办法配置到完全和LCD模组要求的时序波形相同,可以采用CPIO口模拟SPI信号的方式来初始化LCD。
最后,如果模组能够将SDO引出就尽量引出,不仅方便调试,而且可以很方便的做不同IC的LCD自适应的兼容。 初始化成功,LCD点不亮
有的时候LCD点不亮,通过上面讲的方法,测量LCM的FPC上的电容的电压确认初始化正常。即有时候初始化已经成功了,但是LCD还是没有被点亮。这个
时候就要仔细的对照LCD模组的规格书来检查了,是否是一些非常规的原因,例如串口和RGB数据接口相互影响或者别的什么原因。
见过别人讲的一个案例:某厂商的一款LCD驱动芯片,初始化成功了以后LCD还是点不亮,经查发现,在RGB接口上写入数据前,要通过串口对某一寄存器写
入特殊值,但实际上在初始化的代码中已经包含了对该寄存器写值,即使写入这一特殊值以后RGB数据口上仍然写入不了数据。最后发现,对暖气修改以后,不能
再写其它的寄存器,否则就会出现问题。当然这也是极个别的现象,不过当你在调试过程中遇到此类问题无法解决的时候,不妨在这个方向上进行检查。LCD图像错位
LCD显示在水平方向发生位移,或者在上面或底部有一条几个像素的彩色、白色或黑色条纹。一般来说,出现这种情况,都是因为初始化参数设置不对,和行同步或者场同步信号有关。
显示位置有位移或者错位,就检查LCD模组和CPU上的LCD控制器的行同步与场同步信号的宽度、前后延时、极性的匹配。最可能的就是回扫的前后延时时间不匹配。 另外,这种情况通常错位不会很多,如果出现错位了一半的图像之类的情况,通常就是别的原因造成的了。而
LCD驱动调试中部分常见问题的分析及解决办法
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)