XPT2046是一款四線制電阻觸摸屏控制芯片,由深圳市矽普特科技有限公司研發(fā)生產(chǎn),被廣泛的應(yīng)用于觸摸屏驅(qū)動,堪稱經(jīng)典之作!他內(nèi)含12位分辨率125KHz轉(zhuǎn)換速率逐步逼近型A/D轉(zhuǎn)換器,支持從1.5V到5.25V的低電壓I/O接口。能通過執(zhí)行兩次A/D轉(zhuǎn)換查出被按的屏幕位置, 除此之外,還可以測量加在觸摸屏上的壓力。
連接方法:
說明:1、9、10引腳接VCC,6引腳接GND,2、3、4、5引腳接觸摸屏的4條引腳線,16、15、14、12引腳接單片機(jī)SPI引腳,11接單片機(jī)某個引腳。
工作原理:
把XPT2046第11引腳接到STM32單片機(jī)的引腳設(shè)置為中斷引腳,觸摸屏沒有被觸摸時,11引腳保持高電平,當(dāng)有觸摸屏被觸摸時,11引腳變?yōu)榈碗娖?。所以用STM32單片機(jī)檢測11引腳的高低電平,就可以知道有沒有觸摸屏觸摸事件發(fā)生。如果發(fā)生了觸摸屏按下事件,單片機(jī)通過SPI口,首先發(fā)送讀取X坐標(biāo)的命令0X90,然后讀出2個字節(jié)的數(shù)據(jù),然后再發(fā)送讀取Y坐標(biāo)的命令0XD0,然后再讀出2個字節(jié)的數(shù)據(jù)。這時候,XY的坐標(biāo)值就知道了,因為XPT2046是12位精度的ADC,所以讀出的2個字節(jié)中,只有高12位是有效數(shù)據(jù)。
關(guān)于觸摸校準(zhǔn):
觸摸液晶屏的4個角,采集X和Y坐標(biāo)的12位值。這時候,就分別得到了X坐標(biāo)和Y坐標(biāo)的最小值和最大值,根據(jù)液晶屏的分辨率,再通過數(shù)學(xué)等比公式,就可以通過采集得到的12位ADC值得出現(xiàn)在觸摸到屏幕的哪個點(diǎn)了。
對于一個資深級的電子人,看了我上面的表述,就知道XPT2046怎么用了。但是,對于觸摸屏的你,上面的表述對你而言就是霧里看花。不要著急,下面我給你從0補(bǔ)起。
首先,你要知道,我上面所講的內(nèi)容是:使用XPT2046驅(qū)動4線電阻式觸摸屏。那么,你見過4線電阻式觸摸屏嗎?沒見過怎么辦?好辦!請看下圖:
大部分的電阻式觸摸屏,都是4線制的,就是引出了4條線的意思。我隨便找了一個
看它引出的排線,共4條線,所以是4線制的,也就是說,這個觸摸屏,就可以用XPT2046驅(qū)動。
看到這里,你就賺了,你已經(jīng)認(rèn)識了電阻式觸摸屏的真面目了,這就是工作單位要的工作經(jīng)驗,想要更多干貨,請繼續(xù)往下看吧。
從前面我們了解到,此芯片的供電電壓是常用的3.3V和5V電源都可以。再加上“支持1.5V~5.25V的數(shù)字I/O口”特性。就是說,我們常用的5V的和3.3V的單片機(jī),都可以作為他的控制器了,有沒有覺得在單片機(jī)選型上放寬很多了?
XPT2046與MCU連接:
XPT2046與單片機(jī)采用SPI連接。分別為引腳16:DCLK(SPI時鐘引腳);引腳15:CS(使能引腳或者叫做片選引腳);引腳14:DIN(數(shù)據(jù)輸入引腳);引腳12:DOUT(數(shù)據(jù)輸出引腳)。帶SPI模塊的單片機(jī),可以配置SPI模塊與XPT2046通信。不帶SPI模塊的單片機(jī),可以隨便找4個引腳,模擬SPI時序,與XPT2046通信。
除了SPI通信的4個引腳,還有一個引腳必須接:PENIRQ。當(dāng)觸摸屏有觸摸事件發(fā)生,這個引腳就會拉低,所以我們把這個引腳接到單片機(jī)的某個中斷引腳,就可以隨時發(fā)現(xiàn)觸摸屏有被按下(用外部中斷)。
XPT2046的SPI時序
最后提醒朋友們,使用外部中斷別忘了打開AFIO復(fù)用時鐘。
來看看觸摸畫板的效果吧