對于四線電阻式觸摸屏的結構如下圖1,在玻璃或丙烯酸基板上覆蓋有兩層透平,均勻導電的ITO層,分別做為X電極和Y電極,它們之間由均勻排列的透明格點分開絕緣。其中下層的ITO與玻璃基板附著,上層的ITO附著在PET薄膜上。X電極和Y電極的正負端由“導電條”(圖中黑色條形部分)分別從兩端引出,且X電極和Y電極導電條的位置相互垂直。引出端X-,X+,Y-,Y+一共四條線,這就是四線電阻式觸摸屏名稱的由來。當有物體接觸觸摸屏表面并施以一定的壓力時,上層的ITO導電層發生形變與下層ITO發生接觸,該結構可以等效為相應的電路,如下圖2。圖1. 觸摸屏結構圖
圖2. 觸摸屏等效電路
計算觸點的X,Y坐標分為如下兩步:1) 計算Y坐標,在Y+電極施加驅動電壓Vdrive,Y-電極接地,X+做為引出端測量得到接觸點的電壓,由于ITO層均勻導電,觸點電壓與Vdrive電壓之比等于觸點Y坐標與屏高度之比。2) 計算X坐標,在X+電極施加驅動電壓Vdrive,X-電極接地,Y+做為引出端測量得到接觸點的電壓,由于ITO層均勻導電,觸點電壓與Vdrive電壓之比等于觸點X坐標與屏寬度之比。
測得的電壓通常由ADC轉化為數字信號,再進行簡單處理就可以做為坐標判斷觸點的實際位置。四線電阻式觸摸屏除了可以得到觸點的X/Y坐標,還可以測得觸點的壓力,這是因為top layer施壓后,上下層ITO發生接觸,在觸點上實際是有電阻存在的。壓力越大,接觸越充分,電阻就越小,通過測量這個電阻的大小可以量化壓力大小。
通常在觸摸屏應用中對于觸摸屏控制有專門的控制芯片,主要就是為了完成兩個任務:其一,完成電極電壓的切換;其二,采集接觸點處的電壓值(ADC數據)。本案例中觸摸屏使用的觸摸感應驅動芯片為XPT2046,顯示器驅動芯片為ILI9341,下面將分別做介紹。
觸摸感應器
觸摸感應器使用的驅動芯片為XPT2046,其包含了采樣/保持、模數轉換、串口數據輸出等功能。同時芯片集成有一個2.5V的內部參考電壓源、溫度檢測電路,工作時使用外部時鐘。XPT2046可以單電源供電,電源電壓范圍為2.7V~5.5V。參考電壓值直接決定ADC的輸入范圍,參考電壓可以使用內部參考電壓,也可以從外部直接輸入1V~VCC范圍內的參考電壓(要求外部參考電壓源輸出阻抗低)。X、Y、Z、VBAT、Temp和AUX模擬信號經過片內的控制寄存器選擇后進入ADC,ADC可以配置為單端或差分模式。選擇VBAT、Temp和AUX時可以配置為單端模式;作為觸摸屏應用時,可以配置為差分模式,這可有效消除由于驅動開關的寄生電阻及外部的干擾帶來的測量誤差,提高轉換準確度。圖3. XPT2046原理框圖
LCD顯示器
LCD顯示器為一塊240*320的RGB屏幕,使用驅動芯片為ILI9341。ILI9341能夠支持并行和串行數據總線,此案例中我們使用串行總線接口(SPI)來進行數據傳輸。ILI9341驅動器能夠通過窗口地址函數在內部GRAM中指定動態圖像的區域,并且可選擇地更新此窗口區域,這樣就可以在獨立于靜態圖像區域的同時顯示動態圖像。ILI9341支持全彩色,8色顯示模式和休眠模式,能夠通過軟件進行精確的電源控制,使得ILI9341能夠作為手機、MP3和PMP等便攜設備理想的液晶驅動器。
觸摸屏工作原理
下面將對XPT2046驅動芯片的工作原理進行介紹。
模擬輸入
下圖描述了XPT2046片內多路選擇器、ADC的模擬差分輸入和差分參考電壓基準。圖4. 模擬輸入簡圖
內部參考電壓
XPT2046的內部2.5V參考電壓源可通過控制位PD1進行關閉或者打開。一般地,內部參考電壓只用于單端模式下Vbatt、Temp和AUX輸入測量。使用差分模式,觸摸屏可以獲得最佳性能。如果要與ADS7843兼容,XPT2046的內部參考電壓源必須強行關閉。因此,上電后要對控制位PD1置0以確保關閉內部參考源。圖5. 內部電壓源示意圖
外部參考電壓輸入
+REF和-REF(見圖3)之間的電壓差(下文用VREF表示)決定了模擬輸入的電壓范圍。XPT2046的參考電壓輸入范圍為1V~VCC。參考電壓越低,則ADC輸出的二進制數據結果每一個數字位所代表的模擬電壓也越低。在12位工作方式下,數據結果的最低位所代表的模擬電壓為VREF/4096,其余位依此類推。因此,參考電壓越低,干擾引入的誤差會越大,此時要求盡可能使用低噪聲、低波動的參考電壓源;在設計電路板時,盡可能減少干擾,輸入的信號噪音也不能太高,否則會直接影響轉換精度。
差分工作模式
如前所述,當觸摸感應器XPT2046作為觸摸屏應用時,可以配置為差分模式。差分模式的優點是:+REF和-REF的輸入分別直接接到YP、YN上,可消除由于驅動開關的導通電阻引入的坐標測量誤差。缺點是:無論是采樣還是轉換過程中,驅動開關都需要接通,相對單端模式而言,功耗會有增加。當SER/DFR置為低電平時,XPT2046為差分工作模式,如下圖所示。圖6. 差分參考源工作模式簡圖
軟件流程
接下來將簡單介紹本案例的觸摸屏驅動軟件代碼流程。首先上電之后需要對所用到的外設進行初始化,包括CRM、GPIO、SPI和DMA等外設。外設初始化完成后即可開始進行觸摸校準,通過調用touch_adjust()函數完成。校準完成后會在屏幕顯示一系列的校準參數,用于后續計算觸摸坐標使用。隨后,即可開始進行觸摸測試,測試過程中會在屏幕畫出已觸摸的坐標點,以及坐標值。還設置了清屏按鈕,點擊即可清除屏幕已顯示內容和坐標值。為了提高數據傳輸效率,此demo中清屏和畫點數據通過DMA-SPI進行傳輸,軟件流程圖如下:圖7. 軟件流程圖注:由于觸摸校準對觸摸功能來說是必須完成的,如果未完成校準則無法進行后續的工作。
觸摸屏快速使用方法
硬件資源
1) AT32-Video-EV2) 2.4寸TFT_LCD3) AT-START-F403A V1.2實驗板圖8. 觸摸屏硬件資源圖Note:1.該demo是基于AT32F403A的硬件條件,若使用者需要在AT32其他型號上使用,請修改相應配置即可。2.供電部分:使用電源供電,或USB線供電(勿使用Link單獨供電)。
軟件資源
AN0154_LCD_Touch_Sourcecode,觸摸屏案例測試代碼,工程路徑位于:Sourcecode\utilities\mdk_v5
關鍵代碼
1) 觸摸點坐標獲取函數,用于獲取觸摸坐標值,關鍵代碼如下:2) 觸摸校準函數,用于獲取校準參數,關鍵代碼如下:3) 觸摸屏測試函數,用于測試觸摸屏,關鍵代碼如下:4) LCD清屏函數,用于清除顯示內容,關鍵代碼如下:5) LCD畫點函數,用于顯示觸摸坐標點,關鍵代碼如下:
LCD Touch demo 使用
LCD Touch demo使用步驟如下:1) 編譯下載觸摸屏案例測試代碼。2) 觸摸屏進入校準界面,依次點擊四個校準坐標點,如下圖8。3) 校準完成后LCD會顯示校準信息,包含四個校準參數VX、VY、CHX和CHY,如下圖9。4) 點擊屏幕任意處,將會跳轉到觸摸屏測試界面,此時觸摸屏會將觸摸點繪制在LCD上,還會實時顯示觸摸點的坐標,點擊Clear按鈕將清除界面,如下圖10。圖9. 觸摸屏校準界面圖10. 觸摸屏校準信息圖11. 觸摸屏測試界面
-
mcu
+關注
關注
146文章
17135瀏覽量
351031 -
觸摸屏
+關注
關注
42文章
2301瀏覽量
116134 -
SPI
+關注
關注
17文章
1706瀏覽量
91525 -
雅特力
+關注
關注
0文章
157瀏覽量
8004
發布評論請先 登錄
相關推薦
評論