S3C2440 之LCD控制器

概述:

 

方框图

LCD控制器是用于传输视频数据信号VD[0..23]和产生必要的控制信号,如VFRAM、VLINE、VCLK、VM等等。LCD控制器包括REGBANK、LCDCDMA、VIDPRCS、TIMGEN、LPC3600。

REGBANK:有17个可编程寄存器和用于配置LCD控制器的256 * 16调色存储器。

LCDCDMA:专用于DMA,它可以自动从帧存储器到LCD视屏存储器传输数据,屏幕显示数据无需CPU的参与。

VIDPRCS:接受来自LCDCDMA的视屏数据,将其转化为适当的格式,然后通过VD[0..23]数据输出

TIMGEN:可由可编程逻辑组成来支持发现不同LCD驱动器的一般接口时序和速率的变化需要,产生VFRAM、VLINE、VCLK

VM:帮助LCD驱动器交替用于开启和关闭像素的行、列电压的极性

数据流描述:

 

STN LCD控制器操作

时序发生器(TIMEGEN):产生LCD驱动器的控制信号,VFRAM,VLINE, VCLK, VM,这些信号的配置与REGBANK中的LCDCON1\2\3\4\5寄存器配置有着紧密关系。

VM信号的触发率取决与LCDCON1寄存器的MMODE位和LCDCON4寄存器的MVAL[7...0]字段,如果MMODE=0,配置为每帧触发;如果MMODE=1,则由MVAL[7...0]触发。

VM频率 = VLINE频率/(2 * MVAL)

VFRAM、VLINE脉冲发生取决于LCDCON2\3寄存器中的HOZVAL和LINEVAL字段配置,每个字段又与LCD大小和像素显示模式有关

HOZVAL = (水平显示大小 /  有效VD像素)- 1(彩色模式中:水平显示大小 = 3 * 水平像素数)

LINEVAL = (虚拟显示大小) -  1 (单扫描显示模式),LINE = (虚拟显示大小 / 2)   - 1(双扫描模式)

VCLK信号速率 取决于LCDCON1寄存器中的CLKVAL字段的配置,CLKVAL最小字段为2

VCLK(HZ) = HCLK /(CLKVAL * 2)

帧频VFRAM

 

视频操作

 S3C2440 LCD控制器支持8位色模式(256色模式),12为色模式(4096色模式),4阶灰度模式,16阶灰度模式和单色模式。

查找表

 S3C2440能支持查找表给彩色和灰色映射的各种选择

灰度模式选择

S3C2440 LCD控制器支持2种灰度模式:2位每像素灰度(4阶灰度)和四位每像素灰度(16阶灰度),两种像素都是查找表BLUELUT(搞不清楚阶灰度是什么意思?)

256色模式操作

S3C2440控制器能支持8位每像素256色模式,编码8位分别为 3为给红色,3位给绿色,2为给蓝色,每个查找表是使用REDLUT寄存器的REDVAL[31...0],GREENLUT寄存器的GREENVAL[31...0],BLUELUT寄存器的BLUEVAL[15...0]

 

4096级色模式

12位每像素被编码为4位给红色,4位给绿色,4位给蓝色

抖动和帧频控制

显示类型

LCD控制支持支持3种LCD驱动器类型:

4位双扫描,

4位单扫描,8位单扫描显示模式

时序要求:

 

TFT LCD 日后在分析...

 

TFT LCD寄存器配置

void Lcd_Init(void)
{
 rGPCUP  = 0x00000000;
 rGPCCON = 0xaaaa02a9;
 
 rGPDUP  = 0x00000000;
 rGPDCON=0xaaaaaaaa; //Initialize VD[15:8]

 rLCDCON1=(CLKVAL_TFT<<8)|(MVAL_USED<<7)|(3<<5)|(12<<1)|0;
     // TFT LCD panel,12bpp TFT,ENVID=off
 rLCDCON2=(VBPD<<24)|(LINEVAL_TFT<<14)|(VFPD<<6)|(VSPW);
 rLCDCON3=(HBPD<<19)|(HOZVAL_TFT<<8)|(HFPD);
 rLCDCON4=(MVAL<<8)|(HSPW);
 rLCDCON5 = (1<<11) | (0<<10) | (1<<9) | (1<<8) | (0<<7) | (0<<6) | (1<<3)  |(BSWP<<1) | (HWSWP);

 rLCDSADDR1=(((U32)LCD_BUFFER>>22)<<21)|M5D((U32)LCD_BUFFER>>1);
 rLCDSADDR2=M5D( ((U32)LCD_BUFFER+(SCR_XSIZE_TFT*LCD_YSIZE_TFT*2))>>1 );
 rLCDSADDR3=(((SCR_XSIZE_TFT-LCD_XSIZE_TFT)/1)<<11)|(LCD_XSIZE_TFT/1);
 rLCDINTMSK|=(3); // MASK LCD Sub Interrupt
 rTCONSEL &= (~7) ;     // Disable LPC3480
 rTPAL=0; // Disable Temp Palette
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值