<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

雅特力AT32 MCU實現SPI驅動觸摸屏應用程序的一般方法

雅特力 AT32 MCU ? 2024-01-19 08:14 ? 次閱讀

對于四線電阻式觸摸屏的結構如下圖1,在玻璃或丙烯酸基板上覆蓋有兩層透平,均勻導電的ITO層,分別做為X電極和Y電極,它們之間由均勻排列的透明格點分開絕緣。其中下層的ITO與玻璃基板附著,上層的ITO附著在PET薄膜上。X電極和Y電極的正負端由“導電條”(圖中黑色條形部分)分別從兩端引出,且X電極和Y電極導電條的位置相互垂直。引出端X-,X+,Y-,Y+一共四條線,這就是四線電阻式觸摸屏名稱的由來。當有物體接觸觸摸屏表面并施以一定的壓力時,上層的ITO導電層發生形變與下層ITO發生接觸,該結構可以等效為相應的電路,如下圖2。圖1. 觸摸屏結構圖b634938a-b65f-11ee-aa22-92fbcf53809c.png

圖2. 觸摸屏等效電路

b641aba6-b65f-11ee-aa22-92fbcf53809c.png

計算觸點的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原理框圖b65b6262-b65f-11ee-aa22-92fbcf53809c.png

LCD顯示器

LCD顯示器為一塊240*320的RGB屏幕,使用驅動芯片為ILI9341。ILI9341能夠支持并行和串行數據總線,此案例中我們使用串行總線接口(SPI)來進行數據傳輸。ILI9341驅動器能夠通過窗口地址函數在內部GRAM中指定動態圖像的區域,并且可選擇地更新此窗口區域,這樣就可以在獨立于靜態圖像區域的同時顯示動態圖像。ILI9341支持全彩色,8色顯示模式和休眠模式,能夠通過軟件進行精確的電源控制,使得ILI9341能夠作為手機、MP3和PMP等便攜設備理想的液晶驅動器。

觸摸屏工作原理

下面將對XPT2046驅動芯片的工作原理進行介紹。

模擬輸入

下圖描述了XPT2046片內多路選擇器、ADC的模擬差分輸入和差分參考電壓基準。圖4. 模擬輸入簡圖b66c7cd2-b65f-11ee-aa22-92fbcf53809c.png

內部參考電壓

XPT2046的內部2.5V參考電壓源可通過控制位PD1進行關閉或者打開。一般地,內部參考電壓只用于單端模式下Vbatt、Temp和AUX輸入測量。使用差分模式,觸摸屏可以獲得最佳性能。如果要與ADS7843兼容,XPT2046的內部參考電壓源必須強行關閉。因此,上電后要對控制位PD1置0以確保關閉內部參考源。圖5. 內部電壓源示意圖b6822b54-b65f-11ee-aa22-92fbcf53809c.png

外部參考電壓輸入

+REF和-REF(見圖3)之間的電壓差(下文用VREF表示)決定了模擬輸入的電壓范圍。XPT2046的參考電壓輸入范圍為1V~VCC。參考電壓越低,則ADC輸出的二進制數據結果每一個數字位所代表的模擬電壓也越低。在12位工作方式下,數據結果的最低位所代表的模擬電壓為VREF/4096,其余位依此類推。因此,參考電壓越低,干擾引入的誤差會越大,此時要求盡可能使用低噪聲、低波動的參考電壓源;在設計電路板時,盡可能減少干擾,輸入的信號噪音也不能太高,否則會直接影響轉換精度。

差分工作模式

如前所述,當觸摸感應器XPT2046作為觸摸屏應用時,可以配置為差分模式。差分模式的優點是:+REF和-REF的輸入分別直接接到YP、YN上,可消除由于驅動開關的導通電阻引入的坐標測量誤差。缺點是:無論是采樣還是轉換過程中,驅動開關都需要接通,相對單端模式而言,功耗會有增加。當SER/DFR置為低電平時,XPT2046為差分工作模式,如下圖所示。圖6. 差分參考源工作模式簡圖b6926cc6-b65f-11ee-aa22-92fbcf53809c.png

