基于S3C6410&WINCE6.0的LCD驱动详解

来源:互联网 发布:oracle数据库 高并发 编辑:程序博客网 时间:2024/05/22 17:44

      花了几天时间把6410的点屏代码研究了一下,这里分享出来供大家参考。

      先大致说下目前LCD的类型以及渠道。针对手持设备,如手机,PMP,MID,GPS,UMPC,相机等,大多采用的是TFT,LTPS(低温多晶硅屏),OLED等。其中以TFT屏用的最广泛,LTPS屏以其色彩鲜艳,视角广而闻名,目前也逐渐多起来。OLED显示效果是以上三者中最好的,能够达到全视角,而且在阳光照射下也能清晰的观看,但由于技术还不够成熟,价格一直居高不下,但是OLED是未来屏的主流趋势。现在很多价值上千元的手机都采用了OLED的屏,色彩鲜艳,拿在手上感觉就不一样。LTPS以统宝的屏最为典型,如统宝4.3寸,4.8寸的WVGA屏。大名鼎鼎的艾诺V3000就是采用的统宝4.3寸WVGA屏,效果远比TFT要好。另外,大名鼎鼎的诺基亚N97也采用了统宝的3.2寸屏。当然使用最广泛也是最泛滥的,就非TFT屏莫属了。一般将TFT屏分成日韩系,台系,以及大陆系三个级别,其质量基本上也是依次降低。日韩以三星,LG,夏普为典型,当然价格一直是居高不下。台系以友达,奇美,汉彩,群创为代表,大陆的如比亚迪,国显,京东方等。在中国中低端市场,基本上都采用奇美的IC,玻璃拼成的模组,因此虽然很多虽然不同的厂家,但屏的驱动不用变。但是如果驱动IC变了,驱动也要稍加调整。下面就以三星的6410处理器为例讲述如何调整这些参数。

      液晶屏的硬件接口如下图所示:

    上面是40PIN的LCD的电路接口,该接口基本上兼容了市面上大多数的4.3,5.0寸的屏。4.3的屏如群创,信利,比亚迪,国显,高显,奇美,汉彩等;5.0寸的屏如奇美,比亚迪,国显,高显,汉彩等,都采用上面的接口。虽然有些屏用的driver IC不尽相同,但是都是八九不离十,要知道在中国很多IC本身就是抄来抄去的。

      针对S3C6410的LCD驱动,首先,在bootloader中,会配置LCD的一些寄存器参数,配置overlay,window等寄存器参数,在进入系统后,会调用LCD驱动,驱动中又会重新刷一片LCD的寄存器,最终进入系统。这里主要说明关于LCD本身的一些参数,代码如下:

 

 

程序中uiWidth,uiHeight,VBPD,VFPD,VSPW,HBPD,HFPD,HSPW即为相关屏的参数,上面的参数是国显5寸屏的参数。

uiWidth:液晶屏的行点数,即扫描一行需要在屏上绘制多少个点。

uiHeight:液晶屏的列点数。

VBPD:列开始等待周期,即LCD显示每帧开始时有VBPD个周期没有图像输出。

VFPD:列结束等待周期,即LCD显示每帧结束时有VFPD个周期没有图像输出。

VSPW:场同步脉宽,指Vsync为低电平时的行脉冲周期数目。

HBPD:行开始等待周期,即LCD显示每行开始时有HBPD个周期没有图像输出。

HFPD:行结束等待周期,即LCD显示每行结束时有HFPD个周期没有图像输出。

HSPW:行同步脉宽,指Hsync为低电平时占用的DCLK的周期。

以上VBPD,VFPD,VSPW是为了场同步,HBPD,HFPD,HSPW是为了行同步,在硬件接口中有Vsync和Hsync两个PIN脚,就是帧同步信号和行同步信号。

Vsync:帧同步信号,整幅图像输出后会产生一个下降沿,即帧同步的标志。

Hsync:行同步信号,扫描完一行后会产生一个下降沿,即行同步的标志。

国显屏的时序图如下:

 

 

 

 

从上面图可以看出,

TWH=HSPW,

THS-TWH=HBPD,

THA=uiWidth,

TH-THA-THS=HFPD,

TWV=VSPW,

TVS-TWV=VBPD,

TVA=uiHeight,

TV-TVS-TVA=VFPD.

再参看下面的表,即可计算出相应的值。

将值填入上面的代码,到目前为止,离成功已经不远了。

 

 

最后,还有屏的帧频没有设置。国显屏规格书的建议值是DCLK=33.26M,这里,通过S3C6410手册上提供的公式,

RGB_VCLK (Hz) =HCLK/ (CLKVAL+1) where CLKVAL >= 1;

 

Frame Rate = 1/ [ { (VSPW+1) + (VBPD+1) + (LIINEVAL + 1) + (VFPD+1) } x {(HSPW+1) + (HBPD +1)

                              + (HFPD+1) + (HOZVAL + 1) } x { ( CLKVAL+1 ) / ( Frequency of Clock source ) } ]

 

这里RGB_VCLK=33.26M,HCLK=133000000,可以计算出CLKVAL=3.我们将这个值填入6410的寄存器,代码如下:

到此为止,屏已经正常点亮了。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 孩子性格太内向怎么办 孩子脾气暴躁易怒怎么办 小孩有点叛逆应怎么办 小孩太叛逆怎么办关住 对不听话的孩子怎么办 孩子在学校不听话怎么办 孩子叛逆不回家怎么办 孩子厌学怎么办青春期叛逆 孩子青春期叛逆家长怎么办 孩子老哭不听话怎么办 8岁宝宝不听话怎么办 儿孑不听话叛逆怎么办 孩子太小不听话怎么办 得了只有很紧张怎么办 内向的妈妈孩子怎么办 对孩子没有耐心怎么办 孩子心理有问题怎么办 孩子心里有问题怎么办 父母打架我该怎么办 爸爸妈妈要离婚怎么办 父母吵架怎么办动手了 父母因为钱吵架怎么办 父母吵架孩子该怎么办 特别倔强的孩子怎么办 孩子胆小不自信怎么办 孩子不自信家长怎么办 二年级孩子厌学怎么办 儿童注意力不集中怎么办 小学数学成绩差怎么办 孩子英语成绩差怎么办 小学成绩差初中怎么办 小孩一年级成绩不好怎么办 孩子的记忆力差怎么办 普法考试没有考怎么办 小孩迷上玩手机怎么办 营养师证取消了怎么办 变频器输出缺相怎么办 体育中考来月经怎么办 不动精子率低怎么办 精子向前运动低怎么办 精子运动力低怎么办