zoukankan      html  css  js  c++  java
  • S3C2440_LCD控制器

    1、LCD控制器主要有两方面的功能:

    1)从framebuffer中取出某个像素的数据;

    2)配合其他信号,一起将这个数据发送给LCD

    不管是2440,还是其他型号的ARM芯片。它们的LCD控制器的功能都是一样的,只不过存储器的操作稍有区别。

     LCDDMA:会从内存中把数据取出来,发送给LCD。

    DMA:不需要cpu的参与,只需要把数据填好,它就会自动的取数据,发送给LCD。

    怎样去设置极性、时序呢?

    需要设置REGBANK,通过这些寄存器控制LCD控制器,让其发出合适的时序。

    2、

    使用8bpp时,会涉及到一个调色板。

    为什么会涉及一个调色板的概念。

    可以在framebuffer中,每个像素使用8bit来表示。

    问:8bit的数据怎样得到16bit的数据,中间肯定得引入一个东西,这个东西就是调色板。

    调色板中有多少项,8bit就得有2的8次方项,即256项。

    这样,LCD控制器怎样去显示呢?

    当设置为8bit时,LCD控制器会从framebuffer中得到8位的数据,这8位的数据不是直接发给lcd的,它是使用这8位的数据在这个调色板中作为索引,取出16位数据,再把这16位数据发给lcd。

    8bpp:在framebuffer中存的是伪彩色

    16bpp/24bpp:在framebuffer中存的是真彩色。

    调色板就是一块特殊的内存,也许它就是放在lcd控制器里面,以后使用8bpp时,首先设置调色板。

    如果将lcd设置成一种颜色,怎么办?

    对于16bpp/24bpp这两种真彩色,只能填充framebuffer中的数据,把每个像素对应的值都填为同一种值。

    对于8bpp,可以设置framebuffer,也可以设置调色板。比如说,把framebuffer中每个像素的值都设置为同一种值,也可以把调色板中的这256项,全部设置为同一种颜色。

    其中,对于2440来说,还提供另一种办法,叫做临时调色板:

    只要使能了TPALEN,对于lcd控制器来说,无论framebuffer中的数据是8bpp,16bpp还是24bpp,它都不管。它都会从临时调色板中取出数据,发送给lcd。因此,只要设置一个寄存器,就可以让整个lcd显示为同一种颜色,这是2440提供的一种特性。

    3、LCD控制器的时序图

     根据外接的lcd,来设置上图中的各个参数。

  • 相关阅读:
    计算机漏洞安全相关的概念POC 、EXP 、VUL 、CVE 、0DAY
    开始使用kali的一些小问题:菜鸟瞎折腾
    nmap参数详解(罗列一下)
    安装kali之后必做的几件小事
    Debian下virtualBox增强功能出错
    ArcGIS Engine 基础功能(一)
    sublime 配置简单的python环境
    解决 ‘Could not fetch URL https://pypi.python.org’的问题
    golang基础语法学习
    大象盒子技术栈
  • 原文地址:https://www.cnblogs.com/-glb/p/11332978.html
Copyright © 2011-2022 走看看