序:个人翻译,技术很烂,不是完全逐字翻译,翻译过程充斥了个人的理解;
然网络中几乎无完整的关于S3C2440 LCD控制器 数据手册的翻译,庆幸;
如有错误,在所难免,不吝赐教!
需要PDF文档(包含图片)的朋友,可发我Mail:
LCD 控制器
LCD控制器支持:
1. 黑白LCD:单色、2 BPP(4灰阶)、4 BPP(16灰阶)【通过基于时间的抖动算法和帧比率控制方法àFrame Rate Control (FRC)】;
2. STN LCD(超扭转向列型液晶显示器):8 BPP(256色)、12 BPP(4096色);
3. TFT LCD:1、2、4、8BPP(有调色板 TFT),16、24 BPP( 真彩色 TFT);
不同LCD区别:
1. STN LCD 显示:
①支持3种LCD面板:4-bit 双线扫描, 4-bit 单线扫描, and 8-bit 单线扫描显示类型;
②支持单色、4灰阶、16灰阶;
③支持256色和4096色的彩色STN LCD面板;
④支持多种屏幕类型:
640*480、320*240、160*160等
最大4Mbytes(最多256色的4096*1024、2048*2048、1024*4096等)
2. TFT LCD 显示:
①1、2、4、8BPP的有调色板 TFT;
②16、24 BPP的无调色板 真彩色TFT;
③最大支持16M色的24bit/pixel;
④支持多种屏幕类型:
640*480、320*240、160*160等
最大4Mbytes(最多64K色的2048*1024等)
【2^16=64K,即2个字节一个像素,2M个像素,即4Mbytes】。
共同点:
LCD控制器有专门的DMA用于支持接收来自主存指定图像缓存区域的数据,同时:
①专门的中断函数(INT_FrSyn and INT_FiCnt);
②主存可用于显存;
③支持多种显示屏(支持硬件在水平和竖直方向上滚动);
④针对不同显示面板,可编程时序控制(timing control);
⑤支持大端、小端,像WinCE的数据格式一样;
⑥支持两种类型的SEC TFT LCD panel:
LTS350Q1-PD1: TFT LCD panel with touch panel and front light unit (Reflective type)反射式
LTS350Q1-PD2: TFT LCD panel only
LTS350Q1-PE1: TFT LCD panel with touch panel and front light unit (Transflective type)半反射
LTS350Q1-PE2: TFT LCD panel only
注:WinCE doesn’t support 12-bit packed data format. Please check if WinCE can support the 12-bit color-mode.
外部接口信号:
S3C2410A LCD控制器的外部接口信号有33个,包括24个数据位和9个控制位:
VFRAME/VSYNC/STV 帧同步信号(STN)/垂直同步信号(TFT)/SEC TFT信号
VLINE/HSYNC/CPV 行同步脉冲信号(STN)/水平同步信号(TFT)/SEC TFT信号
VCLK/LCD_HCLK 像素时钟信号(STN/TFT)/SEC TFT信号
VD[23:0] LCD像素数据输出端口(STN/TFT/SEC TFT)
VM/VDEN/TP LCD驱动器的交流偏置信号(STN)/数据使能信号(TFT)/SEC TFT信号
LEND/STH 行结束信号(TFT)/SEC TFT信号
LCD_PWREN LCD面板电源使能控制信号
LCDVF0 SEC TFT信号OE
LCDVF1 SEC TFT信号REV
LCDVF2 SEC TFT信号REVB
LCD控制器模块图:
S3C2440的LCD控制器是用于传递图像数据和一些如VFRAME, VLINE, VCLK, VM等必要控制信号。除了控制信号,还有用于传递图像数据的端口VD[23:0]。LCD控制器由REGBANK, LCDCDMA,VIDPRCS, TIMEGEN, 和LPC3600(LCC3600)组成。
(寄存器组)有17个可编程设置寄存器和一个256*16位调色板内存,用于配置LCD控制器。
LCDCDMA是一个专用的DMA,用于自动地将图像数据由帧缓冲区传递到LCD驱动端。通过该特殊的DMA,图像数据可不用CPU干预而现实在显示器上。
VIDPRCS从LCDCDMA那接收图像数据,并在将数据转化为合适的数据格式后(如4/8-bit单线扫描、4-bit双线扫描显示类型),通过VD[23:0]数据端口,发送到LCD驱动端。
由可编程逻辑组成,它们用于支持不同LCD驱动通用的可变接口时序和速率要求。TIMEGEN模块产生VFRAME, VLINE, VCLK, VM等信号。
数据流描述如下:
LCDCDMA有一个FIFO空间,当该空间为空,或部分为空时,LCDCDMA请求以“突发内存传输模式(burst memory transfer mode)”从帧缓冲区获取数据(每个冲突请求连续地向内存提取4Words即16bytes,同时在总线传输过程中,总线控制权不转交给其他总线)。当内存控制器中的总线终裁接受该传输请求时,主存将发送4个连续字到内部FIFO。FIFO总容量为28Words,其中12Words的FIFOL和16Words的FIFOH。S3C2440A芯片有2个FIFO,以支持双线扫描显示模型。当使用单线扫描时,只有一个FIFO(FIFOH)可被使用。
STN LCD 控制器操作
(未翻译)
TFT LCD 控制器操作
、CLKVAL、帧速率
TIMEGEN为LCD驱动器产生控制信号,如:VSYNC, HSYNC, VCLK, VDEN, 和 LEND等信号。这些信号与(寄存器组)中的LCDCON1/2/3/4/5寄存器的配置密切相关。通过对REGBANK中的LCD控制寄存器进行编程配置,TIMEGEN可以产生不同的合适的控制信号,以支持许多不同类型的LCD驱动。
VSYNC信号(垂直同步信号)使得LCD行指针跳到显示器最顶端从新开始。
VSYNC和HSYNC(水平同步信号)的同步脉冲由LCDCON2/3寄存器的HOZVAL域和域的配置决定。HOZVAL和LINEVAL也可以由LCD面板的尺寸通过以下公式得到:
HOZVAL = (Horizontal display size) - 1 //水平
LINEVAL = (Vertical display size) - 1 //垂直
VCLK信号速率由LCDCON1寄存器的CLKVAL域决定。下表定义了VCLK与CLKVAL的相互关系,CLKVAL的最小值为0.
VCLK(Hz) = HCLK / [ (CLKVAL+1)×2 ]
帧速率就是VSYNC信号频率,它和LCDCON1/2/3/4寄存器中的VSYNC, VBPD, VFPD,
LINEVAL, HSYNC, HBPD, HFPD, HOZVAL, 以及 CLKVAL域有关。大多数LCD驱动器都有它们自己的额定帧速率。其公式如下:
× [ (HSPW+1) + (HBPD+1) + (HFPD+1) + (HOZVAL+1) ]
× [ 2 × ( CLKVAL+1 ) / ( HCLK ) ] }
Relation between VCLK and CLKVAL (TFT, HCLK = 60MHz)
TFT LCD控制器支持1、2、4、8的有调色板显示,16、24 BPP的无调色板显示。
芯片提供256色调色板用于色彩映射的多种选择,提供使用者以灵活的操作。
存储数据格式(TFT)
本章节包含了每种显示模型的一些例子。
24BPP显示
(BSWP = 0, HWSWP = 0, BPP24BL = 0)
表示一个像素需4个字节,其中24-31位无效
(BSWP = 0, HWSWP = 0, BPP24BL = 1)
表示一个像素需4个字节,其中0-7位无效
像素从左上角开始1,2,3...
24BPP VD引脚描述
每个颜色8位,共24位,从高位到低位分别是R、G、B
16BPP显示
(BSWP = 0, HWSWP = 0)
一个像素16位。每32位,高16位为低像素,低16位为高像素(大端?)
(BSWP = 0, HWSWP = 1)
一个像素16位。每32位,低16位为低像素,高16位为高像素(小端?)
16BPP VD引脚描述
(5:6:5)
:5位(23-19); Green:6位(15-10); Blue:5位(7-3)。
(5:5:5:1)
Red:5位(23-19); Green:5位(15-11); Blue:5位(7-3)。
注:没用到的VD引脚,可像GPIO一样使用。
8BPP显示
(BSWP = 0, HWSWP = 0)
一个像素8位。每32位(4个像素),从高位到低位,分别是低位像素至高位像素。(大端?)
(BSWP = 1, HWSWP = 0)
一个像素8位。每32位(4个像素),从高位到低位,分别是高位像素至低位像素。(小端?)
注:因2、4、8BPP使用调色板,故无需RGB
4BPP显示
(BSWP = 0, HWSWP = 0)
4位。每32位(8个像素),从高位到低位,分别是低位像素至高位像素。(大端?)
(BSWP = 1, HWSWP = 0)
4位。每32位(8个像素),从高位到低位,分别是高位像素至低位像素。(小端?)
2BPP显示
(BSWP = 0, HWSWP = 0)
一个像素2位。每32位(16个像素),从高位到低位,分别是低位像素至高位像素。(大端?)
256色调色板用途(TFT)
调色板配置和格式控制
芯片为TFT LCD的控制提供256色调色板
用户可以以两种不同格式选择64K色中的256色(一个颜色16位,故可有64K色,而调色板只使用其中的256色,即FFH)
256色调色板由256*16-bit SPSRAM组成,支持5:6:5R:G:B)格式和5:5:5:1(R:G:B:1)模式。
当用户使用5:5:5:1格式时,“1”位可以看成每个RGB的最低位。我们将格式当成:
R(5+1):G(5+1):B(5+1)格式。举个例子如下:
用户以下图(第二个图)格式写调色板,然后将VD引脚与TFT LCD 面板连接起来
R(5+1)=VD[23:19]+VD[18], VD[10] or VD[2];
G(5+1)=VD[15:11]+ VD[18], VD[10] or VD[2];
B(5+1)=VD[7:3]+VD[18], VD[10] or VD[2]。
接着设置LCDCON5寄存器的FRM565为0.
5:6:5格式
5:5:5:1格式
1. 是调色板起始地址
2.VD18、10、2具有相同的输出值1
3.每一个索引(INDEX)分配了4bytes空间(如:0x4D000400-0x4D000403)
因此[31:16]位数据是无效的
调色板的读写
当用户要对调色板做读写操作时,LCDCON5寄存器的和VSTATUS必须关闭。当HSTATUS和VSTATUS处于活动(ACTIVE)状态时,读写操作是禁止的。
临时调色板配置
当需要在一帧上全部显示一种颜色的时候,不需要再通过一个颜色一个颜色地去将帧缓冲区填满,只需将该颜色写入TPAL寄存器的TPALVAL中,并且使能TPALEN。
其他
、
16BPP Display Types (TFT)
时序例子:
TFT LCD Timing Example
虚拟显示(VIRTUAL DISPLAY)(TFT/STN)
芯片支持 硬件水平/垂直滚动(hardware horizontal or vertical scrolling)。如果屏幕滚动,需要修改LCDSADDR1/2寄存器的LCDBASEU和LCDBASEL域,而不改变PAGEWIDTH和OFFSIZE的值
存储的图像的缓冲区应该比LCD面板的屏幕尺寸大。
下图为单线扫描模式下,虚拟显示中滚动屏幕的例子:
LCDBASEU表示LCD_BASE_UPPER;//下面针对FBSA1/2/3寄存器会详细讲解
LCDBASEL表示LCD_BASE_LOWER;
PAGEWIDTH表示屏宽度;
LINEVAL表示垂直显示尺寸;
OFFSIZE表示超出的尺寸;
Example of Scrolling in Virtual Display (Single Scan)
LCD 电源使能(STN/TFT)
芯片提供电源使能功能(PWREN)。当PWREN被设置为PWREN信号使能时,引脚的输出值将被ENVID控制,也就是说,当LCD_PWREN引脚与LCD面板的电源开关控制引脚相连时,LCD面板的电源将被自动控制设为ENVID值。
芯片同样支持INVPWREN位设置为PWREN信号的反向值。
此功能只能当LCD面板具有自己的电源开关控制引脚,并已与LCD_PWREN引脚相连时有效。
Example of PWREN Function (PWREN=1, INVPWREN=0)
下篇主要内容为:LCD控制器各寄存器部分