基于ARM的触摸屏TFT液晶显示电路设计

2012-06-25 07:03程静涛
电视技术 2012年9期
关键词:调色板寄存器触摸屏

程静涛

(山西轻工职业技术学院,山西 太原 030001)

液晶屏(Liquid Crystal Display,LCD)按显示原理分为STN和TFT两种,由于TFT(薄膜晶体管,Thin Film Transistor)彩色液晶屏颜色逼真透亮广泛用于制作成计算机、手机中的液晶显示。带有触摸屏的TFT在嵌入式系统设计中越来越成为设计的主流。

文章采用三星公司推出的16/32位RISC微处理器S3C2440A,完成与WXCAT43-TG3#001的接口和程序设计。

1 S3C2440 LCD控制器

图1为S3C2440处理器的LCD控制器[1]主要部分框图。

图1 S3C2440处理器的LCD控制器主要部分框图

如图1所示,LCDCDMA负责自动将帧缓冲区中的显示数据发往LCD驱动器。通过DMA传输显示数据可以不需要CPU的干涉自动地发送到屏幕上。REGBANK的主要功能是将其中的17个可编程的寄存器组和256×16调色板内存用于配置LCD控制器。VIDPRCS将LCDCDMA发送过来的数据变换为合适的格式(单扫描或双扫描显示模式)之后通过VD[23:0]发送到LCD驱动器。TMIEGEN的可编程逻辑用于支持不同类型的LCD驱动器对时序以及速率的需求。S3C2440 LCD控制器输出接口说明如表1所示。

2 时钟源的选择

不管是利用开发板设计还是自行设计,都必须首先知道开发板或设计板的时钟频率的设置:在S3C2440的Normal模式下操作中,用户可以通过写P,M,S改变3个分频器(FCLK,HCLK,PCLK)的频率值。Mpll=(2×m ×Fin)/(p×2s),m=M(分频器M的值)+8,p=P(分频器P的值)+2。

当 M=184,P=10,S=0 时 Mpll=384 MHz。当 Mpll=FCLK时,FCLK用于ARM920T主频。HCLK用于AHB总线,例如用于ARM920T内存控制,中断控制,LCD控制,DMA以及USB主模块。PCLK用于APB总线,用于外围设备如看门狗、IIS、I2C、PWM、MMC 接口、ADC、UART、GPIO、RTC以及SPI等。

表1 S3C2440 LCD控制器输出接口说明

S3C2440支持FCLK,HCLK,PCLK分频比的选择。比例由CLKDIVN控制寄存器中的HDIVN,PDIVN位确定。在设置P,M,S这3个值后,需要设置CLKDIVN寄存器的值。CLKDIVN的值设置在PLL锁定期后有效。这个值也对复位和改变电源管理模式也是可用的。

该设计HDIVN设置为3,PDIVN设置为1,HCLK3_HALF设置为0,HCLK4_HALF设置为0则分频比FCLK∶HCLK∶PCLK 为(1∶3∶6),则 FCLK=384 MHz,HCLK=128 MHz,PCLK=64 MHz。

3 WXCAT43-TG3#001液晶显示模块介绍

WXCAT43-TG3#001[2]是一种 transmissive 型 a-SiTFTLCD(非晶硅薄膜晶体管液晶显示模块),主要由1个TFTLCD面板,1个驱动电路,背光灯部件和1个4-wires模拟电阻式触摸屏组成。面板尺寸是4.3 in,分辨力是480×272(显示16∶9)。24位RGB界面,高对比度、高亮度、低功耗、4-wires模拟电阻式触摸屏。可以显示16.7 M种颜色和特别适合便携式设备显示器应用。可用于GPS(全球定位系统)、DVB(数字视频广播)、DSC(数码相机)、PMP(便携式多媒体播放器)及其他设备需要高质量的显示器。

1)WXCAT43-TG3#001 电特性[2]

TFT-LCD模块:电源3.3 V,模拟电压5 V,时钟频率9 MHz;

