概述
S3C2440中的LCD控制器由位于系统存储器的视频缓冲区到外部LCD驱动器的转移LCD图像数据逻辑组成。LCD控制器支持单色LCD,2位每像素(4阶灰度)或4位每像素(16阶灰度)模式,通过使用基于事件的抖动算法和帧频控制(FRC)方法,其可以连接到8位每像素(256色)的彩色LCD面板和连接到12位每像素(4096色)的STN LCD。
其支持1位每像素,2位每像素,4位每像素和8位每像素的TFT彩色LCD面板连接,以及16位每像素和24位每像素的无调色真彩显示。
可以编程LCD控制器来支持不同涉及屏幕水平和垂直像素数,数据接口的数据线宽度、接口时序和刷新率的需要。
特性
STN LCD显示:
- 支持3种类型的LCD面板:4位双扫描、4位单扫描和8位单扫描和8位单扫描显示类型。
- 支持单色、4阶灰度和16阶灰度
- 支持256色和4096色的彩色STNLCD面板
- 支持多种屏幕尺寸
- 典型实际屏幕尺寸:640*480、320*240、160*160
- 最大虚拟屏幕尺寸位4M字节
- 256色模式最大虚拟屏幕尺寸:4096*1024、2048*2048、1024*4096等。
TFT LCD显示:
- 支持TFT的1、2、4、8bpp(位每像素)调色显示
- 支持彩色TFT的16、24bpp无调色显示
- 支持24位每像素模式下最大16MTFT
- 支持多种屏幕尺寸
- 典型实际屏幕尺寸:640*480、320*240、160*160等
- 最大虚拟屏幕尺寸为4M字节
- 64K色模式最大虚拟屏幕尺寸:2048*1024等。
共同特性:
LCD控制器有一个支持从位于系统存储器的视频缓冲器接收图像数据的专用DMA,其功能同样包括:
- 专用中断功能
- 使用系统存储器作为显存
- 支持多种虚拟屏
- 可变成不同显示面板的时序控制
- 支持大/小端字节顺序,和WinCE数据格式一样
- 支持2中类型的SEC TFT LCD面板。
外接信号
STN | TFT | SEC TFT (LTS350Q1-PD1/2) | SEC TFT (LTS350Q1-PE1/2) |
VFRAME (帧同步信号) | VSYNC (垂直同步信号) | STV | STV |
VLINE (行同步脉冲信号) | HSYNC (水平同步信号) | CPV | CPV |
VCLK (像素时钟信号) | VCLK (像素时钟信号) | LCD_HCLK | LCD_HCLK |
VD[23:0] (LCD像素数据输出端口) | VD[23:0] (LCD像素数据输出端口) | VD[23:0] | VD[23:0] |
VM (LCD驱动器的AC偏压信号) | VDEN (数据使能信号) | TP | TP |
- | LEND (行结束信号) | STH | STH |
LCD_PWREN | LCD_PWREN | LCD_PWREN | LCD_PWREN |
- | - | LPC_OE | LCC_INV |
- | - | LPC_REV | LCC_REV |
- | - | LPC_REVB | LCC_REVB |
S3C2440ALCD控制器是用于传输视频数据和产生必要的控制信号,如VFRAME,VLINE,VCLK,VM等等。除控制信号外,S3C2440A还有视频数据的数据端口,如图15-1所示的VD[23:0]。LCD控制器包括REGBANK、LCDCDMA、VIDPRCS、TIMEGEN和CPL3600.REGBANK有17个可编程寄存器集和用于配置LCD控制器的256*16个调色存储器。LCDCDMA专用于DMA,他可以自动从帧存储器到LCD驱动器传输视频数据。通过使用专用DMA,可以在屏幕上显示视频数据到LCD驱动器。TIMEGEN由可编程逻辑组成来支持发现不同LCD驱动器的一般接口时序和速率的变化的需要。TIMEGEN模块产生VFRAME、VLINE、VM等等。
数据流描述如下:
FIFO存储器LCDCDMA。当FIFO为空或者部分为空时,LCDCDMA请求基于突发存储器传输模式(连续4个字每单次突发请求的存储器刷新,无需总线传输器件随着总线主控到其他总线主机)从帧存储器刷新数据。当存储器控制器中的总线仲裁器同意了传输请求,将会从系统存储器到内部FIFO传输4个连续字数据。FIFO分别由12字FIFOL和16字FIFOH组成,总共28字大小。S3C2440A有2个FIFO来支持双扫描显示模式。在单扫描模式情况下,只能使用FIFO的一个。
TFT LCD控制器操作
TIMEGEN产生控制信号给LCD驱动器,例如VSYNC、HSYNC、VCLK、VDEN和LEDN信号。这些控制信号与REGBANK中的LCDCON1/2/3/4/5寄存器的配置有极大的关系。基于REGBANK中的LCD控制寄存器的这些变成配置。TIMEGEN可以产生可编程控制信号是个支持多种不同LCD驱动器的类型。
发出VSYNC信号来引起LCD的行指针重新从显示的顶处开始。
VSYNC和HSYNC脉冲的产生取决于LCDCON2/3寄存器中HOZVAL字段和LINEVAL字段的配置。HOZVAL和LINEVAL可以按照下列等式由LCD面板大小决定:
HOZVAL = (水平显示大小)-1
LINEVAL = (垂直显示大小)-1
VCLK信号的频率取决于LCDCON1寄存器中的CLKVAL字段,表15-3定义了VCLK和CLKVAL之间的关系。CLKVAL的最小值为0.
VCLK(Hz)= HCLK/[(CLKVAL+1)*2]
帧频即为VSYNC信号频率。帧频与LCDCON1和LCDCON2/3/4寄存器中的VSYNC、VBPD、VFPD、LINEVAL、HSYNC、HBPD、HFPD、HOZVAL和CLKVAL字段有关系。多数LCD驱动器需要他们自己适当的帧频。
帧频(Hz)= 1/[{(1/VCLK)*(HOZVAL+1)+(1/HCLK)*(A+B+(LINEBLANK*8))}*(LINEVAL+1)]
A = 2(4+WLH) B = 2(4+WDLY)
视频操作
S3C2440A中的TFT LCD控制器支持1、2、4或8bpp(位像素)调色显示和16或24bpp无调色真彩显示。
256色调色板
S3C2440A可以支持256色调色板给各种色彩映射的选择,以提供灵活操作给用户。
存储器数据格式(TFT)
24bpp显示
(BSWP=0,HWSWP=0,BPP24BL=0)
D[31:24] | D[23:0] | |
000H | 空位 | P1 |
004H | 空位 | P2 |
008H | 空位 | P3 |
... | ... | ... |
(BSWP=0,HWSWP=0,BPP24BL=1)
D[31:24] | D[23:0] | |
000H | P1 | 空位 |
004H | P2 | 空位 |
008H | P3 | 空位 |
... | ... | ... |
24BPP下VD引脚描述
VD | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
红 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | ||||||||||||||||
绿 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | ||||||||||||||||
蓝 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
16BPP下VD引脚描述
(5:5:5:1)
VD | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
红 | 4 | 3 | 2 | 1 | 0 | 1 | NC | |||||||||||||||||
绿 | 4 | 3 | 2 | 1 | 0 | 1 | NC | |||||||||||||||||
蓝 | 4 | 3 | 2 | 1 | 0 | 1 | NC |
(5:6:5)
VD | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
红 | 4 | 3 | 2 | 1 | 0 | NC | ||||||||||||||||||
绿 | 5 | 4 | 3 | 2 | 1 | 0 | NC | |||||||||||||||||
蓝 | 4 | 3 | 2 | 1 | 0 | NC |
8BPP显示
(BSWP=0,HWSWP=0)
D[31:24] | D[23:16] | D[15:8] | D[7:0] | |
000H | P1 | P2 | P3 | P4 |
004H | P5 | P6 | P7 | P8 |
008H | P9 | P10 | P11 | P12 |
... |
(BSWP=1,HWSWP=0)
D[31:24] | D[23:16] | D[15:8] | D[7:0] | |
000H | P4 | P3 | P2 | P1 |
004H | P8 | P7 | P6 | P5 |
008H | P12 | P11 | P10 | P9 |
... |
4BPP显示
(BWSP=0,HWSWP=0)
D[31:28] | D[27:24] | D[23:20] | D[19:16] | D[15:12] | D[11:8] | D[7:4] | D[3:0] | |
000H | P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 |
004H | P9 | P10 | P11 | P12 | P13 | P14 | P15 | P16 |
008H | P17 | P18 | P19 | P20 | P21 | P22 | P23 | P24 |
... |
(BWSP=1,HWSWP=0)
256调色板使用(TFT)
调色板配置和格式控制
S3C2440A提供了256色调色板给TFT LCD控制。用于可以在64K色中选择这2种格式256色。256色调色板256(深度)*16位SPSRAM组成。调色板支持5:6:5(R:G:B)格式和5:5:5:1(R:G:B:I)格式。当用户使用5:5:5:I格式时。
5:6:5
索引位的位置 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 地址 |
00H | R4 | R3 | R2 | R1 | R0 | G5 | G4 | G3 | G2 | G1 | G0 | B4 | B3 | B2 | B1 | B0 | 0x4D000400 |
01H | R4 | R3 | R2 | R1 | R0 | G5 | G4 | G3 | G2 | G1 | G0 | B4 | B3 | B2 | B1 | B0 | 0x4D000404 |
... | ... | ||||||||||||||||
FFH | R4 | R3 | R2 | R1 | R0 | G5 | G4 | G3 | G2 | G1 | G0 | B4 | B3 | B2 | B1 | B0 | 0x4D0007FC |
VD数 | 23 | 22 | 21 | 20 | 19 | 15 | 14 | 13 | 12 | 11 | 10 | 7 | 6 | 5 | 4 | 3 |
5:5:5:I
索引位的位置 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 地址 |
00H | R4 | R3 | R2 | R1 | R0 | G4 | G3 | G2 | G1 | G0 | B4 | B3 | B2 | B1 | B0 | I | 0x4D000400 |
01H | R4 | R3 | R2 | R1 | R0 | G4 | G3 | G2 | G1 | G0 | B4 | B3 | B2 | B1 | B0 | I | 0x4D000404 |
... | |||||||||||||||||
FFH | R4 | R3 | R2 | R1 | R0 | G4 | G3 | G2 | G1 | G0 | B4 | B3 | B2 | B1 | B0 | I | 0x4D00007FC |
VD数 | 23 | 22 | 21 | 20 | 19 | 15 | 14 | 13 | 12 | 11 | 7 | 6 | 5 | 4 | 3 |
调色板读/写
当用户执行调色板的读/写操作时,必须检查LCDCON5寄存器HSTATUS和VSTATUS,在HSTATUS和VSTATUS的ACTIVE状态期间,禁止读/写操作。
临时调色板配置
S3C2440A允许用户无需进行复杂的更改来单色填充帧,只需要填充单色到帧缓冲器或调色板。通过写入一个在LCD面板上显示的颜色的值来之时单色帧到TPAL寄存器的TPALVAL并且是能TPALEN。
虚拟显示(TFT/STN)
S3C2440A支持硬件水平或垂直滚屏。要实现滚屏,需要改变LCDSADDR1/2寄存器中LCDBASEU和LCDBASEL的字段。删除PAGEWIDTH和OPFFSIZE的值。储存在视频缓冲器中的图像应该在尺寸上大于LCD面板的屏幕。
LCD电源使能(STN/TFT)
S3C2440A提供了电源使能PWREN功能。当PWREN设置为是的PWREN信号使能时,LCD_PWREN引脚的输出值被ENVID控制。换句话说,如果LCD_PWREN引脚连接了LCD面板的电源开/关控制引脚,LCD面板的电源将自动的由ENVID的设置来控制。
S3C2440A同样支持INVPWREN位来反转PWREN信号的极性。VI功能只在当LCD面板拥有其自己的电源开/关控制端口并且当端口连接到LCD_PWREN引脚时才可用。
LCD控制器特殊寄存器
LCD控制1寄存器
寄存器 | 地址 | R/W | 描述 | 复位值 |
LCDCON1 | 0x4D000000 | R/W | LCD控制1寄存器 | 0x00000000 |
LCDCON1 | 位 | 描述 | 初始状态 |
LINECNT(只读) | [27:18] | 提供行计数器的状态,从LINEVAL递减计数到0. | 00000000 |
CLKVAL | [17:8] | 决定VCLK的频率和CLKVAL[9:0] STN: VCLK = HCLK/(CLKVAL*2) (CLKVAL>=2) TFT: VCLK=HCLK/((CLKVAL+1)*2) (CLKVAL>=0) | 0 |
MMODE | [7] | 决定VM的触发频率 0 = 每帧 1 = 由MVAL定义此频率 | 0 |
PNRMODE | [6:5] | 决定显示模式 00 = 4位双扫描显示模式(STN) 01 = 4位单扫描显示模式(STN) 10 = 8位单扫描显示模式(STN) 11 =TFT LCD | 0 |
BPPMODE | [4:1] | 选择BPP(位每像素)模式 | 0 |
ENVID | [0] | LCD视频输出和逻辑使能/禁止 0 = 禁止视频输出和LCD控制信号 1 = 允许视频输出和LCD控制信号 | 0 |
LCD控制2寄存器
寄存器 | 地址 | R/W | 描述 | 复位值 |
LCDCON2 | 0x4D000004 | R/W | LCD控制2寄存器 | 0x00000000 |
LCDCON2 | 位 | 描述 | 初始状态 | |
VBPD | [31:24] | TFT:垂直后沿为帧开始时,垂直同步周期后的无效行数。 STN:STNLCD时应该设置此位为0。 | 0x0 | |
LINEVAL | [24:14] | TFT/STN:此位决定了LCD面板的垂直尺寸 | 0x0 | |
VFPD | [13:6] | TFT:垂直前沿为帧结束时,垂直同步周期前的无效行数。 STN:STN LCD时应该设置此位为0。 | 0x0 | |
VSPW | [5:0] | TFT:通过计算无效行数垂直同步脉冲宽度决定VSYNC脉冲的高电平宽度。 STN:STN LCD时应该设置此位为0。 | 0x0 |
LCD控制3寄存器
寄存器 | 地址 | R/W | 描述 | 复位值 |
LCDCON3 | 0x4D000008 | R/W | LCD控制3寄存器 | 0x0000000 |
LCDCON3 | 位 | 描述 | 初始状态 | |
HBPD(TFT) | [25:19] | TFT:水平后沿为HSYNC的下降沿与有效数据的开始之间的VCLK周期数 | 0 | |
WDLY(STN) | STN: | |||
HOZVAL | [18:8] | 此位决定了LCD面板的水平尺寸,必须决定HOZVAL来满足1行的总字节为4n字节,如果单色模式中LCD的x尺寸为120个点,但不能支持x=120,因为1行是由16个字节所组成。LCD面板驱动器将舍弃额外的8个点。 | 0 | |
HFPD(TFT) | [7:0] | TFT:水平前沿为HSYNC的下降沿与有效数据的开始之间的VCLK周期数 | 0 | |
LINEBLANK(STN) |
LCD控制4寄存器
LCD控制5寄存器
帧缓冲器开始地址1寄存器
帧缓冲器开始地址2寄存器
帧缓冲器开始地址3寄存器
红色查找表寄存器
绿色查找表寄存器
蓝色查找表寄存器
抖动模式寄存器
临时调色板寄存器
LCD中断挂起寄存器
LCD源挂起寄存器
LCD中断屏蔽寄存器
TCN控制寄存器