1. 使用lcd 一般需要一个控制器和驱动器,控制器需要初始化以产生正确的时序,驱动器一般是和lcd基板制作在一起。

LCD 控制器结构图:

  REGBANK 表示调色板

  LCDDMA 表示DMA通道

2. lcd控制器相关时序图如下

VSPW 表示 VSYNC 的脉冲宽度为 (VSPW+1) 个 HSYNC 信号。

VBPD  表示经过 (VBPD+1) 个 HSYNC 信号,数据行有效

VFPD  表示(VFPD + 1) 个无效行

HSPW 表示 HSYNC 的脉冲宽度为 (HSPW+1) 个 VCLK 信号。

HBPD 表示经过 (HBPD+1) 个 VCLK 信号,像素数据有效

HFPD 表示(HFPD + 1) 个无效像素

3. lcd 显示芯片时序图

4. VCLK 的获得

设置时钟来源为 HCLK=133MHz ,又由计算公式

而从 3 中可以得到VCLK的典型值为 9MHz ,HCLK = 133 MHz ,所以 CLKVAL_F =  13.77 约为 14。

5. lcd 接口信号设置,以上时序图可总结如下:

6. 初始化代码:

S3C6410 手册上的初始化流程如下所示:

代码:

/*lcd 信号计算分配*/
#define VSPW 9
#define VBPD 1
#define LINEVAL 271
#define VFPD 1 #define HSPW 40
#define HBPD 1
#define HOZVAL 479
#define HFPD 1 /*计算分配视口数据*/
#define LeftTopX 0
#define LeftTopY 0 #define RightBotX 479
#define RightBotY 271 /*分配帧缓存地址*/
#define FRAME_BUFFER void lcd_init(void)
{
/* 1. 查阅硬件电路原理图,设置相关GPIO引脚用于LCD */
GPICON = 0xaaaaaaaa; /* gpi0~gpi15用作lcd_vd[0~15] */
GPJCON = 0xaaaaaa; /* gpj0~gpi11用作lcd_vd[16~23]和VDEN/VSYNC/HSYNC/VCLK */ GPFCON &= ~(0x3<<);
GPFCON |= (<<); /* GPF14 output用作背光使能信号 CLKOUT*/ // GPECON &= ~(0xf);
// GPECON |= (0x1); /* GPE0用作LCD的on/off信号 */ /* 2. 初始化6410的display controller
* 2.1 hsync,vsync,vclk,vden的极性和时间参数
* 2.2 行数、列数(分辨率),象素颜色的格式
* 2.3 分配显存(frame buffer),写入display controller
*/ MIFPCON &= ~(<<); /* Normal mode SEL_BYPASS[3]=0*/ SPCON &= ~(0x3); /**/
SPCON |= 0x1; /*LCD_SEL = 01 设置为RGB I/F style */ VIDCON0 &= ~((<<) | (<<) | (0xff<<) | (<<)); /* RGB I/F, RGB Parallel format, */
VIDCON0 |= ((<<) | (<<) ); /* vclk== HCLK / (CLKVAL+1) = 133/15 = 9MHz */ VIDCON1 &= ~((<<) | (<<)); /* 在vclk的下降沿获取数据 ,VDEN 高电平*/
VIDCON1 |= ((<<) | (<<)); /* HSYNC高电平有效, VSYNC高电平有效 */ VIDTCON0 = (VBPD << ) | (VFPD << ) | (VSPW << ); /*设置LCD信号的值*/
VIDTCON1 = (HBPD << ) | (HFPD << ) | (HSPW << );
VIDTCON2 = (LINEVAL << ) | (HOZVAL << ); WINCON0 &= ~(0xf << );
WINCON0 |= (0xb<<); /* unpacked 24 BPP (non-palletized R:8-G:8-B:8 ) */ VIDOSD0A = (LeftTopX<<) | (LeftTopY << );/*视口位置设置*/
VIDOSD0B = (RightBotX<<) | (RightBotY << );
VIDOSD0C = (LINEVAL + ) * (HOZVAL + ); /* WINDOWS'0 size is 272 * 480 (word)*/ VIDW00ADD0B0 = FRAME_BUFFER; /*帧缓存起始地址*/
VIDW00ADD1B0 = (((HOZVAL + )* + ) * (LINEVAL + )) & (0xffffff);/*帧缓存大小*/ /* 帧缓存与视口设置
*VBASEL = VBASEU + (LINEWIDTH+OFFSIZE) x (LINEVAL+1)
* = 0 + (480*4 + 0) * 272
* =
* 4 表示一个像素32位,即 4 个字节
*/ }

