0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

「技術(shù)干貨」工業(yè)觸摸屏之驅(qū)動(dòng)開(kāi)發(fā)及異常分析(連載)

武漢萬(wàn)象奧科 ? 2022-06-10 10:54 ? 次閱讀

觸摸屏作為嵌入式產(chǎn)品中常用的交互設(shè)備,具有交互直觀,編程簡(jiǎn)易等特點(diǎn),本系列文章將以多種角度分析如何選擇合適的觸摸屏方案及常見(jiàn)的故障解決方法。本文主題為電阻屏的驅(qū)動(dòng)組成以及多數(shù)觸摸屏的異常分析。

1.1 測(cè)試環(huán)境

處理器:AM335x

內(nèi)核版本:Linux-3.2

硬件條件:四線電阻屏、五線電阻屏

1.2 驅(qū)動(dòng)組成部分

觸摸屏的處理流程離不開(kāi),響應(yīng)中斷上報(bào)事件,對(duì)于電容屏同樣有效的。所以對(duì)于觸摸屏,只需僅僅把握中響應(yīng)中斷上報(bào)事件的流程,即可定位是軟件還是硬件故障。

以AM335x的電阻屏為例,涉及的驅(qū)動(dòng)子系統(tǒng)列表如表1.1所示。觸摸子系統(tǒng)是對(duì)觸摸屏的抽象層,輸入子系統(tǒng)提供符合上層應(yīng)用使用的接口,中斷子系統(tǒng)負(fù)責(zé)接收外設(shè)的中斷信號(hào),ADC子系統(tǒng)負(fù)責(zé)提供電場(chǎng)信號(hào)以及采集電壓值。

表1.1 電阻屏相關(guān)驅(qū)動(dòng)

get?code=MDJiNTM3MzQ0YjdjZWVlN2ZmOWQ5MThhNTY0OGFlYTQsMTY1NDgyNjA3MjU1Mw==

1.3 AM335x電阻屏驅(qū)動(dòng)

相關(guān)代碼位置如表1.2所示。

表1.2 電阻屏代碼路徑

get?code=MmEyZjQxYTUwN2U5OGU0ZWJmMzhlZWUyOTdkZDIxZTYsMTY1NDgyNjA3MjU1Mw==

板級(jí)文件記錄下ADC模組中哪些通道用作觸摸功能,哪些通道用作模數(shù)轉(zhuǎn)換功能,如代碼清單1.1所示。

代碼清單1.1 板級(jí)描述文件

路徑:arch/arm/mach-omap2/board-am335xevm.c

get?code=MDQyOTZkMDJlY2Y1MmU3NDVhNjMwZDM4MDc4MmMzYzIsMTY1NDgyNjA3MjU1Mw==

ADC模塊驅(qū)動(dòng)是對(duì)ADC通道的抽象整理,會(huì)涉及部分觸摸的寄存器。例如《【應(yīng)用技術(shù)】觸摸屏技術(shù)之二:原理分析》中提到CTRL Register的AFE_Pen_Ctrl Bits用于選擇中斷觸發(fā)信號(hào)輸入腳,如代碼清單1.2所示。

代碼清單1.2 ADC模塊驅(qū)動(dòng)

路徑:drivers/mfd/ti_tscadc.c

get?code=OGEyODZmMzUzZDVkYWU5YjE3NGU3MjIwOTQwMzkwOGUsMTY1NDgyNjA3MjU1Mw==

最后就來(lái)介紹負(fù)責(zé)抽象整個(gè)觸摸設(shè)備的觸摸屏驅(qū)動(dòng)文件,觸摸驅(qū)動(dòng)內(nèi)封裝了中斷、ADC模組的寄存器操作、輸入事件的上報(bào)工作。

設(shè)置X軸采集時(shí)的配置如代碼清單1.3所示。結(jié)合《【應(yīng)用技術(shù)】觸摸屏技術(shù)之二:原理分析》的《四線屏寄存器配置》和《五線屏寄存器配置》內(nèi)容可知,stepconfigx為X軸采集時(shí)的通用配置,當(dāng)系統(tǒng)設(shè)備為四線模式時(shí),開(kāi)啟XPP、XNN形成電場(chǎng),INP值代表采集引腳為AN2。當(dāng)系統(tǒng)設(shè)備為五線模式時(shí),開(kāi)啟XPP、YNN、XNN、YPP形成電場(chǎng),INP_5代表采集引腳為AN4。

代碼清單1.3 X軸ADC配置

路徑:drivers/input/touchscreen/ti_tsc.c

get?code=Nzc0ZDg5ZDA3ZDU0YzE2ZmMyMzJiZjY2Nzc0YTI2ZDIsMTY1NDgyNjA3MjU1Mw==

