8056|33

81

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

请教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上不但没有这个列表
   从时序图上看,完全定义了另外的一些值,不知道怎么对应上这几个值
   D:\a.bmp
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,一般的RGB 接口的屏,不用SPI 也可以点亮,但是必须将SPI 的4个口要拉高,NC 是不行的,基本上是不亮的,既是白屏!     所以你可以先考虑想将SPI 的几个IO 口拉高,试试! 2,如果第一点还是没有显示,那么你的屏就是另外一种,必须进行初始化的屏,就跟我的一款屏一样。必须进行初始化!在裸奔的时候很好控制,不需要标准的SPI 口,只用GPIO 进行模拟即可! 但如在OAL 中进行初始化的话,我还在研究,还在请教前辈。有空可以看看我的提问! http://topic.eeworld.net/u/20091119/09/16541c7e-7d15-41d6-aa11-6e6c6b22fbc1.html?seed=830235497&r=61486434#r_61486434  详情 回复 发表于 2009-11-27 17:28
点赞 关注

回复
举报

80

帖子

0

TA的资源

一粒金砂(初级)

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

 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
感谢楼上
希望得到更多的回复
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

4
 
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手册里应该都有图例可看
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

5
 
我大略看了一下ICHX8238 这颗ic

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

---------
以上仅供参考
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

6
 
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模式即可,不用你控制。
   
   至于VBPD、VFPD、VSPW、HBPD。。。。这几个,你根据数据手册可以看的出来,HBPD、HFPD、HSPW三个的和在31~80,VBPD、VFPD、VSPW的和大于5(3+2)。
   
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

7
 


学习。。。。
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

8
 
不同的屏需要的环境不一样,
把时钟和行场信号的设置为典型值.手册没有提供,你可以从时序图上算出。
所有信号时序都能像时序图一样,肯定能工作(坏的不算)。
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

9
 
只要确定了行频,就可以推算出点时钟及其他参数,只要行场同步对了,图像肯定可以出来,只需微调位置就可以了。
除了典型值,还有一些经验值,只要在手册给的范围内就可以了,并不一定要非常精确!
 
 
 

回复

52

帖子

0

TA的资源

一粒金砂(初级)

10
 
InitDisplay()
里面的代码是图形控制器的驱动,而图形控制器的输出信号是直接控制LCD(玻璃)用的,输入信号是在CPU这边的。
问题1中,设置的就是控制器到LCD的行场扫描信号用的。

问题3中。
那些clock是控制器和LCD之间用的。就是时钟和扫描信号,能不能显示就靠这几各clock。
前面叫你对时序,也是要你量这几各信号是不是和时序图提供的一直。

PS:
有时候,图形控制器允许的输出范围和玻璃能够正常工作的输入范围没有交集,此时,这两个东西合在一起肯定不会工作。
如,控制器最大允许一行输出1000个CLOCK,而玻璃一行接收的最少的clock数量是1500,那么这两个东西不能一起使用
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

11
 
写驱动一定要了解硬件啊和规则啊
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

12
 
引用 8 楼 xilidecai 的回复:
只要确定了行频,就可以推算出点时钟及其他参数,只要行场同步对了,图像肯定可以出来,只需微调位置就可以了。
除了典型值,还有一些经验值,只要在手册给的范围内就可以了,并不一定要非常精确!


深有体会!
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

13
 
驱动很火啊。。呵
 
 
 

回复

96

帖子

0

TA的资源

一粒金砂(初级)

14
 
这两个屏的DCLK典型值都是一个是6.4一个是6.5,觉得CLK这部分应该没问题了
但是现在的问题是
已经点亮的那个屏(WXCAT35)有个表显示的给出了
HFPD 、HOZVAL:320 、HBPD、HSPW
---------
VFPD 、LINEVAL:240、VBPD、VSPW 这些值

而没有点亮的屏给出的时序图不知道怎么查出这些值
另外给出了一个表,也不知道是什么意思:
PARAMETER           Symbol  min     typ      max        unit
DOTCLK Frequency           fDOTCLK        -       6.5      10          MHz
DOTCLK Period              tDOTCLK        100     154       -          ns
Vertical sync setup Time   tvsys          20       -        -          ns
vertical sync hold  time   tvsyh          20       -        -          ns
phase difference of sync
signal falling edge         thv            1       -        240        tDOTCLK
DOTCLK Low Period           tClk           50      -        -          ns
DOTCLK high period          tCKH           50      -        -          ns
DATA Setup time             tds            12      -        -          ns
DATA hold  time             tdh            12      -        -          ns
Reset pulse width           tRES           1       -        -          us
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

15
 
