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
阅读(629) | 评论(0) | 转发(0) |