成分和直流电压成分的调节。
通过调节 VCOM BUFFER 电路,使 VCOM 中心点电压及其幅值达到应用的要求,有效地消除 TFT LCD 显示闪烁问题并改善显示质量。
5 Linux 下驱动程序软件设计5.1 帧缓冲设备 帧缓冲为 Linux 2.2.XX 以上版本内核中的一种驱动程序接口。
该接口采用 mmap 系统调用, 将显示设备抽象为帧缓冲区,允许上层应用程序在图形模式下直接对显示缓冲区进行读写和 I/O 控制操作。
帧缓冲设备属于字符设备,采用“文件层-驱动层”的接口方式。
5.2 LCD 驱动设计 TFT LCD 驱 动 程 序 设 计 的 主 要 工 作 包 括 : 初 始 化 S3C2440A 的 LCD 控 制 器LCDCON1~5,通过写寄存器设置显示模式和颜色数,然后分配 LCD 显示缓冲区。
根据TMT035DNAFWU1 接口时序及显示要求,屏幕显示分辨率 Horizontal display size320,Vertical display size240,VCLK6.4 MHz,而 HCLK133 MHz,故 CLKVAL9。
缓冲区大小为:点阵行数×点阵列数×用于表示一个像素的比特数/8。
缓冲区通常分配在大容量的片外 SDRAM 中,起始地址保存在 LCD 控制寄存器中,需要分配的显示缓冲区为 150 kB。
最后 是 初 始 化 一 个 fb_info 结 构 , 填 充 其 中 的 成 员 变 量 , 并 调 用 fbmem.C 里 的register_framebufferstruct fb_info fb info将 fb_info 登记入内核。
5.3 RGB 接口显示参数调整 S3C2440A 的 LCD 控制寄存器主要有:LCDCON1~5。
LCDCON1 可以对 LCD 的类型、数据位数、是否需要 VDEN 输出及 DCLK 进行设置LCDCON2 主要对 VBPD、VFPD、VSPW 进行设置LCDCON3 及 LCDCON4 对 HBPD、HFPD、HSPW 进行设置LCDCON5可以对 DCLK、HSYNC、VSYNC 的极性做设置。
图 4 为 RGB 接口显示工作原理示意图,各个参数在实际显示中的作用效果见图 4 所示。
图 4 RGB 接口显示工作原理 图 4 中,最终显示区域DISPLAY AREA是由像素时钟信号DCLK、行同步信号HSYNC、帧同步信号VSYNc、数据使能信号VDEN/ENABLE共同作用的结果,其大小及位置由各参数实际配置来确定, 其中 HSPW、 HBPD 及 HFPD 确定显示区域的行有效数据信息,VSPW、VBPD 和 VFPD 确定显示区域中帧有效数据信息。
基于 Linux 下驱动显示程序,以下为调试成功的部分源代码:/s3c2440fb.c/define H_SW 35define H_FP 15define H_BP 30define V_SW 5define V_FP 5define V_BP 10……static struct s3c2440fb_mach_info xxx_stn_info __initdatapixclock:PIXEL_CLOC hpp: PIXEL_BPPxres:H_RESOLUTION yres: V_RESOLUTIONhsync_len: H_SW vsync_len : V_SWleft_margin: H_BP upper_margin:V_BPright_margin:H_FP lower_margin:V_FPsync:0 cmap_static:1reg:lcdcon1: LCD1_BPP_16T LCD1_PNR_TFT LCD1_CLKVAL12lcdcon2: LCD2_VBPDV_BP LCD2_VFPDV_FP LCD2_VSPWV_SWlcdcon3: LCD3_HBPDH_BP LCD3_HFPDH_FPlcdcon4: LCD4_HSPWH_SWlcdcon5: LCD5_FRM565 LCD5_INVVLINE LCD5_INVVFRAME LCD5_HWSWP LCD5_PWREN 在实际的驱动程序编写过程中,不同的 TFTLCD 模组的参数会有所不同,因此需要根据实际数据的有效位置进行相关的参数调整。
图 5 为 RGB 接口参数配置调整前后的系统显示对比效果图。
如果软件初始化设置中,未能正确地分配 HSPW、HBPD 和 HFPD,行有效数据的位置会发生相应的错位,表现在实际显示中为显示图像的整体左右偏移,如图 5a所示,液晶显示器显示画面向左偏移。
同理,未能正确地配置 VSPW、VBPD 和 VFPD,帧数据中有效数据的位置会发生相应的错位,表现在实际显示中为显示图像的上下偏移。
5.4 触摸屏驱动设计 设置触摸屏接口为等待中断模式INT_TC 中断,如果中断发生,立即激活相应的 AD转换。
转换模式一般选择分离的 X/Y 轴坐标转换模式或者自动连续的X/Y 轴坐标转换模式来获取触摸点的 X/Y 坐标。
在得到触摸点的 X/Y 轴坐标值后,返回到等待中断模式。
触摸屏的驱动流程如图 6。
图 6 触摸屏控制流程图 触摸屏设备在 Linux 系统中也被定义为一个字符设备,需要对触摸屏设备驱动程序中的全局变量 struct TS_DEV 进行设置,该变量用来保存触摸屏的相关参数:等待处理的消息队列、当前采样数据、上一次