PARAMETER                 Symbol         min     typ      max        unit
DOTCLK Frequency          fDOTCLK          -     6.5       10         MHz
DOTCLK Period              tDOTCLK        100    154       -          ns
Vertical sync setup Time  tvsys           20      -        -          ns
vertical sync hold  time  tvsyh           20      -        -          ns
phase difference of sync
signal falling edge        thv            1       -        240        tDOTCLK
DOTCLK Low Period          tClk           50      -        -          ns
DOTCLK high period          tCKH          50      -        -          ns
DATA Setup time            tds            12      -        -          ns
DATA hold  time            tdh            12      -        -          ns
Reset pulse width          tRES           1       -        -          us
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

16
 
引用 14 楼 wangxin_801115 的回复:
PARAMETER? ? ? ? ? ? ? ? Symbol? ? ? ? min? ? typ? ? ? max? ? ? ? unit
DOTCLK Frequency? ? ? ? ? fDOTCLK? ? ? ? ? -? ? 6.5? ? ? 10? ? ? ? MHz
DOTCLK Period? ? ? ? ? ? ? tDOTCLK? ? ? ? 100? ? 154? ? ? -? ? ? ? ? ns
Vertical sync setup Time? tvsys? ? ? ? ? 20? ? ? -? ? ? ? -? ? ? ? ? ns
vertical sync hold? time? tvsyh? ? ? ? ? 20? ? ? -? ? ? ? -? ? ? ? ? ns
phase difference of sync
signal falling edge? ? ? ? thv? ? ? ? ? ? 1? ? ? -? ? ? ? 240? ? ? ? tDOTCLK
DOTCLK Low Period? ? ? ? ? tClk? ? ? ? ? 50? ? ? -? ? ? ? -? ? ? ? ? ns
DOTCLK high period? ? ? ? ? tCKH? ? ? ? ? 50? ? ? -? ? ? ? -? ? ? ? ? ns
DATA Setup time? ? ? ? ? ? tds? ? ? ? ? ? 12? ? ? -? ? ? ? -? ? ? ? ? ns
DATA hold? time? ? ? ? ? ? tdh? ? ? ? ? ? 12? ? ? -? ? ? ? -? ? ? ? ? ns
Reset pulse width? ? ? ? ? tRES? ? ? ? ? 1? ? ? -? ? ? ? -? ? ? ? ? us


dotclock就是扫描用的clock.典型值6.5MHZ,不可以超过10MHZ
下面几个没什么意义,基本上不用看.
应该有以下信息(每项都包括min,typ,max):
1、每行点数
2、行可显示区域
3、场行熟

上面这三个东西是核心,而与上面这三个东西联系最紧密的是DE信号。
所以你要看看DE,VSCLOCK,HSCLOCK,CLOCK 四个信号的时序是否正确(正确不仅仅指性质正确,还指数值上在允许范围内)。
  
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

17
 
to gelu1040:
   thank u!

s2440LCD->rLCDCON1   =  (CLKVAL_TFT   <<  8) |    // 计算VCLK = 7mhz
                                        (0   <<  7) |    //0 : Each Frame
                                        (3   <<  5) |    // TFT LCD Pannel
                                        (12  <<  1) |    //16bpp Mode
                                        (0   <<  0) ;    //Disable LCD Output
                                      /*我觉得LCDCON1的配置应该没问题*/
s2440LCD->rLCDCON2   =  (VBPD << 24) |   // VBPD :   15
                        (LINEVAL_TFT << 14) |   // Virtical Size : 320 - 1                                       (VFPD  <<  6) |   // VFPD :   12
                              (VSPW  <<  0) ;   // VSPW :   3
s2440LCD->rLCDCON3   =  (HBPD << 19) |   // HBPD : 44
                        (HOZVAL_TFT  <<  8) |   // HOZVAL_TFT    : 240 - 1
                        (HFPD        <<  0) ;   // HFPD   : 30  
s2440LCD->rLCDCON4   =  (MVAL <<  8) |   // MVAL: 13
                               (HSPW <<  0) ;   // HSPW: 20
               /*这3个寄存器就是添上VBPD、VFPD、VSPW、HBPD、HFPD、HSPW的值的*/
               /*这两个屏的时序参数不一样,这几个值肯定不一样了*/
               /*可以正常显示的屏:WXCAT35 的资料中已经有个列表把这几个值列出来了*/
               /*但是我不知道在NMA35QV65 这个屏的资料中怎么查到这几个参数*/

您说的:
1、每行点数
2、行可显示区域
3、场行熟
这个对应到程序中是哪几个参数啊 ???
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

18
 
wo lai xuexi yixia
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

19
 
首先在bootloader上点亮即可。
OAL不用理会先。

 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

20
 
D:\b.bmp
TO gelu1040:
    请问从这幅图上怎么看VBPD、VFPD、VSPW、HBPD、HFPD、HSPW的值呢?
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表