設(shè)置Y軸采集時(shí)的配置如代碼清單1.4所示,stepconfigy為Y軸采集時(shí)的通用配置,當(dāng)系統(tǒng)設(shè)備為四線模式時(shí),開(kāi)啟YPP、YNN形成電場(chǎng),INP值沒(méi)有設(shè)置,默認(rèn)使用AN0。當(dāng)系統(tǒng)設(shè)備為五線模式時(shí),開(kāi)啟XPP、YNN、XNP、YPN形成電場(chǎng),INP_5代表采集引腳為AN4。

代碼清單1.4 Y軸ADC配置

路徑:drivers/input/touchscreen/ti_tsc.c

get?code=Yjc1NmEwYTI1ZTAwMzBjNzdjMjQzNTNmMDUxOWEwNDksMTY1NDgyNjA3MjU1Mw==

處理器完成ADC采集后,需要觸發(fā)一個(gè)中斷,中斷處理函數(shù)的注冊(cè)代碼如代碼清單1.5所示。對(duì)于用戶層來(lái)說(shuō),最直觀的就是查看此中斷在系統(tǒng)中觸發(fā)幾次,所以此時(shí)的中斷名就是request_irq內(nèi)傳入的中斷名參數(shù)。

代碼清單1.5 中斷函數(shù)設(shè)計(jì)

路徑:drivers/input/touchscreen/ti_tsc.c

get?code=MjRhNzNkYTI2YzRhMTJhYmZjZmI3YmYxYmUyOWE5NWQsMTY1NDgyNjA3MjU1Mw==

最后一點(diǎn)就是對(duì)輸入子系統(tǒng)的封裝,在觸摸屏代碼內(nèi)必不可少的就是input子系統(tǒng)的調(diào)用,代碼如代碼清單1.6所示,input_report即為輸入子系統(tǒng)上報(bào)函數(shù)族,上報(bào)事件包括:按鍵按下、按鍵彈起、絕對(duì)坐標(biāo)、相對(duì)坐標(biāo)等。所以對(duì)于系統(tǒng)來(lái)說(shuō),最終只要input_report能順利執(zhí)行,那么觸摸信號(hào)就能正常獲取。

代碼清單1.6 輸入子系統(tǒng)設(shè)計(jì)

路徑:drivers/input/touchscreen/ti_tsc.c

get?code=ZWI0ZWFjNDczZjhlODJhZDA0YmM4OTRlMGQxZjM3NWUsMTY1NDgyNjA3MjU1Mw==

1.4 用戶空間的排查方法

此處整理了電阻屏的問(wèn)題定位方法,如表1.3所示。

表1.3 用戶空間排查方法

get?code=YjllNGJlNDE1M2U0MzA5YjFhMmZmNWIyYjdjNmNhZjksMTY1NDgyNjA3MjU1Mw==

接下來(lái)我們結(jié)合一些具體案例來(lái)具體看看如何排查觸摸問(wèn)題。

1.4.1 觸摸沒(méi)反應(yīng)

問(wèn)題:接上觸摸屏沒(méi)反應(yīng)。

分析步驟:

  1. 查看dmesg | grep touch,查看系統(tǒng)是否有加載觸摸驅(qū)動(dòng);此部分有內(nèi)核配置選擇,沒(méi)有信息則定位為驅(qū)動(dòng)異常,查看內(nèi)核配置或初始化函數(shù)。
  2. 查看/proc/interrupts文件,看中斷計(jì)數(shù)是否有變化。若點(diǎn)擊屏幕,中斷計(jì)數(shù)沒(méi)變化,根據(jù)之前所說(shuō)的中斷輸入引腳,說(shuō)明此情況下中斷引腳沒(méi)有接到對(duì)應(yīng)引腳上。

1.4.2 觸摸抖動(dòng)

問(wèn)題:使用ts_test查看,發(fā)現(xiàn)光標(biāo)在不停閃爍。

分析思路:通過(guò)cat /proc/interrupts,查看中斷計(jì)數(shù),若一直有增加,再用hexdump命令查看輸出信息,一般這種不規(guī)則情況,是由于中斷信號(hào)輸入引腳接到錯(cuò)誤位置,例如五線屏的感應(yīng)引腳,接到地之后,相當(dāng)于屏幕一直被按下,所以會(huì)不斷上報(bào)錯(cuò)誤事件。也有可能是感應(yīng)引腳接到不穩(wěn)定的電平,一直產(chǎn)生高低變化的擾動(dòng),系統(tǒng)把這種高低變化的擾動(dòng)當(dāng)作觸摸屏被按下的信號(hào)。

1.4.3 觸摸不準(zhǔn)

問(wèn)題:使用五線屏?xí)r,四個(gè)邊角總有一個(gè)無(wú)法觸摸得到。