軟件流程

接下來將簡單介紹本案例的觸摸屏驅動軟件代碼流程。首先上電之后需要對所用到的外設進行初始化,包括CRM、GPIO、SPI和DMA等外設。外設初始化完成后即可開始進行觸摸校準,通過調用touch_adjust()函數完成。校準完成后會在屏幕顯示一系列的校準參數,用于后續計算觸摸坐標使用。隨后,即可開始進行觸摸測試,測試過程中會在屏幕畫出已觸摸的坐標點,以及坐標值。還設置了清屏按鈕,點擊即可清除屏幕已顯示內容和坐標值。為了提高數據傳輸效率,此demo中清屏和畫點數據通過DMA-SPI進行傳輸,軟件流程圖如下:圖7. 軟件流程圖b6a0bb28-b65f-11ee-aa22-92fbcf53809c.png注:由于觸摸校準對觸摸功能來說是必須完成的,如果未完成校準則無法進行后續的工作。

觸摸屏快速使用方法

硬件資源

1) AT32-Video-EV2) 2.4寸TFT_LCD3) AT-START-F403A V1.2實驗板圖8. 觸摸屏硬件資源圖b6ad0784-b65f-11ee-aa22-92fbcf53809c.pngNote:1.該demo是基于AT32F403A的硬件條件,若使用者需要在AT32其他型號上使用,請修改相應配置即可。2.供電部分:使用電源供電,或USB線供電(勿使用Link單獨供電)。

軟件資源

AN0154_LCD_Touch_Sourcecode,觸摸屏案例測試代碼,工程路徑位于:Sourcecode\utilities\mdk_v5

關鍵代碼

1) 觸摸點坐標獲取函數,用于獲取觸摸坐標值,關鍵代碼如下:b6ce2e3c-b65f-11ee-aa22-92fbcf53809c.png2) 觸摸校準函數,用于獲取校準參數,關鍵代碼如下:b6e735da-b65f-11ee-aa22-92fbcf53809c.png3) 觸摸屏測試函數,用于測試觸摸屏,關鍵代碼如下:b704fb2e-b65f-11ee-aa22-92fbcf53809c.png4) LCD清屏函數,用于清除顯示內容,關鍵代碼如下:b7181ea2-b65f-11ee-aa22-92fbcf53809c.png5) LCD畫點函數,用于顯示觸摸坐標點,關鍵代碼如下:b723f966-b65f-11ee-aa22-92fbcf53809c.png

LCD Touch demo 使用

LCD Touch demo使用步驟如下:1) 編譯下載觸摸屏案例測試代碼。2) 觸摸屏進入校準界面,依次點擊四個校準坐標點,如下圖8。3) 校準完成后LCD會顯示校準信息,包含四個校準參數VX、VY、CHX和CHY,如下圖9。4) 點擊屏幕任意處,將會跳轉到觸摸屏測試界面,此時觸摸屏會將觸摸點繪制在LCD上,還會實時顯示觸摸點的坐標,點擊Clear按鈕將清除界面,如下圖10。圖9. 觸摸屏校準界面b732a54c-b65f-11ee-aa22-92fbcf53809c.png圖10. 觸摸屏校準信息b7460628-b65f-11ee-aa22-92fbcf53809c.png圖11. 觸摸屏測試界面b75ab12c-b65f-11ee-aa22-92fbcf53809c.png

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • mcu
    mcu
    +關注

    關注

    146

    文章

    16100

    瀏覽量

    344553
  • 觸摸屏
    +關注

    關注

    42

    文章

    2152

    瀏覽量

    113984
  • SPI
    SPI
    +關注

    關注

    17

    文章

    1622

    瀏覽量

    89825
  • 雅特力
    +關注

    關注

    0

    文章

    142

    瀏覽量

    7806
