s3c2440LCD控制器设置及代码详解

上传人:大米 文档编号:498194515 上传时间:2023-02-12 格式:DOC 页数:8 大小:306KB
返回 下载 相关 举报
s3c2440LCD控制器设置及代码详解_第1页
第1页 / 共8页
s3c2440LCD控制器设置及代码详解_第2页
第2页 / 共8页
s3c2440LCD控制器设置及代码详解_第3页
第3页 / 共8页
s3c2440LCD控制器设置及代码详解_第4页
第4页 / 共8页
s3c2440LCD控制器设置及代码详解_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《s3c2440LCD控制器设置及代码详解》由会员分享,可在线阅读,更多相关《s3c2440LCD控制器设置及代码详解(8页珍藏版)》请在金锄头文库上搜索。

1、s3c2440 LCD 控制器设置及代码详解要使一块 LCD 正常的显示文字或图像,不仅需要 LCD 驱动器,而且还需要相应的 LCD 操纵器。在通常情形下,生产厂商把 LCD 驱动器会以 COF/COG 的 形式与 LCD 玻璃基板制作在一起,而 LCD 操纵器则是由外部的电路来实现,现在专门多的 MCU 内部都集成了 LCD 操纵器,如S3C2410/2440等。通 过 LCD 操纵器就能够产生 LCD 驱动器所需要的操纵信号来操纵 STN/TFT 屏了。2. S3C2440内部 LCD 操纵器结构图:我们按照数据手册来描述一下那个集成在S3C2440内部的 LCD 操纵器:a:LCD 操

2、纵器由 REGBANK 、LCDCDMA 、TIMEGEN 、VIDPRCS 寄存器组成;b:REGBANK 由 17 个可编程的寄存器组和一块256*16 的调色板内存组成,它们用来配置LCD 操纵器的;c:LCDCDMA 是一个专用的DMA ,它能自动地把在侦内存中的视频数据传送到 LCD 驱动器,通过使用那个 DMA 通道,视频数据在不需要 C PU 的干预的情形下显示在 LCD 屏上;d:VIDPRCS 接收来自 LCDCDMA 的数据,将数据转换为合适的数据格式,例如讲 4/8 位单扫, 4 位双扫显示模式,然后通过数据端口 VD23:0 传送视频数据到 LCD 驱动器;e:TIME

3、GEN 由可编程的逻辑组成, 他生成 LCD 驱动器需要的操纵信号,例如 VSYNC 、HSYNC 、VCLK 和 LEND 等等,而这些操纵 信号又与REGBANK 寄存器组中的LCDCON1/2/3/4/5 的配置紧密有关,通过不同的配置,TIMEGEN 就能产生这些信号的不同形状,从而支持不同的 LCD 驱动器 (即不同的 STN/TFT 屏)。3. 常见 TFT 屏工作时序分析:LCD 提供的外部接口信号:VSYNC/VFRAME/STV:垂直同步信号 (TFT)/ 帧同步信号 (STN)/SEC TFT 信号 ;HSYNC/VLINE/CPV:水平同步信号 (TFT)/ 行同步脉冲信

4、号 (STN)/SEC TFT 信号;VCLK/LCD_HCLK:象素时钟信号 (TFT/STN)/SEC TFT 信号;VD23:0 :LCD像素数据输出端口 (TFT/STN/SEC TFT);VDEN/VM/TP:数据使能信号 (TFT)/LCD 驱动交流偏置信号 (STN)/SEC TFT 信号;LEND/STH:行终止信号 (TFT)/SEC TFT 信号;LCD_LPCOE:SEC TFT OE信号;LCD_LPCREV:SEC TFT REV信号;LCD_LPCREVB:SEC TFT REVB信号。所有显示器显示图像的原理差不多上从上到下,从左到右的。这是什么意思呢?这么讲吧,

5、一副图像能够看做是一个矩形,由专门多排列整齐的点一行一行组成,这些点称之为像素。那么这幅图在LCD 上的显示原理确实是:A:显示指针从矩形左上角的第一行第一个点开始,一个点一个点的在LCD上显示,在上面的时序图上用时刻线表示就为VCLK,我们称之为像素时钟信号;B:当显示指针一直显示到矩形的右边就终止这一行,那么这一行的动作在上面的时序图中就称之为1 Line ;C:接下来显示指针又回到矩形的左边从第二行开始显示,注意,显示指针在从第一行的右边回到第二行的左边是需要一定的时刻的,我们称之为行切换;D:如此类推,显示指针就如此一行一行的显示至矩形的右下角才把一副图显示完成。因此,这一行一行的显示