lcd 控制器的更多相关文章

  1. S5PV210的LCD控制器详解

    1.FIMD结构框图 (1)Samsung的s5pv210的LCD控制器叫做FIMD(也叫显示控制器).Display controller(显示控制器)包括用于将图像数据从相机接口控制器的本 地总线 ...

  2. ARM 之LCD和LCD控制器

    既然提到 了LCD那么我们首先必须要了解的就是他的种类,CD(liquid crystal  display), 即液晶显示器,是这一种采用了液晶控制透光度计数来实现色彩的显示器,他与传统的CRT显示 ...

  3. JZ2440 裸机驱动 第13章 LCD控制器(2)

    13.2 TFT LCD显示实例 13.2.1 程序设计     本实例的目的是从串口输出一个菜单,从中选择各种方法进行测试,比如画线. 画圆.显示单色.使用调色板等. 13.2.2代码详解     ...

  4. JZ2440 裸机驱动 第13章 LCD控制器(1)

    本章目标  了解LCD显示器的接口及时序: 掌握S3C2410/S3C2440 LCD控制器的使用方法: 了解帧缓冲区的概念,掌握如何设置帧缓冲区来显示图像: 13.1 LCD和LCD控制器 13.1 ...

  5. Linux 2440 LCD 控制器【转】

    转自:http://www.cnblogs.com/armlinux/archive/2011/01/14/2396864.html 嵌入式Linux之我行,主要讲述和总结了本人在学习嵌入式linux ...

  6. LCD控制器与帧率、刷新率的关系分析

    源:LCD控制器与帧率.刷新率的关系分析 LCM之Fmark功能 && LCD控制器同LCD驱动器的差别 && 帧率与刷新率的关系 && OLED背光

  7. 【STM32H7教程】第50章 STM32H7的LCD控制器LTDC基础知识和HAL库API

    完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第50章       STM32H7的LCD控制器LTDC基础 ...

  8. LCD控制器与驱动器

    这回我再讲讲从 MCU 到 LCD 之间是怎样一个控制流程,即我们的位图数据是怎样显示到 LCD 上的.前面我们了解到 LCD 显示是用动态扫描的方式来实现的,每次显示一整行,在一帧里每行一次扫描一遍 ...

  9. LCD编程_LCD控制器

    CLKVAL : VCLK = HCLK / [(CLKVAL+1) x 2]--------> CLKVAL = HCLK/VCLK/2-1 在这个地方HCLK=100M,那么VLCK等于多少 ...

随机推荐

  1. Jquery ajax 参数 详解

    Jquery ajax 参数主要如下: url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get ...

  2. 打jar包的几种方式

    测试用类public class Hello {    public static void main(String[] args) {        System.out.println(" ...

  3. 数据库设计和ER模型-------之数据库系统生存期(第二章)

    数据库设计 概念:开发人员利用开发环境表达用户要求.设计构造最优的数据模型,然后据此建立数据库以及其应用系统,这个过程称为数据库设计 数据库生存期 1968年首次提出“软件工程”的概念 概念:我们把数 ...

  4. [Unity动画]03.动画事件

    1.找到动画,添加动画事件 2.在脚本中添加回调方法 TestAnimator.cs using UnityEngine; public class TestAnimator : MonoBehavi ...

  5. 在虚拟机中安装ubuntu

    初始安装: 1.安装新虚拟机时,选择稍后安装操作系统,这可以自己设置语言等信息 2.修改自定义硬件:为网卡生成一个mac地址,(这里需要注意,有时网卡会冲突,导致连接时好时坏,以后可以删除掉网卡,重新 ...

  6. 错误代码: 1231 - Variable 'sql_mode' can't be set to the value of 'NULL'

    错误代码: 1231 - Variable 'sql_mode' can't be set to the value of 'NULL' 错误代码: - Variable 'sql_mode' can ...

  7. node-disconf-client基本配置

    node-disconf-client 需要cppm install node-disconf-client var  disconf  = require (' node-disconf-clien ...

  8. ssm学习的第一个demo---crm(1)

    这是一个普通的CRM项目 (第一步规划好项目设计路线:导入jar包→配置sqlMapConfig.xml(空文件)→配置applicationContext.xml →配置springMVC.xml→ ...

  9. idea 添加 VUE 的语法支持和开发

    <一>VUE的开发分两种,一种是直接在HTML文件中使用,一种是VUE文件的形式开发 1,首先我们先让 HTML 文件支持 VUE 的语法指令提示 2,File -> Setting ...

  10. chrome也可以整张网页截图,保存完整网页为图片

    转自:http://www.webkaka.com/blog/archives/chrome-save-a-webpage.html 关于浏览器截图,一直以为Chrome无能为力,最近发现,原来Chr ...