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