第12章LCD接口设计

Download Report

Transcript 第12章LCD接口设计

ARM嵌入式体系结构与接口技术
第12章 LCD接口设计
课程安排:
第1章 嵌入式系统基础知识
 第2章 ARM技术概述
 第3章 ARM的指令系统
 第4章 ARM汇编语言程序设计
 第5章 ARM Realview MDK集成开发环境
 第6章 GPIO编程
 第7章 ARM异常中断处理及编程
 第8章 串行通信接口

2
课程安排:
第9章 存储器接口
 第10章 定时器
 第11章 A/D转换器
 第12章 LCD接口设计
 第13章 温度监测仪开发实例

3
本章课程:

12.1 LCD控制器
 12.2 接口电路与程序设计
 12.3 小结
 12.4 思考与练习
4
12.1 LCD控制器

12.1.1 LCD控制器介绍



液晶屏(LCD:Liquid Crystal Display)即人们常说的液
晶显示器
液晶显示屏按显示原理分为STN 和TFT 两种:
STN(Super Twisted Nematic,超扭曲向列)液晶屏


TFT(Thin Film Transistor,薄膜晶体管)彩色液晶屏


现在大多数笔记本电脑都使用TFT显示屏,也常用于主流台式显
示器
液晶屏的显示要求设计专门的驱动与显示控制电路

5
单色液晶屏及灰度液晶屏都是STN 液晶屏
驱动电路包括提供液晶屏的驱动电源和液晶分子偏置电压,以及
液晶显示屏的驱动逻辑;显示控制部分可由专门的硬件电路组成
,也可以采用集成电路(IC)模块
12.1 LCD控制器

12.1.2 S3C2410X LCD控制器介绍

6
S3C2410X LCD 控制器用于传输显示数据和产生控制信
号,支持屏幕水平和垂直滚动显示,数据的传送采用
DMA(直接内存访问)方式 ,支持STN和TFT显示器
12.1 LCD控制器

12.1.2 S3C2410X LCD控制器介绍

1、STN LCD显示器





7
支持3种类型的扫描方式:4位单扫描,4位双扫描和8位单扫描
支持256色和4096色彩色STN LCD
典型的实际屏幕大小是:640×480,320×240,160×160等
最大虚拟屏幕占内存大小为4M字节
256色模式下最大虚拟屏幕大小:4096×1024, 2048×2048,
1024×4096等
12.1 LCD控制器

12.1.2 S3C2410X LCD控制器介绍

2、TFT LCD显示控制器性能







8
支持1,2,4或8bpp彩色调色显示
支持16bpp和24bpp非调色真彩显示
在24bpp模式下,最多支持16M种颜色
支持多种屏幕大小
典型的实际屏幕大小是: 640×480, 320×240, 160×160等
最大虚拟屏幕占内存大小为4M字节
64K色模式下最大虚拟屏幕大小:2048×1024等
12.1 LCD控制器

12.1.2 S3C2410X LCD控制器介绍

3、LCD外部接口信号










9
VFRAME/VSYNC/STV:LCD控制器和LCD驱动器之间的帧同步信号
VLINE/HSYNC/CPV:LCD控制器和LCD驱动器间的同步脉冲信号
VCLK/LCD_HCLK:此信号为LCD控制器和LCD驱动器之间的时钟信号
VD[23:0]:LCD像素数据输出端口
VM/VDEN/TP:对于STN屏来说,它是LCD显示的开关控制信号。对于
TFT屏来说,它是数据信号的使能信号
LEND/STH:行结束信号(通常可以不用使能这个信号)
LCD_PWREN:LCD 电源使能
LCDVF0:SEC TFT 信号OE
LCDVF1:SEC TFT 信号REV
LCDVF2:SEC TFT 信号REVB
12.1 LCD控制器

12.1.3 S3C2410X LCD控制器操作

主要讲解16位色的TFT屏操作方法:








10
TIMEGEN(脉冲发生器)产生适合LCD 驱动器的各种控制信号
,如VSYNC, HSYNC, VCLK, VDEN,和LEND 等信号
VSYNC 和HSYNC 取决于HOZVAL 与LINEVAL
HOZVAL = (水平显示尺寸) -1
LINEVAL = (垂直显示尺寸) -1
VCLK 的速率取决于寄存器LCDCON1 中CLKVAL 的值
VCLK(Hz) = HCLK/[(CLKVAL+1)x2]
帧频即为VSYNC信号的频率
帧频与控制寄存器LCDCON1及LCDCON2/3/4 中的VSYNC、
VBPD、VFPD、LINEVAL、HSYNC、HBPD、HFPD、HOZVAL
和CLKVAL 有关联
12.1 LCD控制器

12.1.3 S3C2410X LCD控制器操作

典型的TFT液晶显示屏的扫描时序
①
②
③
④
⑤
11
帧同步(VSYNC) 用于表示一帧的起始
行同步(HSYNC) 用于表示一行的起始
时钟(VCLK)时钟信号
数据有效控制(VDEN) 数据有效信号
数据信号(VD) 表示每个像素点的数据信号,有1、2、4、8、
12、16、24位等模式
12.1 LCD控制器

12.1.4 LCD控制器寄存器


LCD控制器的相关寄存器共用16个
其中和TFT屏显示相关的有:







12
5个LCD控制寄存器
2个帧缓冲开始地址寄存器
1个实际屏地址寄存器
1个零时调色板寄存器
中断屏蔽寄存器
中断源挂起寄存器
中断挂起寄存器
12.1 LCD控制器

