国产福利在线高清导航大全-国产福利在线-国产福利影视-国产福利一区二区麻豆-成熟少妇大片免费看-成熟女人毛片WWW免费版在线

當(dāng)前位置:首頁 > 觸控技術(shù) > 多點(diǎn)觸摸技術(shù)
多點(diǎn)觸摸技術(shù)

電阻式觸摸屏的Controller TSC2046驅(qū)動調(diào)試常見問題

    觸摸屏驅(qū)動調(diào)試常見問題總結(jié)。電阻式觸摸屏的Controller從原理上,簡單的說就是一個可切換通道的AD轉(zhuǎn)換器,常見的有類似TSC2046這一系列的獨(dú)立芯片,也有Buildin在MPU里的集成模塊。這里記錄的主要是這類觸摸屏驅(qū)動的調(diào)試中我所遇到過的一些問題,因?yàn)榫唧w硬件平臺和環(huán)境不同,有些問題,現(xiàn)象和原因可能不一定與你的實(shí)際情況相同,僅供參考。

數(shù)據(jù)線上無法得到正確的數(shù)據(jù)

癥狀

    讀取的測量數(shù)據(jù)變化不定,幾乎沒有規(guī)律
 
分析

    Tsc2046控制器在接收到8個bit的測量指令后,需要一段的時間完成測量和AD轉(zhuǎn)換工作,這期間在其busy線上會輸出高電平,直到電平拉低后在數(shù)據(jù)線上才會輸出數(shù)據(jù)。 而這期間,其片選信號從spec上看,應(yīng)該要保持有效,所以在使用SPI接口時候,需要采用比如32位傳送的方式,使得在傳完8位指令后,繼續(xù)保持片選和時鐘,已接收后續(xù)的測量結(jié)果數(shù)據(jù),因?yàn)檫@期間無法測量busy信號,假定其為某一恒定時間,位移得到所需測量結(jié)果。分析數(shù)據(jù)不穩(wěn)定的原因在于這段busy等待時間在不同的測量情況下,長度可能不一定是確定的,導(dǎo)致無法準(zhǔn)確判斷應(yīng)該提取SDO口上的哪段數(shù)據(jù)作為測量結(jié)果。
 
    所以主要矛盾在于我所使用的CPU的SPI口的片選和時鐘信號無法與數(shù)據(jù)線分開獨(dú)立自由控制。
 
解決
   
    采用GPIO口模擬SPI時序,從而可以自己控制clk和片選信號,因此此時可以測量busy線的信號,從而準(zhǔn)確的得知何時tsc2046開始完成測量并輸出測量結(jié)果。

busy線長期處于忙等待狀態(tài)

癥狀
   
    送完指令,等待busy拉低的過程中,busy信號始終為高
 
分析
   
    仔細(xì)分析spec,發(fā)現(xiàn)在busy狀態(tài)下,tsc2046依然需要clk來完成AD轉(zhuǎn)換工作,所以在等待busy信號的時候,要同時繼續(xù)保持CLK信號
 
解決
 
    每讀一次busy信號的同時,繼續(xù)用GPIO口模擬一個周期的CLK信號。

不斷產(chǎn)生pendown中斷

癥狀
   
    在第一次觸摸屏幕,pendown中斷產(chǎn)生,并完成測量后,即使放開觸摸屏,依然連續(xù)不斷的有pendown中斷信號產(chǎn)生,反復(fù)進(jìn)入測量過程。
 
分析
   
    測量觸摸屏X+ pin 上的電平發(fā)現(xiàn),即使在等待中斷的過程中,X+ pin 也始終為低電平,而理論上,此時該pin應(yīng)該為高電平,由于Y- pin 接地,在觸摸屏被按下的時候,X+ pin 電壓被拉低,從而產(chǎn)生pendown中斷。
   
    反復(fù)調(diào)試發(fā)現(xiàn)該pin電壓為低的原因在于在上一次測量中,最后一次測量的是Z1,在觸摸屏放開的時候,測量Z1的過程中,X+為低電平。而后回到等待中斷狀態(tài)的時候,X+ pin 由于外部電容的原因,被上拉電阻重新拉高為高電平需要一段的時間,在此之前,如果打開中斷,就會誤判,錯誤的收到中斷信號
 