背景灯单元:正向电压25.6 V,电流20 mA,功耗512 mW。

2)TFT-LCD模块框图

TFT-LCD模块如图2所示,触摸屏面板如图3所示。

3)接口规范如表2所示。

表2 WXCAT43-TG3#001外围管脚说明

4)定时要求如表3所示。

表3 WXCAT43-TG3#001定时参数

5)存储数据格式(TFT)

在S3C2440A里TFT液晶控制器的支持1 bpp(位/像素),2 bpp,4 bpp,8 bpp 的 palettized 彩色显示器和16 bpp或24 bpp的non-palettized真彩显示(true-color)。表4为存储数据格式(TFT)显示模式24 bpp显示。

表4 显示储数据格式(TFT)24 bpp显示模式

6)使用256调色板(TFT)

S3C2440A的TFT液晶控制,提供256个颜色的调色板。用户可以从下面2种格式中在64 k的颜色中选择256种颜色。256颜色调色板包括256(深度)×16位SPSRAM。支持5∶6∶5 调色板(R,G,B)的格式和 5∶5∶5∶1(R,G,B∶i)的格式。当用户使用 5∶5∶5∶1 格式,强度数据(i)作为每个RGB数据的一种常见LSB位。所以,5∶5∶5∶i格式等同于 R(5+i)∶G(5+i)∶B(5+i)的格式。

例如,在5∶5∶5∶i格式中,用户可以写入调色板,然后连接VD引脚到TFT液晶面板,R(5+i)=VD[23:19]+VD[18],VD[10]或 VD[2],G(5+i)=VD[15:11]+VD[18],VD[10]或 VD[2],B(5+i)=VD[7:3]+VD[18],VD[10]或VD[2]。并且设置LCDCON5寄存器的FRM565为0。

0x4D000400是调色板的开始地址。VD10,VD2,VD18有相同的输出值i。[31:16]数据是无效的。当用户对调色板执行读/写操作时,必须检查LCDCON5寄存器的HSTATUS和VSTATUS,因为VSTATUS和HSTATUS工作状态期间,读/写操作是禁止的。

4 WXCAT43-TG3#001的总体设计

特别注意:在S3C2440中,大多数的管脚都复用,所以必须对每个管脚进行配置。端口控制寄存器(GPnCON)定义了每个管脚的功能。

下文将着重介绍TFT LCD的设计步骤。

WXCAT43-TG3#001 TFT连接如图4所示。

图4 WXCAT43-TG3#001 TFT连接图

1)LCD背光灯控制

WXCAT43-TG3#001背光灯需要25.6 V的直流电源,该设计采用DC-DC直流升压芯片见图4。利用S3C2440的GPF4脚可以控制背景灯的开启和关闭,当GPF4脚为高电平时,Q2、Q1导通,25 V电压加到WXCAT43-TG3#001的2脚,使其点亮LED,如果GPF4脚输出PWM波,则可以改变其背光亮度。特别在设备休眠状态,及时关闭LED,可以达到节能目的。所以需将对应的GPIO设置为禁止上拉(GPFUP相应位4写入1),选择output类型(GPFCON相应位[9:8]写入01),输出为高电平开启背景灯,低电平关闭背景灯(GPFDAT相应位4写入1或0以控制背景灯的开启和关闭)。

2)LCD电源控制

可以将GPG4选择为LCD_PWREN(GPGCON[9:8]写入10),这时候LCD电源的打开/关闭可以通过LCDCON5[3]来控制。也可以自定义其他GPIO用作LCD电源开关,只需将此GPIO设置为禁止上拉(GPxUP相应位写入1),选择output类型(GPxCON相应位写入01),输出为高电平(GPxDAT相应位写入1)打开LCD电源。该设计采用第一种控制方式。

3)信号线设置[4]

