lcd 控制器
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 控制器的更多相关文章
- S5PV210的LCD控制器详解
1.FIMD结构框图 (1)Samsung的s5pv210的LCD控制器叫做FIMD(也叫显示控制器).Display controller(显示控制器)包括用于将图像数据从相机接口控制器的本 地总线 ...
- ARM 之LCD和LCD控制器
既然提到 了LCD那么我们首先必须要了解的就是他的种类,CD(liquid crystal display), 即液晶显示器,是这一种采用了液晶控制透光度计数来实现色彩的显示器,他与传统的CRT显示 ...
- JZ2440 裸机驱动 第13章 LCD控制器(2)
13.2 TFT LCD显示实例 13.2.1 程序设计 本实例的目的是从串口输出一个菜单,从中选择各种方法进行测试,比如画线. 画圆.显示单色.使用调色板等. 13.2.2代码详解 ...
- JZ2440 裸机驱动 第13章 LCD控制器(1)
本章目标 了解LCD显示器的接口及时序: 掌握S3C2410/S3C2440 LCD控制器的使用方法: 了解帧缓冲区的概念,掌握如何设置帧缓冲区来显示图像: 13.1 LCD和LCD控制器 13.1 ...
- Linux 2440 LCD 控制器【转】
转自:http://www.cnblogs.com/armlinux/archive/2011/01/14/2396864.html 嵌入式Linux之我行,主要讲述和总结了本人在学习嵌入式linux ...
- LCD控制器与帧率、刷新率的关系分析
源:LCD控制器与帧率.刷新率的关系分析 LCM之Fmark功能 && LCD控制器同LCD驱动器的差别 && 帧率与刷新率的关系 && OLED背光
- 【STM32H7教程】第50章 STM32H7的LCD控制器LTDC基础知识和HAL库API
完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第50章 STM32H7的LCD控制器LTDC基础 ...
- LCD控制器与驱动器
这回我再讲讲从 MCU 到 LCD 之间是怎样一个控制流程,即我们的位图数据是怎样显示到 LCD 上的.前面我们了解到 LCD 显示是用动态扫描的方式来实现的,每次显示一整行,在一帧里每行一次扫描一遍 ...
- LCD编程_LCD控制器
CLKVAL : VCLK = HCLK / [(CLKVAL+1) x 2]--------> CLKVAL = HCLK/VCLK/2-1 在这个地方HCLK=100M,那么VLCK等于多少 ...
随机推荐
- jquery 弹框,确定、取消
function del(id, url) { var bool = confirm("确定删除?") if (bool) { //点击确定后操作 var Urls = " ...
- Nginx配置跨域请求“Access-Control-Allow-Origin”
当出现403跨域错误的时候 No 'Access-Control-Allow-Origin' header is present on the requested resource,需要给Nginx服 ...
- Js中,Map对象的使用
1.定义 键/值对的集合. 2.语法 mapObj = new Map() 3.备注 集合中的键和值可以是任何类型.如果使用现有密钥向集合添加值,则新值会替换旧值. 4.属性 构造函数 :指定创建映射 ...
- HDU1847 Good Luck in CET-4 Everybody 博弈 SG函数
题意:给定n张牌,两个人轮流摸牌,每次摸牌张数为2的幂次,问先手胜还是后手胜 n≤1000 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1847 # ...
- js中script的上下放置区别 , Dom的增删改创建
回顾 javascript分为三部分: 1.ECMAScript5.0 es6(阮一峰) es7 es8 es6中有类的概念 声明变量 var let(es6中语法) 内置函数 Date Math.r ...
- 30.纯 CSS 创作一个晃动的公告板
原文地址:https://segmentfault.com/a/1190000014983030 感想: 绝对定位+动画 HTML代码: <div class="signboard&q ...
- 《汇编语言 基于x86处理器》第十二章浮点数部分的代码
▶ 书中第十二章的程序,主要讲了 FPU 的指令和浮点数计算的过程 ● 代码,简单的 32 为浮点数测试 INCLUDE Irvine32.inc INCLUDE macros.inc .data f ...
- CKEditor 5
1.官网 https://ckeditor.com/ckeditor-5/download/ 2.
- Linux 目录栈及目录切换
使用 cd - (中杠)会切换到上一次的目录 cd 命令会改变目录栈 1.dirs 1)功能显示当前目录栈中的所有记录(不带参数的dirs命令显示当前目录栈中的记录) 2)语法(1)格式:dirs ...
- CSS内容简单总结
day50 1. 内容回顾 1. 伪类和伪元素 1. 伪类 1. :link 2. :visited 3. :hover ...