解決
 
    有幾種辦法可以解決:
 
    減小外部電容
    將中斷由電平觸發(fā)改為下降沿觸發(fā)
    在完成測量之后,打開中斷之前,延遲一段時間。等待X+ Pin回到高電平狀態(tài)
 
    改變電容涉及到硬件電路改變,而改變觸發(fā)方式則因?yàn)槟壳笆褂玫闹袛嗑€無法改成邊沿觸發(fā),不可行,所以目前是用最后一種方式。

 
    可以嘗試改變測量順序,先測Z1再測X,Y看是否這樣可以避免最后一種方式所需的延遲。減小cpu占用率。

采集的數(shù)據(jù)有劇烈抖動    

癥狀
   
    觸摸屏壓下以后,即使保持位置不動,所取得的XY坐標(biāo)也會不時發(fā)生較大范圍的跳動,幅度達(dá)到十幾個到幾十個像素
 
分析
   
    通常觸摸屏的抖動是不可避免的,畢竟是一個模擬信號的AD轉(zhuǎn)換的過程,但是正常抖動應(yīng)該在幾個像素以下。大范圍的坐標(biāo)抖動,說明AD轉(zhuǎn)換采樣取得的電壓值有較大變化。理論上大致會有兩類原因造成:
 
    AD轉(zhuǎn)換的參考電壓跳動
    取樣PIN腳輸入電壓跳動
 
因此,外推一下,不外乎是:
   
    參考電壓或取樣PIN腳電壓受到干擾
    取樣時刻,對應(yīng)PIN腳的電壓值還未穩(wěn)定
    觸摸屏本身質(zhì)量原因(如貼合存在空隙等),觸壓時電阻值變化較大,造成輸出電壓的抖動
 
解決
   
    具體解決時就要具體分析跳動的現(xiàn)象和規(guī)律了
    通常如果是內(nèi)置觸摸屏控制模塊的MPU,取樣PIN腳數(shù)據(jù)受到干擾的可能性較大,因?yàn)檫@時候,電阻式觸摸屏的4個PIN腳的走線相對獨(dú)立的觸摸屏控制芯片來說,可能會比較長,周邊的其它信號線可能也比較多。要注意保護(hù)好信號。
    后兩者對應(yīng)的措施包括延遲消抖,合理安排采樣時間,間隔。 改進(jìn)觸摸屏本身等。
 
    最后,抖動有時候是不能完全消除的,可以通過數(shù)據(jù)平滑的措施在一定程度上減弱抖動帶來的干擾。

CPU占用率超高

癥狀
   
    觸摸筆壓下后,CPU占用率迅速攀高到一個不合理的地步,松開后降低
 
分析
   
    通常這種情況都是由于使用了不合理的查詢手段來獲取采樣數(shù)據(jù),例如忙等待AD轉(zhuǎn)換的結(jié)束,采樣頻率過快等等
 
解決
   
    理論上,所有這類IO設(shè)備都應(yīng)該采用中斷驅(qū)動的方式來獲取數(shù)據(jù)。很遺憾的是,有些內(nèi)置的觸摸屏控制模塊,轉(zhuǎn)換結(jié)束后并不產(chǎn)生中斷信號,只是設(shè)置一個狀態(tài)寄存器,需要由軟件查詢得到。這種情況下,如果轉(zhuǎn)換完成時間不定,又沒有較高精度的定時中斷源,只能犧牲相應(yīng)速度,在每次查詢間隔之間睡眠一段足夠長的時間,讓出CPU。 通常來說,在jiffies值為10ms間隔的系統(tǒng)上,最快每秒查詢50-100次,也基本能夠滿足像手寫輸入這樣的應(yīng)用的需求了。
 


相關(guān)文章
精彩評論:
0  相關(guān)評論
主站蜘蛛池模板: 武威市| 五原县| 广南县| 棋牌| 久治县| 宝鸡市| 杭州市| 苗栗县| 广丰县| 三台县| 土默特右旗| 大埔区| 元阳县| 海城市| 会昌县| 望都县| 竹山县| 鹤庆县| 慈溪市| 阿荣旗| 武鸣县| 巴彦县| 甘孜县| 灵石县| 德格县| 集安市| 临清市| 抚顺县| 綦江县| 福清市| 郯城县| 西乡县| 沙湾县| 玉树县| 彭州市| 辉县市| 名山县| 广宁县| 疏勒县| 那坡县| 南川市|