XPT2046是四线电阻式触摸屏,主要由两层镀有ITO镀层的薄膜组成。其中一层在屏幕的左右边缘各有一条垂直总线,另一层在屏幕的底部和顶部各有一条水平总线,如果在一层薄膜的两条总线上施加电压,在ITO镀层上就会形成均匀电场。当使用者触击触摸屏时,触击点处两层薄膜就会接触,在另一层薄膜上就可以测量到接触点的电压。
(图片来源于互联网)
为了在X轴方向进行测量,将左侧总线偏置为0V,右侧总线偏置为VCC。将顶部或底部总线连接到ADC,当顶层和底层相接触时即可作一次测量。
为了在Y轴方向进行测量,将顶部总线偏置为VCC,底部总线偏置为0V。将ADC输入端接左侧总线或右侧总线,当顶层与底层相接触时即可对电压进行测量。
如下图,测量出来的电压值与接触点的位置线性相关,即可以由VPX和VPY分别计算出接触点P的X和Y坐标。
在实际测量中,控制电路会交替在X和Y电极组上施加VCC电压,进行电压测量和计算接触点的坐标。举例说明测量流程:
第一步,在X+上施加VCC,X-上施加0V电压,测量Y+(或Y-)电极上的电压值VPX,计算出接触点P的X坐标;
第二步,在Y+上施加VCC,Y-上施加0V电压,测量X+(或X-)电极上的电压值VPY,计算出接触点P的Y坐标;
以上两步组成一个测量周期,可以得到一组(X,Y)坐标。
(图片来源于互联网)
1、电阻触摸屏控制器XPT2046
通过以上介绍,可知要实现对某个触摸点的坐标测量,需要对电阻触摸屏模组的两层导电薄膜分时施加电压,在对其中一个导电薄膜的电极施加电压时,使用ADC去测量另一层导电薄膜的电极上的电压。由此可知,触摸控制器必须能够支持两个功能:
1)触摸控制器能够对连接的电极施加电压
2)触摸控制器能够测量电极上的电压(ADC)
即触摸控制器不仅仅是简单的ADC,因为其还要能够给电极提供电压,所以我们无法使用通用的ADC来完成4线电阻触摸屏的控制。为了实现对电阻触摸屏的控制,以TI为代表的众多厂商推出了专用的触摸控制器,如TI的TSC2046、ADS7843,两者功能相同,封装兼容,可以直接替换。同时,国内也有厂商推出了能够完全兼容的器件,最典型的如深圳矽普特公司推出的XPT2046,该芯片可完全兼容TI的TSC2046器件。本教程主要以该芯片为依据进行讲解。
2、XPT2046特性:
工作电压范围为2.2V~5.25V
支持1.5V~5.25V的数字I/O口
内建2.5V参考电压源
电源电压测量(0V~6)
内建结温测量功能
触摸压力测量
采用SPI3线控制通信接口
具有自动power-down功能
封装:QFN-16、TSSOP-16和VFBGA-48
与TSC2046、AK4182A完全兼容
XPT2046在125KHz转换速率和2.7V电压下的功耗仅为750μW。XPT2046以其低功耗和高速率等特性,被广泛应用在采用电池供电的小型手持设备上,比如PDA、手机等。
XPT2046内部框图:
下图为XPT2046的功能框图,可见XPT2046内部包含了一个多路选择器,能够测量电池电压、AUX电压、芯片温度。一个12位的ADC用于对选择的模拟输入通道进行模数转换,得到数字量,然后送入控制逻辑电路,供主控CPU进行读取,同时,具体选择哪个通道进行转换,也是由主控CPU发送命令给控制逻辑来设置的。
(图片来源于互联网)
XPT支持笔触中断,即当触摸屏检测到触摸被按下时,可以立即产生笔触中断,通知主控制器可以控制开始转换并读取数据。在转换过程中,通过busy信号指示当前忙状态,以避免主控发出新的命令中断之前的命令。
XPT2046引脚图及功能:
1、XPT2046引脚图
(图片来源于互联网)
XPT2046引脚功能:
(图片来源于互联网)
XPT2046通过SPI接口与主控制器进行通信,其与主控制器的接口包括以下信号:
PENIRQ_N:笔触中断信号,当设置了笔触中断信号有效时,每当触摸屏被按下,该引脚被拉为低电平。当主控检测到该信号后,可以通过发控制信号来禁止笔触中断,从而避免在转换过程中误触发控制器中断。该引脚内部连接了一个50K的上拉电阻。
CS_N:芯片选中信号,当CS_N被拉低时,用来控制转换时序并使能串行输入/输出寄存器以移出或移入数据。当该引脚为高电平时,芯片(ADC)进入掉电模式。
DCLK:外部时钟输入,该时钟用来驱动SARADC的转换进程并驱动数字IO上的串行数据传输。
DIN:芯片的数据串行输入脚,当CS为低电平时,数据在串行时钟DCLK的上升沿被锁存到片上的寄存器。
DOUT:串行数据输出,在串行时钟DCLK的下降沿数据从此引脚上移出,当CS_N引脚为高电平时,该引脚为高阻态。
BUSY:忙输出信号,当芯片接收完命令并开始转换时,该引脚产生一个DCLK周期的高电平。当该引脚由高点平变为低电平的时刻,转换结果的最高位数据呈现在DOUT引脚上,主控可以读取DOUT的值。当CS_N引脚为高电平时,BUSY引脚为高阻态。
XPT2046工作原理:
XPT2046是一种典型的逐次逼近型模数转换器(SARADC),包含了采样/保持、模数转换、串口数据输出等功能。同时芯片集成有一个2.5V的内部参考电压源、温度检测电路,工作时使用外部时钟。XPT2046可以单电源供电,电源电压范围为2.7V~5.5V。参考电压值直接决定ADC的输入范围,参考电压可以使用内部参考电压,也可以从外部直接输入1V~VCC范围内的参考电压(要求外部参考电压源输出阻抗低)。X、Y、Z、VBAT、Temp和AUX模拟信号经过片内的控制寄存器选择后进入ADC,ADC可以配置为单端或差分模式。选择VBAT、Temp和AUX时可以配置为单端模式;作为触摸屏应用时,可以配置为差分模式,这可有效消除由于驱动开关的寄生电阻及外部的干扰带来的测量误差,提高转换准确度。
下图为XPT2046的典型工作电路:
(图片来源于互联网)
XPT2046有四个引脚,用于连接到四线制电阻屏的FPC上,分别为XP、XN、YP、YN,连接到对应的四线制电阻屏的X电极的正端、负端和Y电极的正端、负端。此四个引脚每个都能工作于两种状态,分别为电源/GND输出、ADC输入。例如设置ADC工作在差分模式,当测量X方向的坐标时,XP输出VCC、XN连接到GND,此时,YP和YN作为ADC的差分输入脚连接到ADC上,通过测量YP和YN之间的电压差来得到当前触摸点的X位置。同理,当测量Y方向的坐标时,YP输出VCC、YN连接到GND、此时,XN和XP作为ADC的差分输入脚连接到ADC上,通过测量YP和YN之间的电压差来得到当前触摸点的Y位置。
评论 (0)