信号线包括 VD0~VD23。将LCD的R0~R7,G0~G7,B0~B7等24根管脚和S3C2440的VD0~VD23脚相连,设置GPCCON[0~31]写入10(其中GPC8~GPC15对应VD0~VD7),GPDCON[0~31]写入10(其中 GPD0~GPD15对应VD8~VD23)构成LCD模式。

4)VFRAME(VSYNC),VLINE(HSYNC),VCLK 及VM(VDEN)的设置

如上所述分别在GPCCON中设置(10)使GPC4(VM),GPC3(VFRAME),GPC2(VLINE),GPC1(VCLK)处于相应功能。

5)设置LCD的频率(VCLK)

CLKVAL寄存器的值确定VCLK的频率和帧速率。对于TFT LCD,S3C2440提供的VCLK的计算公式为

VCLK=HCLK/((CLKVAL+1)×2) (1)

帧速率=1/{[(VSPW+1)+(VBPD+1)+(LIINEVAL+1)+(VFPD+1)]× [(HSPW+1)+(HBPD+1)+(HFPD+1)+(HOZVAL+1)]×[2×(CLKVAL+1)/(HCLK)]} (2)

LCD的数据手册上一般会写有一个推荐的频率,该设计使用的屏幕推荐频率为9 MHz,需要通过一些计算选择一个合适的CLKVAL以产生这个频率。可以得出

CLKVAL=HCLK/(VCLK×2)–1 (3)

由前述 FCLK∶HCLK∶PCLK=1∶3∶6,HCLK 是 128 MHz(CPU运行在384 MHz),VCLK使用屏幕推荐的9 MHz,得到:CLKVAL=128 MHz/(9 MHz×2)-1=6.1111。选择最接近的整数值6,写入LCDCON1[17:8]。

6)各寄存器数据设置

通过语句:#define项目名(值)进行定义。

7)设置视频缓冲区的地址

S3C2440支持虚拟屏幕,可以通过改变LCD寄存器实现屏幕快速移动。

帧缓冲区的开始地址1寄存器LCDSADDR1,地址0x4D000014,复位值0x00000000。帧缓冲区的开始地址2寄存器LCDSADDR2,地址0x4D000018,复位值0x00000000。

8)FRAME缓存开始地址寄存器3 LCDSADDR3,地址0x4D00001C,复位值0x00000000

#define OFFSIZE 0x200 //虚拟屏幕左侧偏移的字节数(半字的数量)计算方法:虚拟屏幕上一行的半字-LCDpingshang一行的后半字

#define PAGEWIDTH 0x2C0//虚拟屏幕页面宽度(半字数)。这个值定义帧的可视端口的宽度。480×8/16=240

9)TCON控制寄存器TCONSEL、地址0x4D000060、复位值0xF84(取复位状态)

10)屏蔽LCD中断,LCDINTMSK、地址0x4D00005C、复位值0x3(取复位状态)

11)禁止临时调色板TPAL、地址0x4D000050、复位值0x00000000(取复位状态)

5 触摸屏工作原理

5.1 S3C2440触摸屏接口

S3C2440具有8通道模拟输入,10位CMOS的ADC(模数转换器)。最大的转换率是在2.5 MHz转换时钟下达到500 ksample/s。触摸屏接口XP,XM,YP,YM分别与XR,XL,YU,YD 连接如图4。供电电压3.3 V,输入模拟电压范围:0~3.3 V。图5为AD转换器和触摸屏接口的功能模块图。

当触摸屏接口使用时,XM或PM应该接触摸屏接口的地。当触摸屏设备不使用时,XM或PM应该连接模拟输入信号作为普通ADC转换用。

触摸屏接口模式可根据需要进行选择,常用的有正常转换模式、分离XY坐标转换模式、自动(连续)XY坐标转换模式、等待中断模式等。

图5 S3C2440 AD转换器和触摸屏接口的功能模块图

5.2 ADC及触摸屏接口特殊寄存器设置

/*ADC控制寄存器:ADCCON、地址0x58000000、复位值0x3FC4*/

#define PRSCEN 1//AD转换器预分频器(预定标器)使能0:无效1:有效