分析思路:ADC模組有一個(gè)輸入的參考電壓,一般接1.8V,但有些意外情況,將其接到GND,相當(dāng)于采集點(diǎn)一直無(wú)法采集到正常數(shù)據(jù)。

1.4.4 觸摸異常

問(wèn)題:使用五線屏?xí)r,數(shù)據(jù)亂跳。

分析思路:由上篇文章“【應(yīng)用技術(shù)】觸摸屏技術(shù)之原理分析”分析可知,五線屏的正常四個(gè)角如圖1.1所示,(H,H)與(L,L)形成對(duì)角分布,在這樣X(jué)、Y軸的電場(chǎng)才能形成相互垂直的分布,但如果出現(xiàn)圖1.2中(H,H)與(L,L)在同一個(gè)方向時(shí),就無(wú)法形成相互垂直的電場(chǎng),此時(shí)采集出來(lái)的感應(yīng)點(diǎn)數(shù)據(jù)就是紊亂的。

get?code=NWEyZjAzZTY4M2MyMjQyMjU3Njk2MDMzMDRjMDZlYWUsMTY1NDgyNjA3MjU1NA==

圖1.1 正常五線屏電極分布

get?code=ZDg5NGRmMTJmYTY4NjhlMTUwNmE0MWZmYzQzNzU5ZDAsMTY1NDgyNjA3MjU1NA==