6、在时刻线上看,确实是时序图上的HSYNC;E:然 而, LCD的显示并不是对一副图像快速的显示一下,为了连续和稳固的在LCD上显示,就需要切换到另一幅图上 ( 另一幅图能够和上一副图一样或者不一样,目 的只是为了将图像连续的显示在 LCD上) 。那么这一副一副的图像就称之为帧,在时序图上就表示为1 Frame,因此从时序图上能够看出1 Line只是 1 Frame 中的一行;F:同样的,在帧与帧切换之间也是需要一定的时刻的,我们称之为帧切换,那么LCD整个显示的过程在时刻线上看,就可表示为时序图上的VSYNC。上面时序图上各时钟延时参数的含义如下: (这些参数的值, LCD 产生厂商会提供相应

7、的数据手册 )VBPD(vertical back porch) :表示在一帧图像开始时,垂直同步信号以后的无效的行数,对应驱动中的 upper_margin ;VFBD(vertical front porch):表示在一帧图像终止后,垂直同步信号往常的无效的行数,对应驱动中的lower_margin ;VSPW(vertical sync pulse width) :表示垂直同步脉冲的宽度,用行数运算,对应驱动中的 vsync_len ;HBPD(horizontal back porch) :表示从水平同步信号开始到一行的有效数据开始之间的 VCLK的个数,对应驱动中的 left_mar

8、gin ;HFPD(horizontal front porth):表示一行的有效数据终止到下一个水平同步信号开始之间的 VCLK的个数,对应驱动中的right_margin;HSPW(horizontal sync pulse width):表示水平同步信号的宽度,用VCLK运算,对应驱动中的 hsync_len ;关于以上这些参数的值将分别储存到REGBANK 寄存器组中的 LCDCON1/2/3/4/5 寄存器中:(对寄存器的操作请查看S3c2440数据手册 LCD 部分)LCDCON1:17- 8 位 CLKVAL6 - 5 位扫描模式 ( 关于 STN屏 :4 位单 / 双扫、 8

9、位单扫 )4 - 1 位色位模式 (1BPP、8BPP、16BPP等) LCDCON2:31 - 24 位 VBPD23 - 14 位 LINEVAL13 -6 位VFPD5 -0 位VSPW LCDCON3:25 - 19 位 HBPD18 - 8 位 HOZVAL7 -0 位HFPDLCDCON4: 7 - 0位 HSPWLCDCON5:4. 帧缓冲 (FrameBuffer):帧缓冲是 Linux 为显示设备提供的一个接口,它把一些显示设备描述成一个缓冲区,承诺应用程序通过 FrameBuffer 定义好的接口访咨询这些图形设备,从而不用去关怀具体的硬件细节。关于帧缓冲设备而言,只要在显

10、示缓冲区与显示点对应的区域写入颜色 值,对应的颜色就会自动的在屏幕上显示。下面来看一下在不同色位模式下缓冲区与显示点的对应关系:下面看看 2440test 里面的 lcd.c 文件static void PutPixel(U32 x,U32 y,U16 c)if(xSCR_XSIZE & ySCR_YSIZE)LCD_BUFFER(y)(x) = c;专门容易发觉 TFT LCD 上显示单个像素的函数实际上专门简洁看来看起来只需要LCD_BUFFER(y)(x)= c 这一句话下面就来分析下,是如何通过这一句话来实现在LCD 上显示单个像素的先分析下 LCD_Init() 即 LCD 初始化函

11、数rLCDCON1 = (LCD_PIXCLOCK 8) | (3 5) | (12 =0 )MMODE7= 0PNRMODE6:5= 11TFT LCD panelBPPMODE4:1= 110016bpp for TFTENVID0 = 0DisablerLCDCON2 = (LCD_UPPER_MARGIN 24) | (LCD_HEIGHT - 1) 14) | (LCD_LOWER_MARGIN 6) | (LCD_VSYNC_LEN 0);LCDCON2 0x4d000004VBPD = 1VBPD(vertical back porch):表示在一帧图像开始时,垂直同步信号以后的

12、无效的行数,对应驱动中的 upper_marginLINV AL = 240 1LINV AL :LCD 屏的垂直大小VFPD = 5VFPD(vertical front porch):表示在一帧图像终止后,垂直同步信号往常的无效的行数,对应驱动中的 lower_marginVSPW = 1VSPW(vertical sync pulse width) :表示垂直同步脉冲的宽度, 用行数运算,对应驱动中的 vsync_lenrLCDCON3 = (LCD_RIGHT_MARGIN 19) | (LCD_WIDTH - 1) 8) |(LCD_LEFT_MARGIN 0);LCDCON3 0x

13、4d000008HBPD = 36HBPD(horizontal back porch):表示从水平同步信号开始到一行的有效数据开始之间的VCLK 的个数,对应驱动中的left_marginHOZVAL = 320 1HOZVAL : LCD 屏的水平大小HFPD = 19HFPD(horizontal front porth):表示一行的有效数据终止到下一个水平同步信号开始之间的 VCLK 的个数,对应驱动中的 right_marginrLCDCON4 = (13 8) | (LCD_HSYNC_LEN 0);LCDCON4 0x4d00000cMVAL = 13HSPW = 5HSPW(horizontal sync pulse width) :表示水平同步信号的宽度,用 V CLK 运算,对应驱动中的 hsync_len#

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 幼儿/小学教育 > 幼儿教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号