#define PRSCVL 32//AD转换器预分频器(预定标器)值数值:0~255

#define SEL_MUX 5//模拟输入通道选择000:AIN0 001:AIN1 010:AIN2011:AIN3100:YM 101:YP 110:XM 111:XP

#define STDBM 0//备用操作模式选择0:普通操作模式1:备用模式

#define START 0//AD转换通过读取开始。0表示通过读取操作开始无效,1表示通过读取操作开始有效

#define ENABLE_START 0//AD转换开始有效。如果READ_START有效,该值无效。0表示无操作,1表示AD转换开始且该位在开始后清零

注:当触摸屏触点(YM,YP,XM,XP)无效,这些引脚应该用于作为ADC 的模拟输入引脚(AIN4,AIN5,AIN6,AIN7)。

/*ADC触摸屏控制寄存器:ADCTSC、地址0x58000004、复位值0x58*/#define UD_SEN 0//检测光标上下状态0:检测光标按下中断信号1:检测光标抬起中断信号

#define PULL_UP 1//上拉开关使能。0表示XP上拉有效,1表示XP上拉无效。

#define AUTO_PST 1//自动连续转换X坐标和Y坐标:0表示普通ADC转换,1表示自动连续测量X坐标和Y坐标

ADC触摸屏控制寄存器如表5所示。

表5 ADC触摸屏控制寄存器(ADCTSC)

1)ADC开始延时寄存器:ADCDLY、地址0x58000008、复位值0x00FF。

2)ADC转换数据寄存器0:ADCDAT0、地址0x5800000C。

3)ADC转换数据寄存器1:ADCDAT1、地址0x58000010。

ADC转换数据寄存器(ADCDAT0/ADCDAT1)如表6所示。

表6 ADC转换数据寄存器(ADCDAT0/ADCDAT1)

4)ADC触摸屏指针上下中断检测寄存器:ADCUPDN、地址0x58000014、复位值0x0,即

ADC触摸屏指针上下中断检测寄存器(ADCUPDN)如表7所示。

表7 ADC触摸屏指针上下中断检测寄存器(ADCUPDN)

除上述初始化程序外,以下是该显示驱动的主要程序,供读者参考:

6 小结

通过以上对各寄存器的分析得知,只要根据所用的TFT触摸屏的参数,将ARM的LCD控制器与ADC触摸控制器对所设计的TFT-LCD及触摸屏项目参数对应找到修改寄存器的数值,即可达到控制的目的。程序编写时应根据数据的宽度适当调整DELAY控制参数。触摸屏读取X,Y数据时,应适当加入延时程序,防止抖动。ARM的LCD控制器允许设置VCLK,VLINE,VFRAME等信号的极性(上升沿有效还是下降沿有效),需要对照设计的LCD的说明书进行确认。如果不是使用三星LPC3600/LCC3600LCD,必须禁止LPC3600/LCC3600模式。

[1]RM9 基础实验教程[EB/OL].[2011-11-10].http://www.embedinfo.com/.

[2]Roduct specifications 4.3”FT-LCD with touch panel module Model No.:WXCAT43-TG3#001[EB/OL].[2011- 11-10].http://wenku.baidu.com/view/ae4cac2a3169a4517723a310.html?from=related.

[3]应云,曾伟,陈家胜.基于ARM的智能显示终端[J].电子测量技术,2008,31(1):160-162.

[4]晓光,王永明,祝明德.基于CPLD的液晶显示屏与嵌入式处理器的接口设计[J]. 电子测量技术,2006(5):36-38.

猜你喜欢
调色板寄存器触摸屏
大自然的调色板——张掖七彩丹霞
STM32和51单片机寄存器映射原理异同分析
Film review:WALL·E
Lite寄存器模型的设计与实现
大地调色板
PLC和触摸屏在卫生间控制系统的应用
浅析投射式多点触控电容触摸屏
皮肤“长”出触摸屏
调色板
触摸屏项目移植在自动化系统升级中的应用