12.1.4 LCD控制器寄存器

13
1、LCD控制器LCDCON1(地址:0x4D000000)
12.1 LCD控制器

12.1.4 LCD控制器寄存器

14
2、LCD控制器LCDCON2(地址:0x4D000004)
12.1 LCD控制器

12.1.4 LCD控制器寄存器

15
3、LCD控制器LCDCON3(地址:0x4D000008)
12.1 LCD控制器

12.1.4 LCD控制器寄存器

16
4、LCD控制器LCDCON4(地址:0x4D00000C)
12.1 LCD控制器

12.1.4 LCD控制器寄存器

17
5、LCD控制器LCDCON5(地址:0x4D000010)
12.1 LCD控制器

12.1.4 LCD控制器寄存器

18
5、LCD控制器LCDCON5(地址:0x4D000010)
12.1 LCD控制器

12.1.4 LCD控制器寄存器

19
6、帧缓冲区起始地址寄存器LCDSADDR1(地址:
0x4D000014)
12.1 LCD控制器

12.1.4 LCD控制器寄存器

20
7、帧缓冲区起始地址寄存器LCDSADDR2(地址:
0x4D000018)
12.1 LCD控制器

12.1.4 LCD控制器寄存器

21
8、帧缓冲区起始地址寄存器LCDSADDR3(地址:
0x4D00001C)
12.1 LCD控制器

12.1.4 LCD控制器寄存器




22
LCD 屏= 320*240, 16 级灰度, 单扫描
帧起始地址= 0x0c500000
偏移点数= 2048 点( 512 个半字)
对应的寄存器应按如下方法设置:

LINEVAL = 240-1 = 0xef

PAGEWIDTH = 320*4/16 = 0x50//显示窗口占用空间的半字数

OFFSIZE = 512 = 0x200

//虚拟显示缓冲区的开始位置的[31:22],4M偏移

LCDBANK = 0x0c500000 >> 22 = 0x31

//显示窗口的开始地址的[21:1], 0x100000是0x0c500000的[21:0]位。

LCDBASEU = 0x100000 >> 1 = 0x80000

//显示窗口结束地址的[21:1]

LCDBASEL = 0x80000 + ( 0x50 + 0x200 ) * ( 0xef + 1 ) = 0xa2b00
//显示窗口的垂直分辨率
//显示窗口可以水平偏移空间所占用的半字数
12.2 接口电路与程序设计

12.2.1 S3C2410X LCD电路连接
23
12.2 接口电路与程序设计

12.2.1 S3C2410X LCD电路连接

上图中各个信号含义如下:










24
器件J27是一个跳线选择,可以选择3.3V和5V作为液晶屏的输入
电压
nERESET:液晶复位信号,通常可以不接
BUF_VD1~BUF_VD23:液晶数据信号,根据液晶的要求连接
LCDVF0~LCDVF2: SEC液晶屏需要的时序信号,其它的液晶屏
可以不用
BUF_VCLK:液晶时钟信号
BUF_VFRAME:帧同步信号
BUF_VLINE: 行同步信号
BUF_VM:数据使能信号
BUF_LEND:行结束信号,通常可以不接
TSXM、TSXP、TSYM、TSYP:触摸屏控制信号
12.2 接口电路与程序设计
12.2.2 程序的编写



编写软件程序,实现在分辨率为320*240,颜色深度为
16位的LCD屏上,显示指定分辨率为320*240,颜色深
度为16位色的图片
主要程序设计:
①
②
③
④
⑤
⑥
⑦
25
相关寄存器定义
LCD管脚初始化程序
初始化LCD控制器
画一个像素点
清屏
画一副图片
LCD测试主程序
12.2 接口电路与程序设计

12.2.3 调试与运行结果

1.连接液晶屏


2.打开实验例程



26
在开发板上连接一个320*240的16位真彩色LCD液晶屏。
(1)运行MDK开发环境,进入实验例程目录lcd_test子目录下的
lcd_test.Uv2例程,编译链接工程。
(2)根据common目录下的ReadMeCommon.txt及本工程目录下的
readme.txt文件配置集成开发环境,在Option for Target对话框的
Linker页中选择RuninRAM.sct分散加载文件,单击MDK的Debug
菜单,选择Start/Stop Debug Session项或单击,下载程序文件到目
标板的RAM中调试运行。
(3)在Option for Target对话框的Linker页中选择RuninFlash.sct分
散加载文件,单击MDK的Flash菜单,选择Download烧写调试代
码到目标系统的Nor Flash中,重启目标板,目标板自动运行烧写
到Nor Flash中的代码。
12.2 接口电路与程序设计

12.2.3 调试与运行结果


3.观察实验结果
(1)在LCD上观察结果


(2)logo图片转换为像素
点的过程

27
使用Image2Lcd工具将图像
logo.bmp转换为图像数据并
保存到logo.c中,将logo.c加
入到工程lcd_test中,重新编
译运行。
12.3 小结


本章主要介绍了基于S3C2410X 的LCD控制器,操
作TFT LCD的方法。
通过一个实例实现了在LCD屏上显示一幅图片。
28
12.4 思考与练习



12-1 TFT液晶显示屏外部接口信号有哪些?
12-2 简述VFRAME、VLINE、VCLK这几个信号
的作用?
12-3 编程实现在LCD上显示一幅你自己的图片。
29
30