Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1024355
  • 博文数量: 238
  • 博客积分: 2842
  • 博客等级: 少校
  • 技术积分: 2765
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-16 00:20
个人简介

stdlf

文章分类

全部博文(238)

文章存档

2013年(6)

2012年(13)

2011年(82)

2010年(89)

2009年(48)

我的朋友

分类:

2010-01-28 17:34:13

44B0X的LCD 控制器资料
LCD 控制器用来把定位在系统存储器中的视频缓冲区的LCD图象数据传输到LCD驱动器,并
产生必须的LCD控制信号。
LCD 控制器使用时间抖动算法和帧速率控制方法,支持在灰白LCD上的单色、4级灰度(一个
点占两位)、16级灰度(一个点占4位)显示,也能与彩色LCD的接口支持最大256色(每点8
位)的显示 。
LCD 控制器可以编程支持不同水平和垂直点数(640x480, 320x240, 160x160等等)、不同数
据线宽度、不同的接口时序和刷新速率的LCD,支持4位双扫描、4位单扫描、8位单扫描的LCD
显示器,并支持水平/垂直卷动,用来支持更大的屏幕显示(如1280*1280)。
LCD显示数据流如下:
当LCDCDMA(LCD专用DMA,用来在不用CPU参与的情况下自动传输帧存储器的视频数据到
LCD驱动器显示)中的FIFO 存储区为空或部分为空时,LCDCDMA请求从帧存储器预取数据(使
用突发传输模式,一次预取4个字,在传输期间,不允许总线控制权转让。FIFO 存储区总的尺
寸是24个字(12个FIFOL,12个FIFOH,用来支持双扫描,在单扫描模式,仅一个12个FIFOH
可用).
灰度显示:4级灰度显示模式使用查找表,允许在16级可能的灰度中选择四级灰度显示,该查找
表和彩色查找表的兰色查找表公用一个寄存器BULEVAL[15:0],灰度0由BLUEVAL[3:0]值表示,
灰度1由BLUEVAL[7:4]值表示,灰度2由BLUEVAL[11:8]值表示,灰度3由BLUEVAL[15:12]值表
示。在16级灰度显示模式不使用查找表。
彩色8位显示模式:3位分配为红,3位绿,可以同时显示8个红色与8个绿色,,2位蓝色位,可
以同时显示4个兰色,合起来最大显示256色。红、绿、蓝分别使用不同的查找表,红色、绿色
查找表入口都是32位(并分成8组),分别由REDVAL[31:0]、GREENVAL[31:0]寄存器指示,
兰色查找表入口为16位,由BLUEVAL[15:0] 寄存器指示,并分成4组。也就是说红、绿色可以
在在32位中颜色组合中选择8色进行显示,兰色可以在在16位中颜色组合中选择4色进行显示。
LCD自刷新模式:S3C44B0X支持LCD自刷新模式,以减少电源消耗,这时VCLK为低,VD保持
先前的值,其它信号不变,这时电源管理模式可以进入SL_IDLE模式。
LCD寄存器
1 LCD控制寄存器1
LCDCON1    0x01F00000   R/W    LCD控制寄存器1  初始值 0x00000000
位名称             BIT                描述
LINECNT(只读)   [31:22]      这些位反映行计数值      
CLKVAL         [21:12]      这些位确定VCLK的频率. 如果该值在ENVID=1改变,将下
一帧使用. 
公式为 VCLK = MCLK / (CLKVAL x 2) ( CLKVAL 32 )
WLH            [11:10]       这些位确定VLINE高电平的宽度 
00 = 4 clock, 01 = 8 clock, 10 = 12 clock, 11 = 16 clock
WDLY          [9:8]         这些位确定VLINE和VCLK之间的延时
00 = 4clock, 01 = 8 clock, 10 = 12 clock, 11 = 16 clock
MMODE        [7]            这位确定VM的改变速度.
0 = Each Frame, 1 = The rate defined by the MVAL
DISMODE      [6:5]         这些位选择显示模式
00 = 4-bit dual scan display mode
01 = 4-bit single scan display mode
10 = 8-bit single scan display mode
11 = Not used
INVCLK        [4]     该位控制VCLK 的极性
0 = The video data is fetched at VCLK falling edge
1 = The video data is fetched at VCLK rising edge
INVLINE       [3]    该位指示行脉冲的极性
0 = normal 1 = inverted
INVFRAME    [2]    该位指示帧脉冲的极性
0 = normal 1 = inverted
INVVD        [1]    该位指示(VD[7:0]) 的极性.
0 = Normal
1 = VD[7:0] output is inverted.
ENVID        [0]    LCD视频输出和逻辑的允许与否 
0 = 不允许,LCD FIFO 清除
1 = 允许
2 LCD控制寄存器1
LCDCON2    0x01F00004   R/W    LCD控制寄存器2  初始值 0x00000000
位名称           BIT                描述
LINEBLANK      [31:21]  这些位确定行扫描的返回时间. LINEBLANK I的单位是MCLK.
如: LINEBLANK 为10, 返回时间在10个系统时钟期间插入VCLK 
HOZVAL         [20:10]   这些位确定LCD屏的水平尺寸,HOZVAL值的确定必须满足一行总
的字节数是2的倍数 如120点的LCD 的水平尺寸X=120不支持,因
为一行包含15个字节,而X=128可以被支持(16个字节),额外的8点
将被LCD驱动器放弃.
公式:
HOZVAL = ( Horizontal display size / Number of the valid VD data line) -1
彩色模式: Horizontal display size = 3 * Number of Horizontal Pixel
LINEVAL         [9:0]      这些位确定LCD屏的垂直尺寸
确定公式:
LINEVAL = (Vertical display size) -1:单扫描类型
LINEVAL = (Vertical display size / 2) -1: 双扫描类型
3 LCD控制寄存器3
LCDCON3      0x01F00040  R/W    LCD控制寄存器3  初始值 0x00
位名称           BIT        描述
Reserved       [2:1]        保留
SELFREF       [0]         LCD刷新模式允许位
0 : LCD self refresh mode disable
1 : LCD self refresh mode enable
4  帧缓冲区开始地址1
LCDSADDR1      0x01F00008   R/W    帧缓冲区开始地址1寄存器  初始值 0x000000
位名称           BIT             描述
MODESEL       [28:27]     这些位选择显示模式
00 = monochrome mode 01 = 4-level gray mode
10 = 16-level gray mode 11 = color mode
LCDBANK        [26:21]  这些位指示视频缓冲区在系统存储器的段地址A[27:22] 
LCDBANK在视点移动时不能变化, LCD 帧缓冲区应当与4M区域
对齐,因此在分配存储区应当注意
LCDBASEU       [20:0]    这些位指示帧缓冲区或在双扫描LCD时的上帧缓冲区的开始地址
A[21:1] 
注:1 LCDBANK在ENVID=1时不能变化.
   2 如果LCDBASEU,LCDBASEL在ENVID=1时变化,新的量将在下一帧起作用,
5  帧缓冲区开始地址2
LCDSADDR2     0x01F0000C   R/W    帧缓冲区开始地址2寄存器  初始值 0x000000
位名称           BIT             描述
BSWP             [29]    字节交换控制位
1 : Swap Enable 0 : Swap Disable
LCD DMA 以4个字的突发模式预取帧存储区数据,在little endian
模式和BSWP = 0, 帧存储区数据以n+3th, 4n+2th ,4n+1th ,4n-th
次序显示
否则BSWP =1次序为4n-th, 4n+1th,4n+2th, 4n+3th.
如果CPU在little endian模式,帧存储区可以以字节存取模式存取,
因为BSWP =1,存取的数据也将在little endian模式正常显示,否则
BSWP 必须为0
MVAL         [28:21]    如果MMODE=1,这两位定义VM信号以什么速度变化 
                        公式为:VM Rate = VLINE Rate / ( 2 * MVAL)
LCDBASEL    [20:0]   这两位指示在使用双扫描LCD时的下帧存储区的开始地址 A[21:1] 
公式如下:
LCDBASEL =LCDBASEU + (PAGEWIDTH + OFFSIZE) x (LINEVAL +1)
注:用户通过改变LCDBASEU 和 LCDBASEL的值来滚动屏幕,但在帧结束时,不能改变LCDBASEU
和 LCDBASEL的值,因为预取下一帧的数据优先于改变帧,如果这时改变帧, 预取的数据将无效
和将显示不正确.为了检查LINECNT,中断应当被屏蔽,否则如果在读LINECNT后,任意中断刚好执行,
因为ISR的执行,LINECNT的值可能无效.,
6  帧缓冲区开始地址3
LCDSADDR3     0x01F00010   R/W    虚拟屏幕地址设置  初始值 0x000000
位名称           BIT             描述
OFFSIZE         [19:9]     虚拟屏幕偏移量(半字的数量),该值定义前一显示行的最后的半
字和新的显示一行首先的半字之间的距离
PAGEWIDTH     [8:0]       虚拟屏幕宽度(半字的数量),该值定义帧的观察区域的宽度
注: PAGEWIDTH 和 OFFSIZE必须在ENVID = 0时变化.
7  红色查找表寄存器
REDLUT     0x01F00014    R/W   红色查找表寄存器  初始值 0x00000000
位名称      BIT             描述
REDVAL    [31:0  ]    这些位定义8组的每一组中的16个影射的哪一个将选择
000 = REDVAL[3:0], 001 = REDVAL[7:4]
010 = REDVAL[11:8], 011 = REDVAL[15:12]
100 = REDVAL[19:16], 101 = REDVAL[23:20]
110 = REDVAL[27:24], 111 = REDVAL[31:28]
8  绿色查找表寄存器
GREENLUT     0x01F00018   R/W   绿色查找表寄存器  初始值 0x00000000
位名称         BIT             描述
GREENVAL    [31:0  ]    这些位定义8组的每一组中的16个影射的哪一个将选择
                          000 = GREENVAL[3:0], 001 = GREENVAL[7:4]
010 = GREENVAL[11:8], 011 = GREENVAL[15:12]
100 = GREENVAL[19:16], 101 = GREENVAL[23:20]
110 = GREENVAL[27:24], 111 = GREENVAL[31:28]
9  蓝色查找表寄存器
BLUELUT     0x01F0001C   R/W   蓝色查找表寄存器  初始值 0x0000
位名称         BIT             描述
BLUEVAL    [15:0  ]    这些位定义4组的每一组中的16个影射的哪一个将选择
                        00 = BLUEVAL[3:0], 01 = BLUEVAL[7:4]
10 = BLUEVAL[11:8], 11 = BLUEVAL[15:12]
10  抖动模式寄存器
DP1_2      0x01F00020    R/W   抖动模式占空比为1/2寄存器   初始值 0xa5a5
DP4_7      0x01F00024    R/W   抖动模式占空比为4/7寄存器   初始值 0xba5da65
DP3_5      0x01F00028    R/W   抖动模式占空比为3/5寄存器   初始值 0xa5a5f
DP2_3      0x01F0002C    R/W   抖动模式占空比为2/3寄存器   初始值 0xd6b
DP5_7      0x01F00030    R/W   抖动模式占空比为5/7寄存器   初始值0xeb7b5ed
DP3_4      0x01F00034    R/W   抖动模式占空比为3/4寄存器   初始值 0x7dbe
DP4_5      0x01F00038    R/W   抖动模式占空比为4/5寄存器   初始值 0x7ebdf
DP6_7      0x01F0003C    R/W   抖动模式占空比为6/7寄存器   初始值 0x7fdfbfe
DITHMODE  0x01F00044    R/W   抖动模式寄存器               初始值 0x00000
                                   用户必须改变该值为0x12210.
LCD控制器的VCLK最大频率是16.5MHZ(在系统时钟为66MHZ时), 
VCLK(Hz)=MCLK/(CLKVAL x 2)
VCLK的速度应大于数据传输速率.
数据传输速率=HS × VS × FR × MV
HS: LCD 水平尺寸
VS: LCD 垂直尺寸
FR:  帧速率
MV: 由显示模式确定的值
FR(Hz) = 1 / [ ( (1/VCLK) x (HOZVAL+1)+(1/MCLK) x (WLH+WDLY+LINEBLANK) ) x
( LINEVAL+1) ]
VCLK(Hz) = (HOZVAL+1) / [ (1 /(FR x (LINEVAL+1))) - ((WLH+WDLY+LINEBLANK) / MCLK )]
显示模式                          MV值
单色, 4位单扫描                     1/4
单色, 8位单扫描或4位双扫描          1/8
4级灰度, 4位单扫描                  1/4
4级灰度,8位单扫描或4位双扫描       1/8
16级灰度,4位单扫描                  1/4
16级灰度,8位单扫描或4位双扫描      1/8
彩色, 4位单扫描                     3/4
彩色, 8位单扫描或4位双扫描          3/8
LCDBASEU寄存器的量是帧缓冲区的开始地址,在突发4字存取模式,最低4位必须取消.
LCDBASEL寄存器的量由LCD尺寸和LCDBASEU的量确定,公式为;
LCDBASEL = LCDBASEU + LCDBASEL offset
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/silenceee/archive/2006/12/26/1462242.aspx
阅读(629) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~