1.8.2_S3C2440_LCD控制器_P

LCD控制器主要有两个功能,第一是从内存中取出某个像素的数据,第二,配合其他信号把这个数据发给LCD,怎么配合其他信号发送数据则需要阅读LCD的芯片手册,知道LCD的时序要求,设置LCD控制器。

实际上,不管是2440或其他型号的ARM芯片,他们的功能都是一样的,只是控制器略有差异。简单说,就分为两个。

  1. 取数据:从FrameBuffer中将数据取出来,需要先把FrameBuffer的地址告诉LCD控制器,还需要将BPP,分辨率告诉LCD控制器。
  2. 发数据:把时序告诉LCD控制器,设置引脚的极性(某些LCD是在时钟的下降沿取数据,某些是在上升沿;某些行同步信号HSYNC是在低电平有效,某些是在高电平有效,这些都需要阅读LCD的芯片手册并告诉LCD控制器)。

阅读2440的芯片手册第15章LCD Controller,可以看到2440支持两种类型的LCD,分别是TFT LCD和STN LCD,其中经常使用的是TFT LCD,STN LCD暂时不管。

下图是2440 LCD控制器的结构图。
在这里插入图片描述
其中,LCDCDMA会从内存中将LCD像素数据取出来,通过VD引脚发到LCD控制器中,LCD控制器会将这些数据配合其他信号发给LCD。LCDCDMA是DMA,只需要将数据填好,不需要CPU的参与就可以将数据发给LCD。

那么,怎么设置其他信号的时序呢?通过设置REGBANK来控制LCD控制器使其发出合适的时序即可。

下图是24BPP时每个像素点在内存中的位置,BSWP=0,HWSWP=0,BPP24BL=0时,FrameBuffer的低24位放第一个像素的数据,高8位不做处理;BSWP=0,HWSWP=0,BPP24BL=1时,FrameBuffer的高24位放第一个像素的数据,低8位不做处理。
在这里插入图片描述
在这里插入图片描述
下图是使用16BPP时的数据排列方式,当BSWP=0,HWSWP=0时,第一个像素的数据排列在高16位,第二个像素的数据排列在低16位;当BSWP=0,HWSWP=1时,第一个像素的数据排列在低16位,第二个像素的数据排列在高16位;
在这里插入图片描述
另外,16BPP的数据有两种格式,一种是565,即R:G:B = 5bit : 6bit :5bit,共16bit;还有一种是555I,其中I表示的是强度,具体含义不清楚。使用565格式后,未使用的VD引脚可以当做GPIO使用。
在这里插入图片描述
下图是使用8PP时的数据排列格式,使用8BPP时会涉及到一个调色板,后面再详细说明。
在这里插入图片描述
下图是TFT LCD的时序图,之后根据外接的的LCD手册来设计这些值
在这里插入图片描述
还有LCD控制器的相关寄存器,LCDCON1的CLKVAL设置LCD的像素时钟是多少,PNRMODE设置外接的是TFT LCD还是STN LCD,BPPMODE设置是多少BPP,ENVID是LCD控制器的总开关。
在这里插入图片描述
LCDCON2主要设置垂直方向的时间参数。
在这里插入图片描述
LCDCON3主要设置水平方向的时间参数。
在这里插入图片描述LCDCON4,HSPW设置水平的方向同步信号脉宽。
在这里插入图片描述LCDCON5,设置引脚的极性和读取水平和垂直方向上的同步信号。
在这里插入图片描述
设置FrameBuffer的基地址。
在这里插入图片描述
其他寄存器暂时用不到,先不管。

接下来说一下调色板,在嵌入式系统中,调色板只是一个形象的说法,其作用和绘画用的调色板类似。

假设ARM板子和LCD之间连接了16bit VD线,那么对应的每一个像素点在FrameBuffer中占据的位数都是16位。

问:本应该在FrameBuffer中用16bit表示1像素,但是要省空间,只用8bit可以吗?

答:可以,通过调色板。在调色板中存放16bit数据,将FrameBuffer中的8bit数据,再将这8bit数据做为索引去调色板中取出真正16bit数据。

由于这时FrameBuffer中的8bit数据并不是真的颜色数据,实际上是伪彩色,使用16BPP或24BPP时,才是真彩色。

调色板也是一块内存,可能放在LCD控制器里,也可能放在内存中,查找LCD的芯片手册,搜索调色板的英文单词Palette。下图是调色板的数据格式和地址,可以看到每个调色板的元素占了四个字节,但只用到了两个字节。
在这里插入图片描述
当需要将LCD设置为1种颜色时,2440还提供了临时调色板,将TPALEN使能,则不论FrameBuffer中的数据如何,都只使用TPALVAL中的数据,将所有像素设置为同一种颜色。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值