圖1.2 異常五線屏電極分布

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 觸摸屏
    +關(guān)注

    關(guān)注

    42

    文章

    2315

    瀏覽量

    116656
  • 顯示屏
    +關(guān)注

    關(guān)注

    28

    文章

    4505

    瀏覽量

    74618
  • 驅(qū)動(dòng)開(kāi)發(fā)

    關(guān)注

    0

    文章

    130

    瀏覽量

    12101
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    4線電阻式觸摸屏是如何工作的

    4線電阻式觸摸屏是一種常見(jiàn)的觸控技術(shù),廣泛應(yīng)用于各種工業(yè)和消費(fèi)電子產(chǎn)品中。這類(lèi)觸摸屏的工作原理是基于壓力感應(yīng):當(dāng)屏幕表面受到觸摸時(shí),頂層(通
    的頭像 發(fā)表于 01-17 17:14 ?190次閱讀
    4線電阻式<b class='flag-5'>觸摸屏</b>是如何工作的

    觸摸屏與傳統(tǒng)顯示器比較

    隨著科技的飛速發(fā)展,顯示技術(shù)也在不斷進(jìn)步。觸摸屏和傳統(tǒng)顯示器作為兩種主流的顯示技術(shù),它們各自有著獨(dú)特的優(yōu)勢(shì)和應(yīng)用場(chǎng)景。 1. 技術(shù)原理 觸摸屏
    的頭像 發(fā)表于 01-06 17:02 ?347次閱讀

    開(kāi)發(fā)觸摸屏驅(qū)動(dòng)板需要考慮哪些因素

    驅(qū)動(dòng)板是現(xiàn)代電子設(shè)備中不可或缺的一部分,它負(fù)責(zé)將用戶的觸摸操作轉(zhuǎn)化為設(shè)備可以理解的信號(hào)。觸摸屏驅(qū)動(dòng)板需要通過(guò)多個(gè)關(guān)鍵步驟來(lái)實(shí)現(xiàn)其功能,以
    的頭像 發(fā)表于 10-29 14:05 ?624次閱讀

    觸摸屏靜電保護(hù)方案

    或其他設(shè)備的交互。觸摸屏技術(shù)自上世紀(jì)60年代開(kāi)始研究,并在隨后的幾十年里得到了飛速的發(fā)展和應(yīng)用,如今已經(jīng)廣泛應(yīng)用于手機(jī)、平板電腦、零售業(yè)、公共信息查詢(xún)、多媒體信息系統(tǒng)、醫(yī)療儀器、工業(yè)自動(dòng)控制、娛樂(lè)與餐飲業(yè)等眾多
    的頭像 發(fā)表于 09-27 15:38 ?441次閱讀
    <b class='flag-5'>觸摸屏</b>靜電保護(hù)方案

    聚徽-工業(yè)一體機(jī)觸摸屏怎么校準(zhǔn)

    工業(yè)一體機(jī)觸摸屏的校準(zhǔn)過(guò)程對(duì)于確保觸摸屏的準(zhǔn)確度和精密度至關(guān)重要。以下是一般的校準(zhǔn)步驟,但請(qǐng)注意,具體的校準(zhǔn)過(guò)程可能會(huì)因觸摸屏型號(hào)和制造商的軟件而有所不同。
    的頭像 發(fā)表于 09-06 09:40 ?532次閱讀

    電容觸摸屏的區(qū)別

    電容觸摸屏是兩個(gè)在電子設(shè)備中廣泛使用的技術(shù),它們之間存在緊密的聯(lián)系但也有顯著的區(qū)別。
    的頭像 發(fā)表于 07-18 15:58 ?5691次閱讀

    LCD觸摸屏的PCB設(shè)計(jì)

    液晶顯示(LCD)和觸摸屏技術(shù)已經(jīng)成為各種電子設(shè)備的核心組成部分,從智能手機(jī)到電視和醫(yī)療設(shè)備。在這些設(shè)備中,PCB的設(shè)計(jì)對(duì)于LCD和觸摸屏的性能和可靠性至關(guān)重要。下面將討論LCD
    的頭像 發(fā)表于 07-18 11:17 ?2266次閱讀
    LCD<b class='flag-5'>屏</b>和<b class='flag-5'>觸摸屏</b>的PCB設(shè)計(jì)

    觸摸屏和plc的程序怎么編寫(xiě)

    編寫(xiě)觸摸屏和PLC程序是一個(gè)復(fù)雜的過(guò)程,涉及到多個(gè)方面的知識(shí)。 一、觸摸屏和PLC概述 觸摸屏概述 觸摸屏是一種交互式輸入設(shè)備,用戶可以通過(guò)觸摸屏
    的頭像 發(fā)表于 07-01 14:46 ?2849次閱讀

    人機(jī)界面觸摸屏編程的基本概念及硬件選擇

    人機(jī)界面(Human-Machine Interface,簡(jiǎn)稱(chēng)HMI)觸摸屏編程是一種廣泛應(yīng)用于工業(yè)自動(dòng)化、智能家居、醫(yī)療設(shè)備等領(lǐng)域的技術(shù)。本文將詳細(xì)介紹HMI觸摸屏編程的基本概念、硬
    的頭像 發(fā)表于 07-01 14:42 ?2502次閱讀

    人機(jī)界面觸摸屏如何觸摸校正屏幕

    人機(jī)界面(Human-Machine Interface,簡(jiǎn)稱(chēng)HMI)觸摸屏是一種廣泛應(yīng)用于工業(yè)自動(dòng)化、智能家居、醫(yī)療設(shè)備等領(lǐng)域的交互設(shè)備。觸摸屏的校正對(duì)于確保設(shè)備的正常運(yùn)行和提高用戶體驗(yàn)至關(guān)重要
    的頭像 發(fā)表于 07-01 14:36 ?1906次閱讀

    觸摸屏與plc通訊不上的原因

    觸摸屏與PLC(可編程邏輯控制器)之間的通信是工業(yè)自動(dòng)化領(lǐng)域中常見(jiàn)的一種應(yīng)用。然而,在實(shí)際應(yīng)用過(guò)程中,可能會(huì)遇到觸摸屏與PLC通信不上的問(wèn)題。本文將從多個(gè)方面詳細(xì)分析可能導(dǎo)致通信故障的
    的頭像 發(fā)表于 06-12 10:49 ?4988次閱讀

    觸摸屏是上位機(jī)還是下位機(jī)好

    觸摸屏技術(shù)在現(xiàn)代工業(yè)自動(dòng)化、智能家居、醫(yī)療設(shè)備等領(lǐng)域得到了廣泛應(yīng)用。觸摸屏設(shè)備可以分為上位機(jī)和下位機(jī)兩種類(lèi)型,它們?cè)诠δ堋⑿阅芎蛻?yīng)用場(chǎng)景上存在一定差異。本文將從多個(gè)方面對(duì)比
    的頭像 發(fā)表于 06-06 10:25 ?1628次閱讀

    如何快速實(shí)施可靠的觸摸屏

    作者:Steven Keeping 與鍵盤(pán)和鼠標(biāo)相比,人們?cè)絹?lái)越傾向于使用觸摸屏作為人機(jī)界面 (HMI),對(duì)消費(fèi)者、企業(yè)和工業(yè)系統(tǒng)進(jìn)行編程、配置和控制。觸摸屏更直觀、速度快,采用單一的集成接口,可取
    的頭像 發(fā)表于 05-05 16:26 ?755次閱讀
    如何快速實(shí)施可靠的<b class='flag-5'>觸摸屏</b>

    組態(tài)軟件和觸摸屏軟件的區(qū)別是什么?

    是在PC上使用,它可以使用PC上的大屏幕和鍵盤(pán)鼠標(biāo)輸入,而觸摸屏軟件則需要使用觸摸屏幕進(jìn)行操作。 3. 軟件開(kāi)發(fā)環(huán)境不同:組態(tài)軟件需要在PC上安裝開(kāi)發(fā)環(huán)境和配置工具,而
    的頭像 發(fā)表于 04-24 14:04 ?1282次閱讀