- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
XPT2046
XPT2046是一款四线制电阻触摸屏控制芯片,由深圳市矽普特科技有限公司研发生产,被广泛的应用于触摸屏驱动,堪称经典之作!
接线方法:
1、9、10引脚接VCC,6引脚接GND,2、3、4、5引脚接触摸屏的4条引脚线,16、15、14、12引脚接单片机SPI引脚,11接单片机某个引脚。
工作原理:
把XPT2046第11引脚接到单片机的引脚设置为中断引脚,触摸屏没有被触摸时,11引脚保持高电平,当有触摸屏被触摸时,11引脚变为低电平。所以单片机检测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驱动。
瑞生(Ration)的2.4寸TFT上面所配的触摸屏,也是4线制的,如下图所示:
上图中,红色圆圈就是电阻式触摸屏的4条引脚。
看到这里,你就赚了,你已经认识了电阻式触摸屏的真面目了,这就是工作单位要的工作经验,想要更多干货,请继续往下看吧。
现在来看看,XPT2046怎么与它连接?
1.电源
作为一个芯片,肯定有VCC和GND,就是要给它供电。我们首先要看它的datasheet上供电的范围,如下图所示:
由datasheet可以看出。此芯片的供电电压,我们使用常用的3.3V和5V电源都可以。再加上“支持1.5V~5.25V的数字I/O口”特性。就是说,我们常用的5V的和3.3V的单片机,都可以作为他的控制器了,是不是在单片机选型上放宽很多了?
2.与触摸屏的连接
我们发现,XPT2046的2、3、4、5脚名称为XP、YP、XN、YN。P就是Positive,“正”的意思;N就是Negative,“负”的意思。所以有时候,你会看到引脚名称写法为X+、Y+、X-、Y-。这四个引脚,就是连接触摸屏的四个引脚。当你买触摸屏的时候,你的触摸屏商家就会告诉你触摸屏上的引线名称。如下图所示:
3.与单片机(MCU)的连接
XPT2046与单片机采用SPI连接。分别为引脚16:DCLK(SPI时钟引脚);引脚15:CS(使能引脚或者叫做片选引脚);引脚14:DIN(数据输入引脚);引脚12:DOUT(数据输出引脚)。有些单片机上,带SPI,有些单片上,不带SPI。带SPI模块的单片机,可以配置SPI模块与XPT2046通信。不带SPI模块的单片机,可以随便找4个引脚,模拟SPI时序,与XPT2046通信。
除了SPI通信的4个引脚,还有一个引脚必须接:PENIRQ。当触摸屏有触摸事件发生,这个引脚就会拉低,所以我们把这个引脚接到单片机的某个中断引脚,就可以随时发现触摸屏有被按下。
XPT2046的SPI时序如下图所示:
BUSY是XPT2046的引脚13,是“忙时信号线”。
时序图分析:单片机把CS引脚拉低,开始SPI通信。DIN引脚发送1字节命令后,BUSY引脚拉高等待XPT2046内部ADC模块转换,转换结果完成后,BUSY引脚自动拉低,这时,可以通过DOUT引脚读出转换好的2字节数据,就是16个位,其中,高12位是有效数据,低4位无效。其中BUSY引脚可以用“延时一段时间”来代替,节省单片机引脚资源。这段文字,用单片机4个引脚模拟SPI程序表示就是:
以上程序中,Read是读取命令,Num是最后得到的值。读取X坐标的命令是0XD0,读取Y坐标的命令是0X90。这个命令从哪里来?这个就要看datasheet了。看时序图中的DIN命令字节,如下图所示:
关于命令字里面每个位的意义,datasheet上是这么说的:
bit0和bit1选择功耗,00或11都可以,bit2我们选择差分输入模式
文档评论(0)