ARM开发步步深入之LCD入门.doc





《ARM开发步步深入之LCD入门.doc》由会员分享,可在线阅读,更多相关《ARM开发步步深入之LCD入门.doc(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流ARM开发步步深入之LCD入门.精品文档.ARM开发步步深入之LCD入门作者:373061200(CrazyARM)来自:实验目的:通过串口选择实现LCD画线、画圆等操作借此掌握S3C2410的LCD控制器使用。实验环境及说明:恒颐S3C2410开发板H2410。H24X0E扩展板外接夏普3.5英寸LQ035Q7DB02 LCD屏。实验思路:开发板上电启动后,自动将NandFlash开始的4K数据复制到SRAM中,然后跳转到0地址开始执行。关闭看门狗、初始化SDRAM及NandFlash控制器、设置MPLL来改变FCLK、HCLK、PCLK的
2、值,设置堆栈,复制4KB后的16KB数据到SDRAM,之后进入main函数中进行LCD各种画线、画圆等的操作测试。知识掌握:LCD控制器。LCD(Liquid Crystal Display,液晶显示器)概述:可分为依驱动方式之静态驱动(Static)、单纯矩阵驱动(Simple Matrix)以及主动矩阵驱动(Active Matrix)三种。而其中单纯矩阵型又是俗称的被动式(Passive),可分为扭转向列型(Twisted Nematic,简称TN)和超扭转式向列型(Super Twisted Nematic,简称STN)两种;而主动矩阵型则以薄膜式晶体管型(Thin Film Tran
3、sistor,简称TFT)为目前主流。S3C2410内置LCD控制器详解:一块LCD屏显示图像,不但需要LCD驱动器,还需要有相应的LCD控制器。通常LCD驱动器会以COF/COG的形式与LCD玻璃基板制做在一起,而LCD控制器则有外部电路来实现。而S3C2410内部已经集成了LCD控制器,因此可以很方便地去控制各种类型的LCD屏,例如:STN和TFT屏。由于TFT屏将是今后应用的主流,因此重点介绍TFT屏。S3C2410内置LCD控制器的特性:提供了驱动STN/TFT LCD所需的所有信号。对STN屏-支持3种扫描方式:4bit单扫、4位双扫和8位单扫;-支持单色、4级灰度和16级灰度屏;-
4、支持256色和4096色彩色STN屏(CSTN);-支持分辩率为640*480、320*240、160*160以及其它规格的多种LCD。对TFT屏-支持单色、4级灰度、256色的调色板显示模式;-支持64K和16M色非调色板显示模式;-支持分辩率为640*480,320*240及其它多种规格的LCD;对于控制TFT屏来说,除了要给它送视频资料(VD23:0)以外,还有以下一些信号是必不可少的,VSYNC(VFRAME)-帧同步信号;HSYNC(VLINE)-行同步信号;VCLK-像数时钟信号;VDEN(VM)-数据有效标志信号。LCD控制器的寄存器:LCD控制器逻辑示意图如下所示REGBANK
5、-LCD控制器的寄存器组,含17个寄存器及一块256x16的调色板内存,用来设置各项参数。LCD控制寄存器:LCDCON1LCDCON5(LCDCON1用于选择LCD类型、设置像素时钟、使能LCD信号的输出等;LCDCON2用于设置垂直方向各信号的时间参数;LCDCON3用于设置水平方向各信号的时间参数;LCDCON4对TFT只用来设置HSYNC信号的脉冲宽度;LCDCON5用于设置各个控制信号的极性,并可从中读到一些状态信息);帧内存地址寄存器:LCDSADDR1LCDSADDR3(帧内存可以很大,而真正要显示的区域被称为视口(View Point),这3个寄存器用于确定帧内存的起始地址,定
6、位视口在帧内存中的位置);临时调色板寄存器:TPAL(对输出一帧单色图像,可以在TPAL寄存器中设定这个颜色值,然后使能TPAL寄存器,这种方法可以避免修改整个调色板或帧缓冲区);其他寄存器(LCD中断、专用STN LCD及专用SEC(Samsung Electronics Company) TFT LCD)。LCDCDMA-LCD控制器专用的DMA信道。可自动从系统总线(System Bus)上取到图像数据,使得显示图像时不需要CPU的干涉(VIDPRCS将LCDDMA中的数据组合成特定的格式,然后从VD23:0发送给LCD屏;同时TIMEGEN和LPC3600(三星TFT专用)负责产生LC
7、D屏所需要的控制时序)。LCDCDMA中含有两个FIFO:FIFOH容量为16个字,FIFOL容量为12个字,双扫方式两者分别对应上/下半屏数据,单扫方式只用到FIFOH。FIFO为空或其中数据减少到设定的阈值时LCDDMA自动发起DMA传输从内存中获得图像数据。LCD控制器可以支持单色(1BPP)、4级灰度(2BPP)、16级灰度(4BPP)、256色(8BPP)的调色板显示模式、64K(16BPP)和16M(24BPP)非调色板显示模式。图像数据的存储格式:16M(24BPP)色-使用24位的数据来表示一个像素的颜色,每种原色使用8位。LCD控制器从内存中获得某个像素的24位颜色值后,直接
8、通过VD23:0数据线发送给LCD,为了方便DMA传输,内存中使用4字节来表示一个像素(其中3字节从高到低分别表示红、绿、蓝,剩余的1字节无效,此字节为最低字节还是最高字节是可以由BPP24BL值选择的)。64K(16BPP)色-使用16位的数据来表示一个像素的颜色,数据格式分5:6:5(高5位表示红色,中间6位表示绿色,最低5位表示蓝色)和5:5:5:1(从高到低依次为红:绿:蓝:透明度,故又称RGBA)两种,4个字节可以表示2个16BPP的像素,高2字节还是低2字节表示第一像素可以通过HWSWP值决定。256(8BPP)色-使用8位的数据来表示一个像素的颜色,直接用其表示对应的3原色的值时
9、显示能力太弱,故引进调色板(Palette,就是一块内存,可以对每个索引值设置颜色,可以使用16BPP或24BPP),用这8位数据表示其在调色板中的索引值,S3C2410/S3C2440中的调色板是一块256x16的内存,使用16BPP的格式表示256色(8BPP)显示模式下各个索引值的颜色,这样即使使用256色的显示模式,最终显示在LCD数据总线上的仍是16BPP的数据。一个4字节可以表示4个8BPP的像素,字节与像素的对应顺序可通过BSWP值设置。关键代码解析:head.S头文件来初始化,设置SDRAM,将程序复制到SDRAM,然后跳到SDRAM继续执行.equMEM_CTL_BASE,
10、0x48000000.text.global _start_start:中断向量表处理函数,只给出复位和普通中断模式的处理函数,其它异常未使用b Reset.b HandleIRQ0x1c: 快中断模式的向量地址HandleFIQ:b HandleFIQReset: 复位处理bldisable_watch_dog关门喂狗blmem_control_setup 设置存储控制器ldr sp, =4096 设置栈指针,以下C函数调用前需要设好栈bl init_clock设置MPLL,改变FCLK、HCLK、PCLKbl init_nand初始化NandFlash将NandFlash中地址4096开始
11、的代码复制到SDRAM中ldrr0, =0x30000000目标地址=0x30000000,SDRAM起始地址movr1, #4096源地址=4096,连接时代码在4096开始处movr2, #16*1024 复制长度=16K,对于本实验足够blread_nand 调用C函数read_nandblclean_bss清除bss段msr cpsr_c, #0xd2 进入中断模式ldr sp, =0x31000000 设置中断模式栈指针msr cpsr_c, #0xdf进入系统模式ldr sp, =0x34000000设置系统模式栈指针ldr lr, =ret_initirq设置返回地址ldr pc
12、, =init_irq初始化中断ret_initirq:msr cpsr_c, #0x5f设置I-bit=0,开IRQ中断ldr lr, =halt_loop设置返回地址ldr pc, =main 调用main函数halt_loop:b halt_loopmain.c文件实现实现串口选择不同模式的LCD显示操作,主要代码:#include .int main()char c;init_uart0(); / 波特率115200,8N1(8个数据位,无校验位,1个停止位)while (1)printf(rn# Test TFT LCD #rn);printf(1 TFT240320 8Bitnr)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ARM 开发 步步 深入 LCD 入门

限制150内