25回答

3收藏

基于XPT2046的电阻式触摸屏设计

 

STMCU STMCU 7884 人阅读 | 25 人回复 | 2014-07-15

本帖最后由 胜利就是我的 于 2014-7-15 15:57 编辑

        XPT2046是一款四线制电阻触摸屏控制芯片,由深圳市矽普特科技有限公司研发生产,被广泛的应用于触摸屏驱动,堪称经典之作!他内含12位分辨率125KHz转换速率逐步逼近型A/D转换器,支持从1.5V到5.25V的低电压I/O接口。能通过执行两次A/D转换查出被按的屏幕位置, 除此之外,还可以测量加在触摸屏上的压力。
                              

                           

连接方法:
                                                   

    1、9、10引脚接VCC,6引脚接GND,2、3、4、5引脚接触摸屏的4条引脚线,16、15、14、12引脚接单片机SPI引脚,11接单片机某个引脚。

工作原理:

        把XPT2046第11引脚接到STM32单片机的引脚设置为中断引脚,触摸屏没有被触摸时,11引脚保持高电平,当有触摸屏被触摸时,11引脚变为低电平。所以用STM32单片机检测11引脚的高低电平,就可以知道有没有触摸屏触摸事件发生。如果发生了触摸屏按下事件,单片机通过SPI口,首先发送读取X坐标的命令0X90,然后读出2个字节的数据,然后再发送读取Y坐标的命令0XD0,然后再读出2个字节的数据。这时候,XY的坐标值就知道了,因为XPT2046是12位精度的ADC,所以读出的2个字节中,只有高12位是有效数据。
关于触摸校准:
     触摸液晶屏的4个角,采集X和Y坐标的12位值。这时候,就分别得到了X坐标和Y坐标的最小值和最大值,根据液晶屏的分辨率,再通过数学等比公式,就可以通过采集得到的12位ADC值得出现在触摸到屏幕的哪个点了。
……………………………………………………………………..
    对于一个资深级的电子人,看了我上面的表述,就知道XPT2046怎么用了。但是,对于触摸屏的你,上面的表述对你而言就是雾里看花。不要着急,下面我给你从0补起。
首先,你要知道,我上面所讲的内容是:使用XPT2046驱动4线电阻式触摸屏。那么,你见过4线电阻式触摸屏吗?没见过怎么办?好办!请看下图:
大部分的电阻式触摸屏,都是4线制的,就是引出了4条线的意思。我随便找了一个

                                                   


         看它引出的排线,共4条线,所以是4线制的,也就是说,这个触摸屏,就可以用XPT2046驱动。
看到这里,你就赚了,你已经认识了电阻式触摸屏的真面目了,这就是工作单位要的工作经验,想要更多干货,请继续往下看吧。

      从前面我们了解到,此芯片的供电电压是常用的3.3V和5V电源都可以。再加上“支持1.5V~5.25V的数字I/O口”特性。就是说,我们常用的5V的和3.3V的单片机,都可以作为他的控制器了,有没有觉得在单片机选型上放宽很多了?

    XPT2046与MCU连接:
    XPT2046与单片机采用SPI连接。分别为引脚16:DCLK(SPI时钟引脚);引脚15:CS(使能引脚或者叫做片选引脚);引脚14:DIN(数据输入引脚);引脚12:DOUT(数据输出引脚)。带SPI模块的单片机,可以配置SPI模块与XPT2046通信。不带SPI模块的单片机,可以随便找4个引脚,模拟SPI时序,与XPT2046通信。
     除了SPI通信的4个引脚,还有一个引脚必须接:PENIRQ。当触摸屏有触摸事件发生,这个引脚就会拉低,所以我们把这个引脚接到单片机的某个中断引脚,就可以随时发现触摸屏有被按下(用外部中断)。

XPT2046的SPI时序


      




当我们读出了触摸屏的ADC值后,就可以把它对应到TFT LCD上了


最后提醒朋友们,使用外部中断别忘了打开AFIO复用时钟。
      来看看触摸画板的效果吧

     画的丑了点,轻喷

                                                         

                                                                  




这是MDK的工程
【02】火牛_LCD Touch(2014.07.10).rar (352.23 KB, 下载次数: 87)

                           
                                                      
分享到:
回复

使用道具 举报

回答|共 25 个

倒序浏览

沙发

cmyldd

发表于 2014-7-15 18:15:58 | 只看该作者

标记一下,会有用到的
板凳

feel-123

发表于 2014-7-15 21:35:58 | 只看该作者

价格比ads8743便宜吗?
地板

小鹏

发表于 2014-7-16 08:55:15 | 只看该作者

很好,帮顶了。
SmartStudio主要致力于智能硬件与物联网技术,让生活更智能是我们的梦想。make the life smart
5#

shanji

发表于 2014-7-16 09:31:20 | 只看该作者

heelary 发表于 2014-7-15 21:35
价格比ads8743便宜吗?

大概看了一下,便宜好几块钱。

点评

便宜几块钱就竞争力了。  发表于 2014-7-16 09:47
6#

shanji

发表于 2014-7-16 09:32:11 | 只看该作者

小鹏 发表于 2014-7-16 08:55
很好,帮顶了。

                                    
7#

shanji

发表于 2014-7-18 13:44:46 | 只看该作者

cmyldd 发表于 2014-7-15 18:15
标记一下,会有用到的

谢谢!!!
8#

stm32qq83843725

发表于 2014-7-18 13:51:25 | 只看该作者

楼主,你太伟大了,这么好的资料,终于找到了
专业生产STM32开发板,TI开发板,仿真器配件   http://openmcu.taobao.com
9#

wbsouth

发表于 2014-7-18 14:42:07 | 只看该作者

楼主写的很好,支持一下。
TI玉兔LM3S9B96开发板,金龙STM32F107开发板
http://shop36995246.taobao.com/
10#

jeanson-363338

发表于 2014-7-18 16:43:01 | 只看该作者

楼主写的很好哦,顶一个,就是图画的不好看
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条