基于C8051F020的触摸屏驱动控制

 

基于C8051F020的触摸屏驱动控制

[日期:2008-10-29] 来源:国外电子元器件  作者:朱品伟,韩晓新 [字体: ]

 

1 引言
   
目前触摸屏和液晶屏已成为嵌入式计算机系统常用的输入输出设备。触摸屏分为电阻、电容、表面声波、红外线扫描和矢量压力传感式触摸屏,其中使用最多的是四线或五线电阻式触摸屏。TSC2046为四线电阻式触摸屏控制器,以其低功耗和高速率等特性广泛应用于电池供电的小型手持设备。
    C8G051Fxxx系列单片机是完全集成的混合信号系统级器件,峰值速率达25 MI/s。片内集成ADC和DAC;SMBus/I2C、UART、SPI接口:可编程计数器/定时器阵列;64个I/O端口(P0~P7);内部具有JTAG和调试电路,支持在系统调试。本文介绍了利用该系列单片机C8051F020、TSC2046和液晶屏实现人机互动接口。


2 触摸屏工作原理
   
触摸屏控制器相当于触摸屏体与微控制器间的接口。触摸屏体是一个4层的复合薄膜,附着在显示器表面与显示器配合使用。图1为触摸屏外部结构。每一导电层为触摸屏的一个工作面,每个工作面的两端各涂一条银胶,称为该工作面的一对儿电极,分别称为X电极对和Y电极对。当触摸屏控制器同X电极对施加一确定电压,而不向Y电极对施加电压时,X电极对的工作面会形成均匀连续的平行电压场,如图2(a)所示。当手指或触笔触及触摸屏时,触点电压则反映触点在Y工作面的位置,将该电压量通过Y+(或Y-)电极引至触摸屏控制器,经过A/D转换,便可得到触点电压的数字量,即Y坐标。同理,向Y电极对上施加电压,以X+(或X-)为测量电极,便可得到X坐标。微控制器根据触点坐标位置以及对应坐标位置显示内容,便可得知触摸者的意图。

3 TSC2046的工作模式和控制字
    TSC2046可设置为8位或12位工作模式,输入方式为差分输入和单端输入,本文以12位差分输入模式进行说明。表1为TSC22046的控制字。

    其中S为数据传输起始标志位,该位恒为“1”。A2~A0用于通道选择,决定触摸屏体输出模拟电压从TSC2046的哪个引脚输入。MODE用于选择A/D转换的精度,当为1时选择8位;当为0时选择12位。在12位工作模式下,其二进制结果的最低位表示模拟电压为参考电压(TSC2046引脚+VCC与GND的压差)的1/4 096。SER/DFR可用于选择输入模式,SER选择单端模式,DFR选择差分模式。PD1、PD0用于选择省电模式。图3为差分输入模式下的示意图。表2是差分模式输入配置。差分模式是一种比率度量转换方式,加在触摸屏体电极上的电压为TSC2046引脚+VCC与GND之间的电压,转换结果是触摸屏上分布电阻值的百分比。

4 典型应用
4.1 接口电路

    TSC2046与C8051F020的电路连接图如图4所示。触摸屏体两对儿电极通过J2接至TSC2046的四个电极。为了增强驱动能力,TSC2046与C8051F020的连线均通过一只10 kΩ的上拉电阻拉至5 V,采用SPI接口通信,相关引脚对应关系:TSDIN-数据输入、TSBUSY-忙信号、TSINT-笔中断信号、TSDDOUT一数据输出、TSDCLK一时钟信号、TSCS一片选信号。TSC2046与C8051F020连接时,由于TSINT引脚接收TSC2046发送的中断信号,因此配置C8051F020时,TSINT引脚通过交叉开关配置为外部中断引脚。否则只能通过查询TSINT引脚的电平状态判断是否有触摸事件。为了减少干扰,在X+、X-、Y+、Y-四个输入端都应接一只旁路电容,数据线要尽量短。

4.2 程序设计
   
TSC2046的驱动程序遵循标准的SPI协议实现与微控制器的通信。当触摸屏按下时(即有触摸事件发生),则TSC2046通过笔中断引脚(TSINT)向微控制器发送中断请求,微控制器接收请求后,延时30 ms,再响应其请求,目的是消除抖动使采样更准确。如果一次采样不准确,可多次采样并取最后一次结果。TSC2046驱动程序的流程如图5所示。图6为A/D转换时序(一次转换需16个时钟信号)。


    根据时序图,采用12位输出结果方式取读TSC2046子函数代码如下:

   

   
    以上为驱动程序中一个典型子函数,其余子函数与之类似。需要注意的是:完成一次转换需16个时钟信号,输出却为12位数据,因此应加补4个空闲时钟信号,使之达到16个时钟信号,才能得到正确的A/D转换结果。否则,TSC2046与C8051F020无法同步,则无数据输出。此外,TSC2046的控制字发送完成,需禁止SPI通信,直到A/D转换结束,以免数字信号对模拟电压产生干扰。该触摸屏已应用于某医疗设备的输入输出系统,反应良好。

你可能感兴趣的:(基于C8051F020的触摸屏驱动控制)