新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 嵌入式linux 電阻觸摸屏 (s3c2440)編程

嵌入式linux 電阻觸摸屏 (s3c2440)編程

作者: 時間:2016-11-25 來源:網絡 收藏



更多5線8線式的觸摸屏介紹:http://www.elecfans.com/baike/waijiepeijian/chugan/20100324205083.html?1324351403
更多資料:http://yunxiong1020.blog.163.com/blog/static/76344309201110283759386/

1.2 在S3C2440中的觸摸屏接口
SOC S3C2440的觸摸屏接口是與ADC接口結合在一起的,框圖如下:




3,觸摸屏接口
XP、XM、YP、YM為四線電阻觸摸屏接口,四條信號線分別代碼的含義為:
nXPONPlus X-axis on-off control signalx軸正極開關控制信號
XMONMinus X-axis on-off control signalx軸負極開關控制信號
nYPONPlus Y-axis on-off control signaly軸正極開關控制信號
YMONMinus Y-axis on-off control signaly軸負極開關控制信號
觸摸屏接口的模式有以下幾種:
(1)、普通ADC轉換模式
(2)、獨立X/Y位置轉換模式
(3)、自動X/Y位置轉換模式
(4)、等待中斷模式
我們主要接受觸摸屏接口的 等待中斷模式和自動X/Y位置轉換模式,自動轉換模式操作流程如下:觸摸屏控制器自動轉換X,Y的觸摸位置,當轉換完畢后將數據分別存放在寄存器ADCDAT0和ADCDAT1.并產生INT_ADC中斷通知轉換完畢。
更多詳細情況請查閱:數據手冊

等待中斷模式:
Waiting for Interrupt Modesetting value is rADCTSC=0xd3;//
XP_PU, XP_Dis, XM_Dis, YP_Dis, YM_En.
當觸摸后,觸摸屏控制器產生INT_TC中斷,等待中斷模式下, Modesetting value (四個引腳設置應該為):
rADCTSC=0xd3;XP_PU, XP_Dis, XM_Dis, YP_Dis, YM_En.




當觸摸后,觸摸屏控制器產生INT_TC中斷,四個引腳設置應該為:

引腳XPXMYPYM
狀態(tài)PULL UP/XP DisableDisable (初始值即是)DisableEnable
設置1011

當中斷產生后,X/Y的位置數據可以選擇獨立X/Y位置轉換模式,和自動X/Y位置轉換模式進行讀取,采用自動X/Y位置轉換模式進行讀取需要對我們已經設置的TSC寄存器進行更改,在原有的基礎上,
S 3C2410_ADCTSC_PULL_UP_DISABLE| S3C2410_ADCTSC_AUTO_PST | S3C2410_ADCTSC_XY_PST(0)。
數據轉換完畢后,也會產生中斷,通知轉換結束。

2. 輸入子系統(tǒng)模型分析
2.1 整體框架:

輸入子系統(tǒng)包括三個部分 設備驅動、輸入核心、事件處理器。
第一部分 設備驅動
是連接在各個總線上的輸入設備驅動,在我們的SOC上,這個總線可以是虛擬總線platformbus,他們的作用是將底層的硬件輸入轉化為統(tǒng)一事件型式,向輸入核心(Input core)匯報.





第二部分 輸入核心 的作用如下:
(1) 調用input_register_device() used to 添加設備,調用input_unregister_device() 除去設備。(下面會結合觸摸屏驅動講述)
(2) 在/PROC下產生相應的設備信息,下面這個例子即是:
/proc/bus/input/devices showing a USB mouse:

I: Bus=0003 Vendor=046d Product=c002 Version=0120
N: Name="Logitech USB-PS/2 Mouse M-BA47"
P: Phys=usb-00:01.2-2.2/input0
H: Handlers=mouse0 event2
B: EV=7
B: KEY=f0000 0 0 0 0 0 0 0 0
B: REL=103

(3) 通知事件處理器對事件進行處理

第三部分是 事件處理器:
輸入子系統(tǒng)包括了您所需要的大多數處理器,如鼠標、鍵盤、joystick,觸摸屏,也有一個通用的處理器被叫做event
handler(對于內核文件evdev.C).需要注意的是隨著內核版本的發(fā)展,event handler將用來處理更多的不同硬件的輸入事件。在Linux2.6.29版本中,剩下的特定設備事件處理就只有鼠標和joystick。這就意味著越來越多的輸入設備將通過event
handler來和用戶空間打交道。事件處理層的主要作用就是和用戶空間打交道,我們知道Linux在用戶空間將所有設備當成文件來處理,在一般的驅動程序中都有提供fops接口,以及在/dev下生成相應的設備文件nod,而在輸入子系統(tǒng)的驅動中,這些動作都是在事件處理器層完成的,我們看看evdev.C相關代碼吧。


評論


技術專區(qū)

關閉