当前位置: 代码迷 >> WinCE >> 请问LCD驱动有关问题-
  详细解决方案

请问LCD驱动有关问题-

热度:14   发布时间:2016-04-28 12:50:27.0
请教LCD驱动问题-----急!!!!
简介:
做一个2440上LCD的驱动
原来平台上用的LCD型号为:WXCAT35
现在由于出货问题换了一款替代的LCD,型号为:NMA35QV65
问题描述:
看这两款屏的资料发现,硬件引脚定义完全一样,但资料上都介绍需要加一个驱动ICHX8238 ,
该驱动IC与处理器通过SPI总线连接
但是硬件上并没有该驱动IC,也没连接SPI总线,
但是可以点亮原屏WXCAT35(一硬件高手说这类屏可以使用默认模式,不需要接SPI)
点不亮NMA35QV65,现象是背光亮,屏亮(全白),进入BOOT和CE系统没有图象!
请教:
1、在Kernel中的OAL层有对LCD的初始化配置InitDisplay()这个是我需要修改的部分
  在这里主要是对2440的5个LCD寄存器配置(LCDCON1----LCDCON5
  在s2440.h中对LCD的几个时序进行了初始化
  #define VBPD (15) //垂直同步信号后肩Vsync back-porch
#define VFPD (12) //垂直同步信号前肩Vsync front-porch
#define VSPW (3) //垂直同步信号脉宽Vsync pulse width

#define HBPD (44) //水平同步信号后肩Hsync back-porch
#define HFPD (30) //水平同步信号前肩Hsync front-porch
#define HSPW (20) //水平同步信号脉宽Hsync pulse width
  请问这几个值对屏的显示有作用吗?是不是只是对屏显示的图片的横竖偏移有影响?
2、在WXCAT35(已经被点亮的原屏)的datasheet中
  有个列表详细列出了DCLK、HSYNC、VSYNC等参数的典型值
  但是没被点亮的这款屏(NMA35QV65)的datasheet上不但没有这个列表
  从时序图上看,完全定义了另外的一些值,不知道怎么对应上这几个值
 
3、请问除了这几个信号外,我还需要注意到哪几个信号??
  公式:VCLK = HCLK / ((CLKVAL + 1) * 2) 
  其中VCLK、HCLK怎么查?作用是什么
  DCLK指的是什么?作用是什么
  还有PCLK是什么?作用是什么
  pclk = (HFPD+HOZVAL+HBPD+HSPW)*(VFPD+LINEVAL+VBPD+VSPW)*60
  这个公式又能说明什么呢?
  VCLK = DCLK/HOZVAL/LINEVAL
  HCLK = DCLK/LINEVAL
  这个公式是否正确?
  还有行列同步、de信号是指的什么?有什么作用呢???
  这里问的作用请高手用通俗的解释描述一下跟实际驱动程序的关系,小弟在此谢过啦!!
谢谢各位啦!!!

------解决方案--------------------
1、在Kernel中的OAL层有对LCD的初始化配置InitDisplay()这个是我需要修改的部分
有影响,不正确的话会显示不正常,包括你所说的横竖偏移
但是一般display driver里会重新初始化一下
2. 在WXCAT35(已经被点亮的原屏)的datasheet中 
你可以根据时序图和时序表格计算一下那几个值是多少


------解决方案--------------------
3、请问除了这几个信号外,我还需要注意到哪几个信号?? 
公式:VCLK = HCLK / ((CLKVAL + 1) * 2) 
其中VCLK、HCLK怎么查?作用是什么

VCLK是像素时钟 ,HCLK是cpu里的一个时钟(这个请参看cpu手册)

DCLK指的是什么?作用是什么 
还有PCLK是什么?作用是什么 

这两个应该都是指像素时钟,只是名称不一样?!

pclk = (HFPD+HOZVAL+HBPD+HSPW)*(VFPD+LINEVAL+VBPD+VSPW)*60 
这个公式又能说明什么呢?

就是计算你的像素时钟的公式

---------
HFPD
HOZVAL:320
HBPD
HSPW
---------
VFPD
LINEVAL:240
VBPD
VSPW
---------
60:指每秒显示60帧,一帧就是一个完整的图像(320*240*24bit)
---------

VCLK = DCLK/HOZVAL/LINEVAL 
HCLK = DCLK/LINEVAL 
这个公式是否正确?

这个等你看了cpu手册后就明白对不对了
 
还有行列同步、de信号是指的什么?有什么作用呢??? 

hsync,vsync,上面的hspw和vspw就是这个信号的宽度。
de是data enable
这些在cpu手册里应该都有图例可看
------解决方案--------------------
我大略看了一下ICHX8238 这颗ic

如果你不用spi来初始化,你的cpu的VCLK应该设置成6.5MHz的。

---------
以上仅供参考
------解决方案--------------------
1、这几个值,在我看到的屏中,都只是和屏显示的漂移情况有关。
2、DCLK在数据手册里有了,是6.5MHz(典型值),HSYNC、VSYNC可以计算出来的。
The VSYNC and HSYNC pulse generation depends on the configurations of both the HOZVAL field and the LINEVAL field in the LCDCON2/3 registers. The HOZVAL and INEVAL can be determined by the size of the LCD panel according to the following equations
这个你参考里面的时序图:HSYNC = DCLK / (320 + (31~80)), VSYNC = HSYNC / (240 + ( 3 + ( >2 ))).红色部分是根据数据手册得到的。
3、首先我得从新更正下我的说法。
VCLK应该是和DCLK同概念的;最基本的时钟信号,不用说了。
而HSYNC、VSYNC,确切的讲应该是行、场同步(行列同步这个说法不够准确);行时钟是用来控制换行显示的(320),场时钟是刷新一个画面(320*240)。
HCLK是根据你的时钟部分配置出来的,这个你可以不用配置,让它固定,通过配置clkval来得到VCLK即可。怎么得到HCLK,你可以通过改变clkval的值,测试出VCLK,能计算出你配置的HCLK是多少。
DE只有在DE模式下有用,这个信号你只需配置2440的LCD寄存器为DE模式即可,不用你控制。
 
  相关解决方案