S3C2410 LCD 驱动程序移植及GUI程序编写
2012-10-14
刘利国
标签: S3C2410

c)寄存器的设置,这些也不困难。下面就让我们一起一口一口的将 S3C2410 的LCD寄存器统统吃掉!首先介绍一下我这块屏,这是日立的一块 TFT 屏,大小为 640X240,可以支持到 16位色。与驱动有关的一张表

图二 LCD屏资料

有了这些信息,让我们看一下 LCD寄存器的设置。

LCD控制器1

  • LINECNT---这是一个只读的数据,我们当然没有必要理它
  • CLKVAL--- 这可是一个很有用的参数,其实没必要管它后面的计算,我们可以通过实际的测试来得出一个有效的值,对于320x240 的屏一般设置为 7 就可以了,而对于 640x480 的屏,该值可以小一点。对于后面的计算公式及注释(STN: CLKVAL >= 2,TFT: CLKVAL >= 0),我不知道该如何去理解,因为在实际的应用中我点了一块 640X240 的CSTN 屏,当我的 CLKVAL = 1 时才达到了一个最佳的效果,这似乎与说明书相违背,我也解释不清为什么?!
  • PNRMODE--- 这个应该不用多做解释,大家一看都明白了,对于 TFT 屏,只能设置成 11,而对于 CSTN 屏,可能需要根据实际屏的信息去设置,我遇到的屏都设置成 10,即 8bit 单扫描模式。对于4bit单扫描、4bit 双扫描、8bit 单扫描的说明在 s3c2410 的手册中有详细的介绍,大家可以去参考一下。
  • BPPMODE--- 这个参数更不用多说了吧,就是设置屏的颜色位数喽。
  • 这些参数的设置都很简单,我给出我这块屏的定义:

    lcdcon1: LCD1_BPP_16T | LCD1_PNR_TFT | LCD1_CLKVAL(1),

  • 同时,我也给出一块 CSTN 屏的寄存器参数信息

    lcdcon1: LCD1_BPP_12S | LCD1_PNR_8S | LCD1_CLKVAL(9),

LCD控制器2

对于 TFT 屏必须要填,至于什么意思怎么翻译,相信大家都比我的水平强,自己翻译吧。我只说明从 LCD中如何将这个值“扣”出来。

很容易,看一下图二 LCD屏资料,对比一下得出如下信息:

  • LCD2_VBPD:

    Vertical back porch典型值为 7

  • LCD2_VFPD:

    Vertical front porch典型值为 4

  • LCD2_VSPW:

    Vsync Valid width典型值为 2

  • 关于 LINEVAL 在程序的后面将会提到,此处不必理会。
  • 经过分析,我们知道了如何设置 LCD2:

    lcdcon2: LCD2_VBPD(7) | LCD2_VFPD(4) | LCD2_VSPW(2),

  • 对于 STN(CSTN)屏,这个寄存器的设置最简单,将 VBPD、VFPD、VSPW 都设置成 Zero 就可以了。即

    lcdcon2: LCD2_VBPD(0) | LCD2_VFPD(0) | LCD2_VSPW(0),

LCD控制器3

对于 TFT 屏,很容易将 HBPD 和 HFPD 找出来,如下

  • LCD3_HBPD:

    Horizontal back porch典型值为 37

  • LCD3_HFBD:

    Horizontal back porch典型值为 32

  • 对于 HOZVAL 同样会在后面提到,此处暂时不管
  • 经过分析,我们知道了如何设置 LCD3:

    lcdcon3: LCD3_HBPD(37) | LCD3_HFPD(32) ,

  • 对于(STN)CSTN屏,我没有很好的理解 WDLY 和 LINEBLANK 的真正涵义,通过改变这两个参数的值,我也没有得到特别明显的差异,我一般设置为:

    lcdcon3: LCD3_WDLY_16 | 0x10 ,

    共 6 页   上一页123456下一页
可能会用到的工具/仪表
本站简介 | 意见建议 | 免责声明 | 版权声明 | 联系我们
CopyRight@2024-2039 嵌入式资源网
蜀ICP备2021025729号