S3C2440LCD控制器中文.docx
《S3C2440LCD控制器中文.docx》由会员分享,可在线阅读,更多相关《S3C2440LCD控制器中文.docx(33页珍藏版)》请在冰豆网上搜索。
S3C2440LCD控制器中文
S3C2440LCD控制器
15LCD控制器
概述:
S3C2440的LCD控制器由由一个逻辑单元组成,它的作用是:
把LCD图像数据从一个位于系统内存的videobuffer传送到一个外部的LCD驱动器。
LCD控制器使用一个基于时间的像素抖动算法和侦速率控制思想,可以支持单色,2-bitperpixel(4级灰度)或者4-bit-pixel(16级灰度)屏,并且它可以与256色(8BPP)和4096色(12BPP)的彩色STNLCD连接。
它支持1BPP,2BPP,4BPP,8BPP的调色板TFT彩色屏并且支持64K色(16BPP)和16M色(24BPP)非调色板真彩显示。
LCD控制器是可以编程满足不同的需求,关于水平,垂直方向的像素数目,数据接口的数据线宽度,接口时序和刷新速率。
特征:
STNLCD屏:
----支持3种扫描方式的屏:
4位双扫,4位单扫和8位单扫。
----支持单色(1BPP),4级灰度(2BPP),16级灰度(4BPP)。
----支持256色,4096色的彩色STNLCD屏
----支持多种屏幕分辨率
典型的应用:
640*480,320*240,160*160和其他
最大的虚拟屏幕可达4M
在256色模式下,最大的虚拟屏幕分辨率:
4096*1024,2048*2048,1024*4096和其它
TFTLCD屏:
----支持1,2,4,8BPP调色板显示模式
----支持64K(16BPP),64M(24BPP)色非调色板模式
----支持多种屏幕分辨率:
典型的应用:
640*480,320*240,160*160和其他
最大的虚拟屏幕可达4M
在64K色模式下,最大屏幕分辨率:
2048*1024
通用特征:
LCD控制器有一个专用的DMA,用来从位于系统存储器中的视频缓冲区取得图像数据,它的特征也包括如下所示:
----专用的中断功能((INT_FrSynandINT_FiCnt)
----系统存储器被用作显示存储器
----支持多种的虚拟显示屏(支持硬件水平/垂直滚屏)
----可编程的时序控制,用于不同的LCD
----支持大端,小端模式,也支持WinCE数据格式
----支持2种型号的SECTFTLCD屏
(SAMSUNG3.5”Portrait/256KColor/ReflectiveandTransflectivea-SiTFTLCD)
LTS350Q1-PD1:
TFTLCDpanelwithtouchpanelandfrontlightunit(Reflectivetype)
LTS350Q1-PD2:
TFTLCDpanelonly
LTS350Q1-PE1:
TFTLCDpanelwithtouchpanelandfrontlightunit(Transflectivetype)
LTS350Q1-PE2:
TFTLCDpanelonly
NOTE:
WinCE不支持12位的数据封装格式
请检查WinCE是否可以支持12位的彩色模式
外部接口信号:
LCD控制器方块图:
S3C2440LCD控制器被用来传送视频数据和生成必要的控制信号,比如VFRAME,VLINE,VCLK,VM,等等。
除了控制信号外,这S3C2440还有作为视频数据的数据端口,它们是如图15-1所示的VD[23:
0]。
LCD控制器由REGBANK,LCDCDMA,VIDPRCS,TIMEGEN,和LPC3600(看15-1LCD控制器方块图)组成。
REGBANK由17个可编程的寄存器组和一块256*16的调色板内存组成,它们用来配置LCD控制器的。
LCDCDMA是一个专用的DMA,它能自动地把在侦内存中的视频数据传送到LCD驱动器。
通过使用这个DMA通道,视频数据在不需要CPU的干预的情况下显示在LCD屏上。
VIDPRCS接收来自LCDCDMA的数据,将数据转换为合适的数据格式,比如说4/8位单扫,4位双扫显示模式,然后通过数据端口VD[23:
0]传送视频数据到LCD驱动器。
TIMEGEN由可编程的逻辑组成,支持不同的LCD驱动器接口时序和速率的需求。
TIMEGEN块可以产生VFRAME,VLINE,VCLK,VM等等。
数据流描述如下:
LCDCDMA中存在FIFO存储器。
当FIFO为空,或者部分为空的时候,LCDCDMA请求从侦存储器中取得数据,是用突发的存储传输模式取得数据的(每一个突发请求,连续的取4个字(16bytes)在总线传输过程中,不允许总线控制权交给另一个总线控制)当传输请求被存储控制器中的总线仲裁器接收了后,将会产生连续的4个字的数据传输从系统内存到内部的FIFO。
FIFO的总共大小为28个字,由12个字的FIFOL和16个字的FIFOH分别组成。
S3C2440有2个FIFOs支持双扫显示模式。
假如是单扫模式,FIFOH将会被用到。
STNLCD控制器操作
时序发生器(TIMEGEN)
TIMEGEN生成LCD驱动器的控制信号,比如说VFRAME,VLINE,VCLK,和VM。
这些控制信号与REGBANK中的寄存器LCDCON1/2/3/4/5的配置是紧密相关的。
基于这些在REGBANK中寄存器的编程配置,TIMEGEN可以产生合适的可编程的控制信号支持许多不同种类的LCD驱动器。
以每侦一次为频率,VFRAME脉冲在整个第1行期间开始插入。
这VFRAME信号有效时,它把LCD的行指针指到显示器的顶端,重新开始新的一帧。
VM信号帮助LCD驱动器交替行与列的电压极性,它们用来对像素的开与关。
VM信号的切换速率依赖于LCDCON1寄存器中的MMODE位和LCDCON4寄存器中的MVAL域的配置。
如果这MMODE位为0,VM信号配置成每帧切换一次。
如果这MMODE位为1,VM信号在一段时间后切换一次,这段时间是VLINE的数值,它是由MVAL[7:
0]设置的。
图15-4展示了一个例子,MMODE=0或者MMODE=1且MVAL[7:
0]=0x2。
当MMODE=1的时候,VM速率与MVAL[7:
0]有关,如下所示:
VMRate=VLINERate/(2xMVAL)。
VFRAME和VLINE信号的脉冲产生依赖于寄存器的配置,它们是LCDCON2/3寄存器中的HOZVAL域和LINEVAL域。
每一个域与LCD的显示分辨率和模式有关。
换而言之,HOZVAL和LINEVAL能由LCD屏的面积和显示模式决定,根据如下公式:
HOZVAL=(Horizontaldisplaysize/NumberofthevalidVDdataline)-1
彩色模式:
Horizontaldisplaysize=3xNumberofHorizontalPixel
在4位单扫显示模式,有效的VD数据行数目应该是4。
假如是4位双扫模式,有效的VD数据行数目应该也是4,然而如果是8位单扫模式,有效VD数据行数目应该是8。
LINEVAL=(Verticaldisplaysize)-1:
假设为单扫显示模式
LINEVAL=(Verticaldisplaysize/2)-1:
假设为双扫显示模式
VCLK信号的速率依赖于LCDCON1寄存器中的CLKVAL域的配置。
表15-1定义了VCLK和CLKVAL的关系,CLKVAL的最小值为2。
VCLK(Hz)=HCLK/(CLKVALx2)
帧的速率就是VFRAME信号的频率。
帧的速率与WLH[1:
0]域(VLINE脉冲的宽度),WDLY[1:
0]域(VLINE脉冲之后的VCLK的延迟宽度),HOZVAL,LINEBLANK,以及LCDCON1/2/3/4寄存器中的LINEVAL紧密相关的,也与VCLK和HCLK是相关的。
大多数的LCD驱动器需要自己适当的帧速率。
帧速率是按如下公式计算的:
frame_rate(Hz)=1/[{(1/VCLK)x(HOZVAL+1)+(1/HCLK)x(A+B+(LINEBLANKx8))}x(LINEVAL+1)]
A=2的(4+WLH)次方,B=2的(4+WDLY)次方。
视频操作
S3C2440LCD控制器支持8位彩色模式(256色模式),12位彩色模式(4096色模式),4级灰度模式,16级灰度模式以及单色模式。
对于灰度或者彩色模式,灰度或者彩色的色调(颜色的深浅度)是必须执行的,根据基于时间的抖动算法以及帧率控制方法。
在一个可编程的查找表,选择能被决定,这个以后再解释。
单色模式不需要这些模块(FRC和查找表),并且根本上
通过移位视频数据到LCD驱动器使FIFOH(如果是双扫,FIFOL也需要)中的数据以4位(如果是4位双扫或者是8位单扫,是8位)的数据流串行传输。
接下来的部分就查找表和FRC描述在灰度和彩色模式上的操作。
查找表
S3C2440支持查找表作为彩色或者灰度等级映射的多种选择,保证为用户提供具有弹性的操作。
查找表就是一个调色板,它允许在彩色或者灰度等级上进行选择(假如在4级灰度下,可以选择16灰度级别中的4级,假设在256色模式下,可以选择16级红色中的8种,16级绿色中的8种,16级蓝色中的4种)。
换句话说,在4级灰度模式,用户可以通过查找表选择16种灰度等级中的4种。
在16级灰度模式下,灰度等级不能被选择;在可能的16种灰度等级中,所有的16种灰度等级必须被选择。
假设在256色模式下,3位被分配用于红色,3位用于绿色,2位用于蓝色。
这256色意味着这些颜色是由8种红色,8种绿色,4种蓝色组合而成(8*8*4=256)。
在彩色模式,这个查找表能被用作合适的选择。
8种红色等级能在16种可能的红色等级中被选择,8种绿色同样可以在16种可能的绿色种被选择并且4种蓝色能在16种蓝色等级中被选择。
假如是4096色模式,就没有象256色模式下的那种选择。
灰度模式操作
S3C2440LCD控制器支持两种灰度模式2BPP灰度(4级灰度)和4BPP(16级灰度)。
这2BPP灰度模式用查找表(BLUELUT),它允许在16种灰度等级中进行4种选择。
这2BPP灰度模式查找表用到是蓝色查找表(BLUELUT)寄存器中的BLUEVAL[15:
0]域,与彩色模式下的蓝色查找表是一样的。
灰度等级0通过BLUEVAL[3:
0]标记。
如果BLUEVAL[3:
0]是9,那么等级0就代表16种灰度等级中的等级9。
如果BLUEVAL[3:
0]是15,等级0就代表16种灰度等级中的灰度等级15,以此类推。
根据前面同样的思想,等级1通过BLUEVAL[7:
4]也被标记,等级2被BLUEVAL[11:
8]标记,等级3被BLUEVAL[15:
12]标记。
这BLUEVAL[15:
0]中的4组将代表等级0,等级1,等级2,等级3。
在16级灰度模式下,没有选择,必须全选。
256色模式操作
S3C2440可以支持8BPP,也就是256色的显示模式。
这个彩色模式利用抖动算法和FRC可以生成256个等级的颜色。
8BPP被编码为3位红色,3为绿色以及2位蓝色。
这彩色显示模式的红色,绿色,蓝色都使用独立的查找表。
每个查找表用REDLUT寄存器中的REDVAL[31:
0],GREENLUT寄存器中的GREENVAL[31:
0]和BLUELUT寄存器中的BLUEVAL[31:
0]作为可编程的查找表入口。
与灰度等级显示类似,在寄存器REDLUR中的8组或者4位域,换言之,REDVAL[31:
28],REDLUT[27:
24],REDLUT[23:
20],,REDLUT[19:
16],REDLUT[15:
12],REDLUT[11:
8],REDLUT[7:
4]和REDLUT[3:
0]被分配给每个红色等级。
4位(每个域)的可能组合有16种,并且每个红色等级应该被分配16种等级种的1种。
换句话说,用户可以通过该类型的查找表选择合适的红色等级。
对于绿色,寄存器GREENLUT中的GREENVAL[31:
0]在查找表中的分配形式与红色是一样的。
类似地,寄存器BLUELUT中的BLUEVAL[31:
0]在查找表中也是这样分配的。
对于蓝色,2位组成4种颜色等级,与8种红色,绿色等级是不一样的。
4096色模式操作
S3C2440可以支持12BPP,即4096色显示模式。
这个模式使用抖动算法和FRC可以产生4096个等级的颜色。
12BPP被编码成4位用于红色,4位用于绿色,4位用于蓝色。
4096色模式不使用查找表。
抖动和帧率控制
如果是STNLCD显示器(除了单色屏),视频数据必须通过抖动算法处理。
DITHFRC块有两个功能,例如基于时间的抖动算法用来减少闪烁和FRC用于显示STN屏的灰度等级以及彩色等级。
在STN屏上,基于FRC灰度等级和彩色等级显示的主要原理被描述。
比如,为了显示16种等级中的第3种灰度等级,在3个时间单位里,像素应该为开,并且在13个时间单位里,像素应该为关。
换言之,在16帧数据中3帧数据应该被选择,被选择的3帧数据应该在一个特定的像素上为开,剩下的13帧数据应该在一个特定的像素上为关。
16帧数据应该周期性的显示。
这就是如何显示灰度等级在屏上的基本原理,即通过FRC所谓的灰度等级显示。
实际的例子在表15-2中显示。
为了表现出表中的第14灰度等级,我们应该有一个6/7的占空比,这也就意味着6个单位时间内像素是开的,1个单位时间为关。
其余的情况在表15-2中显示。
在STNLCD显示器,我们应该被提醒一个事情,由于在相邻的帧上同时的像素开与关而产生的闪动噪音。
如果第1帧的所有像素被打开并且下1帧的所有像素被关掉,这闪动噪音将会达到最大。
为了减少在屏上的闪动噪音,帧与帧之间的像素开与关的平均概率应该是相同的。
为了实现这个,基于时间的抖动算法应该被实施,它可以使每1帧相邻像素的格式多样化。
这将被详细描述。
对于16个灰度等级,FRC在灰度等级与FRC之间应该有如下的关系。
第15灰度等级像素应该一直为开,并且第14灰度等级在6个单位时间内为开,1个单位内为关,并且第13灰度等级在4个单位时间内为开,1个单位时间内为关,………,并且0灰度等级像素应该一直是关的,如15-2表所示。
显示类型
LCD控制器支持3种LCD驱动器:
4为双扫,4位单扫,和8位单扫显示模式。
图15-2显示了单色模式下的这3种不同显示类型,并且图15-3显示了彩色模式下的这3种不同显示类型。
4位双扫显示模式
4位双扫模式用8位并行数据线同时地移动数据到上半屏和下半屏。
8位并行数据线中的4位数据被移到上半屏,剩余4位数据被移到下半屏,如图15-2所示。
当每个半屏数据已经被移位和传送完,帧也就结束了。
来自于LCD控制器中作为输出的8个脚(VD[7:
0])可以直接接到LCD驱动器上。
4位单扫显示模式
4位单扫用4个并行数据线一次移动数据到显示器的连续的一个水平行,直到整个帧的数据被移和传输完毕。
LCD控制器的输出脚的4位(VD[3:
0])可以直接连在LCD驱动器上,其余4位(VD[7:
4])没有用到。
8位单扫显示模式
8位单扫用8个并行数据线一次移动数据到显示器的连续的一个水平行,直到整个帧的数据被移和传输完毕。
LCD控制器的8个输出脚(VD[7:
0])可以直接连载LCD驱动器上。
256色显示模式
彩色模式,每像素图像数据需要3位(红,绿,蓝),因此每个水平行的的水平移位寄存器数目应该是1行像素数目的3倍。
这些导致一个水平移位的长度3倍于每行像素的数目。
这RGB被作为连续的位通过并行数据线移位到LCD驱动器中。
图15-3现在了在3种彩色模式下,RGB和并行数据线中像素的排序。
4096色显示模式
彩色模式,每像素图像数据需要3位(红,绿,蓝),因此每个水平行的的水平移位寄存器数目应该是1行像素数目的3倍。
这RGB被作为连续的位通过并行数据线移位到LCD驱动器中。
RGB的顺序被视频缓冲区中的视频数据顺序决定。
MEMORYDATAFORMAT(STN,BSWP=0)内存数据格式
Mono4-bitDualScanDisplay:
单色4位双扫模式
VideoBufferMemory:
视频缓冲区内存
地址数据
0000HA[31:
0]
0004HB[31:
0]
•
•
•
1000HL[31:
0]
1004HM[31:
0]
•
•
•
Mono4-bitSingleScanDisplay&8-bitSingle单色4位单扫&8位单扫
ScanDisplay:
扫描显示
VideoBufferMemory:
视频缓冲区内存
地址数据
0000HA[31:
0]
0004HB[31:
0]
0008HC[31:
0]
•
•
MEMORYDATAFORMAT(STN,BSWP=0)(CONTINUED)内存数据格式(继续)
4级灰度模式:
2位视频数据对应1个像素
16级灰度模式:
4位视频数据对应1个像素
256色模式:
8位(3位红,3位绿,2位蓝)视频数据对应于1个像素
这1个字节的彩色数据格式如下:
4096色模式:
封包的12BPP色彩模式
1个像素有12位(4位红,4位绿,4位蓝)的视频数据。
接下来的表显示了在字中的彩色数据格式(视频数据必须位于3字的边界上(8像素),如下所示)
未封包的12BPP模式
1个像素有12位(4位红,4位绿,4位蓝)的视频数据。
接下来的表显示了在字中的彩色数据格式。
16BPP彩色模式:
1个像素有16个位(5位红,6位绿,5位蓝)视频数据。
但是STN控制器仅仅用到12位色彩数据。
这意味着每一个彩色数据的高4位将被使用,作为像素数据(R[15:
12],G[10:
7],B[4:
1])。
下面的表显示了在字中的数据格式。
时序要求
图像数据应该从内存传送到LCD驱动器通过使用VD[7:
0]信号。
VCLK信号被用作将数据移动到LCD驱动器的移位寄存器中的时钟信号。
每行数据已经被移动到LCD驱动器寄存器之后,VLINE信号此时有效,在显示器上显示此行。
这VM信号为显示器提供一个交流信号。
LCD用这个信号交替变化行与列的电压极性,这被用于开关像素,因为无论何时,LCD使用直流信号,LCD等离子趋向损坏。
它被配置成每帧切换或者每个可编程的VLINE信号数值切换。
图15-4显示了LCD驱动接口的时序要求。
TFTLCD控制器操作
TIMEGEN为LCD驱动器生成控制信号,比如VSYNC,HSYNC,VCLK,和LEND信号。
这些控制信号与与REGBANK中的LCDCON1/2/3/4/5中的配置密切相关。
基于这些在REGBANK中的LCD控制寄存器可编程配置,TIMEGEN可以合适的可编程控制信号支持多种不同的LCD驱动器。
VSYNC信号被声明致使LCD的行指针在显示器的顶端重新开始。
VSYNC和HSYNC脉冲的生成依靠于LCDCON2/3中的HOZVAL域和LINEVAL域的配置。
HOZVAL和LINEVAL能被LCD屏面积决定,依照如下公式:
—HOZVAL=(Horizontaldisplaysize)-1
—LINEVAL=(Verticaldisplaysize)-1
VCLK信号的速率依赖于LCDCON1中的CLKVAL域。
表15-3定义了VCLK与CLKVAL之间的关系。
CLKVAL最小的数值为0。
VCLK(Hz)=HCLK/[(CLKVAL+1)x2]
帧速率就是VSYNC信号频率。
帧速率与VSYNC,VBPD,VFPD,LINEVAL,HSYNC,HBPD,HFPD,HOZVAL,和CLKVAL的域有关,它们是LCDCON1/2/3/4。
大多数LCD驱动器需要它们合适的帧速率。
帧速率按如下公式计算:
视频操作
S3C2440的TFTLCD控制器支持1,2,4,8BPP调色板彩色模式以及16BPP,24BPP无调色板真彩模式。
256色调色板
S3C2440对于多种的颜色映射选择支持256色调色板,对用户支持弹性的操作。
内存数据格式
这段包括每种显示模式的一些例子
256色调色板使用(TFT)
调色板配置和格式控制
S3C2440为TFT显示器提供256色调色板。
用户可以从64K种颜色中选择出256种颜色,按照两种数据格式。
256色调色板由256(行)*16(位)SPSRAM组成。
调色板支持5:
6:
5格式和5:
5:
5:
1的格式。
当用户使用5:
5:
5:
1的格式时,亮度位(I)被用作每个RGB数据共有的最低位。
因此,5:
5:
5:
1格式与R(5+1):
G(5+1):
B(5+1)是一样的格式。
在5:
5:
5:
1格式,例如,用户可以写如表15-5中的调色板数据,接着把VD脚连接到LCD屏(R(5+I)=VD[23:
19]+VD[18],VD[10]orVD[2],G(5+I)=VD[15:
11]+VD[18],VD[10]orVD[2],B(5+I)=VD[7:
3]+VD[18],VD[10]orVD[2].),同时设置LCDCON5中的FRM565域为0。
NOTE:
1.0x4D000400是调色板的起始地址
2.VD18,VD10和VD2有同样的输出值,I
3.DATA[31:
16]是无效的
调色板读与写
当用户在调色板上执行读/写操作时,LCDCON5中的HSTATUS和VSTATUS必须被检查,因为在HSTATUS和VSTATUS有效期间,读/写操作是被禁止的。
临时调色板配置
S3C2440允许用户使用单色帧,不需要进行复杂的修改去填充一个颜色到帧缓冲或者调色板。
单色帧通过写单色数据到TPAL寄存器中的TPALVAL,且使能TPALEN,就可以显示在LCD屏上。
三星TFTLCD屏(3.5英寸/256K色/反射式未结晶硅/半穿透半反射未结晶硅TFTLCD屏)
S3C2440支持如下的SECTFTLCD屏:
1.三星3.5英寸/256K色/反射式a-SiTFTLCD屏
LTS350Q1-PD1:
TFTLCD带触摸屏,前置光
LTS350Q1-PD2:
TFTLCD屏
2.三星3.5英寸/256K色/半穿透半反射a-SiTFTLCD屏
LTS350Q1-PD1:
TFTLCD带触摸屏,前置光
LTS350Q1-PD2:
TFTLCD屏
S3C2440提供时间信号如下所示,用到了LTS350Q1-PD1/PD2和LTS350Q1-PE1/PE2
因此,LTS350Q1-PD1/2和PE1/2能与S3C2440连接,而不需要额外的时间控制逻辑。
但是用户应该附加地使用Vcom生成器电路,多种电压,INV信号和灰度等级电压生成器电路,建议配置在PRODUCTINFORMATION(SPEC)ofLTS350Q1-PD1/2和PE1/2中。
详细的时序图在PRODUCTINFORMATION(SPEC)ofLTS350Q1-PD1/2和PE1/2被描述
请参考文档(PRODUCTINFORMATION(SPEC)ofLTS350Q1-PD1/2和PE1/2),它由三星电子有限公司AMLCD科技客户中心提供。
注意:
S3C2440有