Linux LCD驱动参数的配置与编译(完全)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

13.2 S3C2410内置LCD控制器
3、数据线:也就是我们说的 RGB 信号线,S3C2410芯片手册上都有详细的说 、 明。 4、要注意一下LCD的电源电压,对于手持设备来说一般都为5V或3.3V,或同时 、 支持 5V和3.3V,如果LCD的需要的电源电压是 5V,那就要注意了, S3C2410 的逻辑输出电压只有3.3V,此时一定要把S3C2410的逻辑输出电压 提高到5V。 5、图13-2所示的是把3.3V逻辑电压转变成 5V逻辑电压电路图(此图 、 由华恒公司提供)。
13.3 LCD驱动程序环境配置
.bpp = {/*像素信息*/ .min = 16, .max = 16, .defval = 16,
}, }; ……… static void __init smdk2410_init(void) { s3c24xx_fb_set_platdata(&smdk2410_lcd_cfg); platform_add_devices(smdk2410_devices, ARRAY_SIZE(smdk2410_devices)); smdk_machine_init(); } ………
13.1 LCD概述 • 13.1.1 液晶显示器原理
– 描述液晶物理性质,必须先了解一般固态晶体具有方向性,而液 态晶体这种特殊物质,不但具有一般固体晶体方向性外,同时又 具有液体流动性。改变固态晶体方向必须旋转整个晶体,改变液 态晶体就不用那幺麻烦,它方向性可经由电场或磁场来控制。改 变液晶方向视液晶成分而有所不同,有液晶和电场平行时位能较 低,所以当外加电场时会朝着电场方向转动,相对,也有液晶是 对应电场垂直时位能较低。由于液晶对于外加力量(电场或磁场 敏感),从而呈现了方向性效果,也导致了当光线入射液晶中时, 必然会按照液晶分子排列方式行进,产生了自然偏转现像 。电子 产品中所用液晶显示器,就是是利用液晶光电效应,藉由外部电 压控制,再透过液晶分子折射特性,以及对光线旋转能力来获得 亮暗情况,进而达到显像目。电源关闭时,液晶具有偏光效果, 可将入射光线转弯,穿过极栅,呈现亮色;电源开启时液晶不具 有偏光功能,因此光线不能通过极栅呈现暗色
13.2 S3C2410内置LCD控制器
2、TFT屏与S3C2410内部LCD控制器 – 对于控制TFT屏来说,除了要给它送视频资料(VD[23:0])以外, 还有以下一些信号是必不可少,分别是:VSYNC (VFRAME) :帧同步信号 – HSYNC(VLINE) :行同步信号 – VCLK :像数时钟信号 – VDEN(VM) :数据有效标志信号 – 在图13-1中,REGBANK 是LCD控制器寄存器组,用来对LCD 控制器各项参数进行设置。而 LCDCDMA 则是LCD控制器专用 DMA信道,负责将视频资料从系统总线(System Bus)上取来, 通过 VIDPRCS 从VD[23:0]发送给LCD屏。同时 TIMEGEN 和 LPC3600 负责产生 LCD屏所需要控制时序,例如VSYNC、 HSYNC、VCLK、VDEN,然后从 VIDEO MUX 送给LCD屏。
13.3 LCD驱动程序环境配置
步骤5:修改配置。 由于使用了s3c2410_defconfig参数,所以大部分选项都已经预配置完成, 只要修改以下配置: Floating point emulation ---> [*] FastFPE math emulation (EXPERIMENTAL) Device Drivers ---> Graphics support ---> [*] Bootup logo ---> 以上两个选项需要选中。 另外查看以下配置,要想驱动LCD必须保证这些选项。 Device Drivers ---> Graphics support ---> <*> Support for frame buffer devices [*] Enable firmware EDID <*> S3C2410 LCD framebuffer support
6、屏的控制信号直接与 S3C2410 的控制信号相接就可以了。 、 7、另外S3C2410到 LCD屏的连线还要超过0.5米,过长会造成一些错误。 、
13.3 LCD驱动程序环境配置
LCD 驱动程序环境配置过程为: – 1)下载软件。 – 2)内核移植与内核配置使内核支持FrameBuffer。 – 3)修改mach-smdk2410.c文件。 – 4)编译内核并生成内核镜像文件。 – 5)模块加载。 – 6)编写程序代码。 – 7)测试。 – 在Linux 2.6 中,内核已经很好地支持了LCD,因此, 驱动并不需要自己重新编写,只要进行适当的修改就 可以驱动相应的LCD了。
13.3 LCD驱动程序环境配置
.regs = { /*寄存器初始值*/ .lcdcon1 = S3C2410_LCDCON1_TFT16BPP | S3C2410_LCDCON1_TFT |
S3C2410_LCDCON1_CLKVAL(0x04), .lcdcon2 = S3C2410_LCDCON2_VBPD(7) | S3C2410_LCDCON2_LINEVAL(319) | S3C2410_LCDCON2_VFPD(6) | S3C2410_LCDCON2_VSPW(3), .lcdcon3 = S3C2410_LCDCON3_HBPD(19) | S3C2410_LCDCON3_HOZVAL(239) | S3C2410_LCDCON3_HFPD(7), .lcdcon4 = S3C2410_LCDCON4_MVAL(0) | S3C2410_LCDCON4_HSPW(3),
13.3 LCD驱动程序环境配置
步骤6:修改显示图像的大小、像素等参数。 [root@localhost linux-2.6.22.5]# vi arch/arm/mach-s3c2440/machsmdk2440.c ……… #include <asm/arch/regs-serial.h> #include <asm/arch/fb.h> ……… .ucon = UCON, .ulcon = ULCON, .ufcon = UFCON, } }; ……… /*LCD的初始化参数,包括寄存器的初始值,LCD的长宽等*/ static struct s3c2410fb_mach_info smdk2410_lcd_cfg __initdata = {
13.3 LCD驱动程序环境配置
.lpcsel = ((0xCE6) & ~7) | 1<<4, .type = S3C2410_LCDCON1_TFT16BPP,/*显示形式*/ .width = 240, /*长*/ .height = 320, /*宽*/ .xres = {/*坐标信息,水平方向*/ .min = 240, .max = 240, .defval = 240, }, .yres = {/*坐标信息,竖直方向*/ .min = 320, .max = 320, .defval = 320, },
13.3 LCD驱动程序环境配置
下面以2.6.22.5内核为例,进行LCD驱动移植。 (1)从以下地址下载交叉编译工具 http://www.lupaworld.com/action_download_itemid_4724.html (2)内核下载 从以下地址下载Linux内核。 http://embedded.lupaworld.cn/oss/kernel/linux-2.6.22.5.tar.bz2 (3)交叉编译工具配置 下载到根目录下,接着解压缩。 [root@localhost / ]# tar xjvf arm-linux-gcc-3.4.1.tar.bz2 (4)内核配置 操作步骤 步骤1:解压缩linux-2.6.22.5内核包。 [root@localhost embedded]# tar xjvf linux-2.6.22.5.tar.bz2 步骤2:进入linux-2.6.22.5目录。 [root@localhost embedded]# cd linux-2.6.22.5
13.2 S3C2410内置LCD控制器
– VFRAME:LCD 控制器和 LCD 驱动器之间的帧同步信号。该信 : 号告诉 LCD屏的新的一帧开始了。LCD 控制器在一个完整帧显示 完成后立即插入一个VFRAME 信号,开始新一帧的显示;
– VLINE:LCD控制器和 LCD驱动器之间的线同步脉冲信号,该信 号用于 LCD驱动器将水平线(行)移位寄存器的内容传送给 LCD 屏显示。LCD 控制器在整个水平线(整行)数据移入 LCD驱动器 后,插入一个 VLINE 信号; – VCLK:LCD控制器和 LCD驱动器之间的像素时钟信号,由 LCD 控制器送出的数据在 VCLK的上升沿处送出,在 VCLK的下降沿 处被 LCD驱动器采样; – VM:LCD驱动器的 AC 信号。VM 信号被 LCD驱动器用于改变行 和列的电压极性,从而控制像素点的显示或熄灭。VM 信号可以 与每个帧同步,也可以与可变数量的 VLINE 信号同步。
13.2 S3C2410内置LCD控制器
– 一块LCD屏显示图像,不但需要LCD驱动器,还需要有相应LCD 控制器。通常LCD驱动器会以COF/COG形式与LCD 玻璃基板制 做在一起,而LCD控制器则有外部电路来实现。而S3C2410内部 已经集成了LCD控制器,因此可以很方便地去控制各种类型LCD 屏,例如:STN和TFT屏。由于TFT屏将是今后应用主流,因此, 重点围绕TFT屏控制来进行。 1、S3C2410 LCD控制器特性:
13.3 LCD驱动程序环境配置
步骤3:修改Makefile文件。 [root@localhost linux-2.6.22.5]# vi Makefile 将下面两行 ARCH ?= $(SUBARCH) CROSS_COMPILE ?= 修改为 ARCH ?= arm CROSS_COMPILE ?= /usr/local/arm/3.4.1/bin/arm-linux步骤4:在linux-2.6.22.5目录下输入命令: [root@localhost linux-2.6.22.5]# make s3c2410_defconfig menuconfig
STN屏Leabharlann Baidu
– 支持3种扫描方式:4bit单扫、4位双扫和8位单扫 – 支持单色、4级灰度和16级灰度屏 – 支持256色和4096色彩色STN屏(CSTN) – 支持分辩率为640*480、320*240、160*160以及其它规格多种 LCD TFT屏 – 支持单色、4级灰度、256色调色板显示模式 – 支持64K和16M色非调色板显示模式 – 支持分辩率为640*480,320*240及其它多种规格LCD
第13章 LCD驱动参数的配置与编译
本章重点 • 液晶显示器种类。 • S3C2410内置LCD控制器。 • 支持LCD的内核定制与内核移植
本章内容 • 13.1 LCD概述 • 13.2 S3C2410内置LCD控制器 • 13.3 LCD驱动程序环境配置
13.1 LCD概述
– 电视机所采用 CRT(阴极射线管)有着体积大、重量重、 尺寸受限等缺点。随着电子科技发展,这使得开发新 一代显示器技术变得更有其必要! 新一代显示器讲求 几个重点:平面直角,画面显示不变形、轻薄短小耗 能少,携带方便且同时要与现有影像信号技术兼容。 目前谈论到超薄型显示器技术,最普及当是 TFT LCD 应用了,举凡数字相机、笔记型计算机、PDA 等,需 要显示复杂信息电子产品通通少不了它。
13.1 LCD概述
• 13.1.2 液晶显示器种类
– 利用液晶制成显示器称为液晶显示器,英文称 LCD (Liquid Crystal Display)。其种类可分为依驱动方式 Liquid Display 之静态驱动(Static)、单纯矩阵驱动(Simple Matrix) 以及主动矩阵驱动(Active Matrix)三种。而其中,单 纯矩阵型又是俗称被动式(Passive),可分为扭转向 列型(TN)和超扭转式向列型(STN)两种;而主动 矩阵型则以薄膜式晶体管型(TFT)为目前主流。
相关文档
最新文档