收藏 人收藏

    評論

    相關推薦

    AT32 MCU Printf的功能使用方法

    AT32 MCU Printf的功能使用方法
    的頭像 發表于 10-27 09:27 ?531次閱讀
    <b class='flag-5'>AT32</b> <b class='flag-5'>MCU</b> Printf的功能使用<b class='flag-5'>方法</b>

    AT32微控制器上實現基于Zbar解碼庫的QR Decode應用程序

    本應用筆記的目的是提供在AT32微控制器上實現基于Zbar解碼庫的QR Decode應用程序一般方法。
    發表于 10-26 08:07

    AT32微控制器上實現SPI驅動觸摸屏應用程序一般方法

    AT32 LCD Touch Driven By SPI提供在AT32微控制器上實現SPI驅動
    發表于 10-26 07:07

    使用CAN的AT32 IAP

    AT32微控制器上創建IAP應用程序一般準則。AT32微控制器可以運行用戶特定的固件來對微控制器中嵌入的閃存執行IAP。此功能可以使用產品可用和支持的任何通信接口。本應用筆記使用自
    發表于 10-26 06:39

    AT32 MCU SDIO入門指南

    AT32 MCU SDIO入門指南本應用入門指南主要介紹以下幾部分內容:1.基于提供V2.x.x 的BSP板級支持包來進行SD 存儲卡
    發表于 10-25 08:08

    AT32 MCU QSPI應用說明

    AT32 MCU QSPI Application Note主要介紹以下幾部分內容:1. 基于提供的V2.x.x 的BSP 板級支持包
    發表于 10-25 06:18

    如何優化MCU SPI驅動程序實現高ADC吞吐速率

    如何優化MCU SPI驅動程序實現高ADC吞吐速率
    的頭像 發表于 10-24 16:03 ?379次閱讀
    如何優化<b class='flag-5'>MCU</b> <b class='flag-5'>SPI</b><b class='flag-5'>驅動程序</b>以<b class='flag-5'>實現</b>高ADC吞吐速率

    局域網上的AT32 EMAC喚醒

    AT32 EMAC wake on LAN本文以的AT32F407系列,演示了系列的范例
    發表于 10-24 08:30

    AT32微控制器上創建IAP by Kermit應用程序方法

    AT32 IAP by Kermit提供在AT32微控制器上創建IAP by Kermit應用程序方法。
    發表于 10-24 07:56

    AT32 EMAC iperf相關資料

    AT32 EMAC iperf本文以的AT32F407系列,演示了系列的范例
    發表于 10-24 06:54

    AT32微控制器上創建Multi MCU IAP應用程序方法

    對于大多數基于閃存的系統,項重要要求是能夠在最終產品中安裝固件時進行更新。此功能稱為應用程序內編程(IAP)。本應用筆記的目的是提供在AT32微控制器上創建Multi MCU IAP
    發表于 10-24 06:48

    AT32 EMAC遠程登錄

    AT32 EMAC telnet本文以的AT32F407系列,演示了系列的范例
    發表于 10-24 06:04

    AT32微控制器上創建OTA應用程序一般準則

    AT32 OTA using the USART提供在AT32微控制器上創建OTA應用程序一般準則。
    發表于 10-19 07:43

    AT32微控制器上實現QR Decode應用程序一般方法

    QR Decode to VirtualComPort提供在AT32微控制器上實現QR Decode應用程序一般方法。
    發表于 10-19 07:03

    車載觸摸屏點不動怎么辦 觸摸屏失靈修復小技巧

    觸摸屏問題有時可能是由于應用程序或系統緩存導致的。在設備設置中找到應用程序管理器,選擇相關的應用程序,清除其數據和緩存。這將幫助解決與觸摸屏
    發表于 08-15 15:17 ?8884次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>