首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于ARM9处理器S3C2410的LCD显示系统设计

基于ARM9处理器S3C2410的LCD显示系统设计

引言

    S3C2410是三星公司生产的基于ARM920T内核的RISC微处理器,其主频可达203MHz[1],适用于信息家电、PDA、手持设备、移动终端等领域,本文介绍了基于S3C2410的显示系统的硬件电路及驱动软件设计方法。

  
  TFT-LCD模块的时序要求

    本显示模块选用的LQ080V3DG01是Sharp公司的TFT-LCD器件,该器件的分辨率为640×480,控制时序图如图1所示,时间参数如表1所列[2]。

  




    硬件电路设计

    在该显示系统的硬件电路中,S3C2410与LCD模块的连接是关键,S3C2410内部自带一个LCD驱动控制器,其接口可以与单色、灰度、彩色STN型和彩色TFT型的LCD直接相连,但需要根据所连接的LCD的类型设置相应寄存器中的显示模式(见下节Q080V3DG01要求其电源电压Vdd典型值为3.3V/5V,并且LCD数据和控制信号的高电平输入电压Vih在2.3-5.5V范围内,低电平输入电压Vil则在-0.3-0.9V范围内,故可以直接与S3C2410相连,其电路图如图2所示。

    系统软件设计

    S3C2410处理器中的LCD控制器内含寄存器LCDCOM1-LCDCON5。对于LQ080V3DG01,这些寄存器的具体设置如下:

    (1)在LCDCON1中,CLKVAL是时钟参数,对于LQ080V3DG01,该域值取1。PNRMODE是显示模式参数,该域值取3,表示所用模块是TFT型,BPPMODE是每个象素的数据位数参数,对于LQ080V3DG01模块,设计时可设置成16bpp,所以此域值取12。

    (2)在LCDCON2中,VBPD对应于表1中的H参数,该域值取32。LINEVAL对应于表1中的I参数,该域值取479,VFPD对应于表1中的J参数,该域值取9,VSPW对应于表1中的G参数,该域值取1。

    (3)在LCDCON3中,HBPD对应于表1中的C参数,该域值取47。HOZVAL对应无于表1中的D参数,该域值取639,HFPD对应于表1中的E参数,该域值取15。

    (4)在LCDCON4中只需要设置HSPW即可,它对应于表1中的B参数,该域值取95。

    (5)LCDCON5中,BPP24BL用于决定24bpp视频存储器的大小端模式,该域值取0,FRM565决定16bpp视频输入数据的格式。

    在设计中,还可在基于S3C2410的硬件平台上安装嵌入式Linux操作系统。为了使LCD能够正常显示,还需要在嵌入式Linux系统下开发LCD的驱动程序。

    Framebuffer是出现在Linux2.2.xx内核的一种驱动程序接口,对应的源文件在Linux/drivers/video/目录下,总的抽象设备文件为fbcon.c。这种接口将显示设备抽象为帧缓冲区,用户可以将它看成是显示内存的一个映象。在使用帧缓冲时,Linux将显卡置于图形模式下[3]。

    根据上面对LCD各主要寄存器设置的分析所得出的结果,笔者开发了基于FrameBuffer机制的S3C2410fb驱动程序。下面是经过调试成功的部分代码,该程序可对显示屏幕进行初始化并设置LCD控制寄存器的值:

    /*s3c2410fb.c*/
    static struct s3c2410fb_mach_infoxxx_stn_info_initdata={

    pixclock:174757,bpp:16,xres:640,yres:480,hsync_len:96,vsync_len:2,left_margin:40,upper_margin:24,right_margin:32,lower_margin:11,sync:0,cmap_static:1。

    reg:{//设置LCD控制寄存器的值

    Lcdcon1:LCD1_BPP_16T |LCD1_PNR_TFT|LCD1_CLKVAL(1),lcdcon2:LCD2_VBPD(32)|LCD2_VFPD(9)|LCD2_VSPW(1),lcdon3:LCD3_HBPD(47)|LCD3_HFPD (15),lcdcon4:LCD4_HSPW(95)|LCD4_MVAL(13),lcdcon5:LCD5_FRM565|LCD5_INVVLIEN|LCD5_INVVFRAME|LCD5_HW SWP|LCD5_PWREN,},};

  
  结束语

    按照本文所设计的接口连接好硬件后,即可修改S3C2410的驱动程序,并在整个系统编译后重新写到Flash中,这样,重启后就能正确显示原系统的静态启动画面,而且画面清晰稳定,可达到预期的效果,这套装置可在工业控制和车载通信等领域用作显示输出设备。

本文来源:单片机与嵌入式系统应用    作者:
返回列表