TS2003基于触摸屏的应用
********************************LoongEmbedded********************************
作者:LoongEmbedded(kandi)
時間:2011.10.22
類別:WINCE驅動開發
********************************LoongEmbedded********************************
?
備注:基于TSC2003 4線式觸摸屏控制器,這樣就沒有用到S3C6410的觸摸屏控制器了。
?
1.?????? 觸摸屏硬件電路設計
圖1
上圖是TSC2003作為測試觸摸屏x和y坐標應用時的硬件設計圖,因為采用了專門的觸摸屏控制芯片TSC2003作為觸摸屏控制器,所以此時就不需要用到CPU的觸摸屏控制器了,TSC2003和S3C6410的引腳連接關系如下:
GPB5------------------------------------------------SCL
GPB6------------------------------------------------SDA
GPN15/EIN15-------------------------------------PEN_IRQ
?
2.?????? TSC2003
TS2003是一個典型的12/8位的逐步逼近型AD轉換器,其結構式基于電荷再分配的比例電容陣列結構,這樣的結構本身具備采樣和保持的功能,此轉換器采用0.6u的CMOS工藝制造。它內置了一個2.5v的基準電壓電路和內部時鐘,內部基準可以被外部的范圍為2V~+VDD的低阻抗(low-impedance)電壓源驅動,基準電壓值決定了AD轉換器的輸入范圍。TS2003的工作電壓范圍是2.7V~5.25V。
?
TSC2003的模擬輸入(x、y和z坐標,輔助輸入,電池電壓和芯片溫度)通過一個多路復用器來選擇作為輸入信號提供給AD轉換器,一個特有的低導通電阻阻開關允許一個沒有被選擇的AD轉換器輸入通道給外部設備提供電壓(power),并且其對應的引腳為外部設備接地。通過對轉換器采用差動輸入和差動基準電壓架構,可以消除開光的導通電阻帶來的誤差。
圖2
TSC2003的主要功能是作為一個4線電阻式的觸摸屏控制器,它還可以直接測量電池電壓、支持兩個輔助的模擬輸入、溫度測試和觸摸壓力測試,通過IIC總線接口與中斷引腳來和處理器通訊。
2.1?? TSC2003引腳
+VDD??????? --------------------------------------工作電壓引腳
X+????????????? --------------------------------------X+坐標輸入引腳
Y+????????????? --------------------------------------Y+坐標輸入引腳
X-?????????????? --------------------------------------X-坐標輸入引腳
Y-?????????????? --------------------------------------Y-坐標輸入引腳
GND?????????????????? --------------------------------------接地引腳
VBAT1????? --------------------------------------電池檢測輸入引腳
VBAT2????? --------------------------------------電池監測輸入引腳
VREF???????? --------------------------------------輸入/輸入基準電壓
/PENIRQ? --------------------------------------pen中斷引腳,下降沿表示點擊觸摸屏。
SDA?????????? --------------------------------------IIC總線串行數據引腳
SCL??????????? --------------------------------------IIC總線串行時鐘引腳
A1????????????? --------------------------------------IIC總線地址輸入引腳1
A0????????????? --------------------------------------IIC總線地址輸入引腳0
IN2,IN1 --------------------------------------輔助AD轉換器輸入引腳
?
2.2?? TS2003的通訊
TS2003支持IIC串行總線和數據傳輸協議工作在三種模式下:標準、快速和高速模式。發送數據到串行總線上的設備稱為發送器,從串行總線上接受數據的設備稱為接收器,控制串行總線會話的設備稱為主設備,被主設備控制的稱為從設備??刂瓶偩€的主設備負責產生串行時鐘(SCL),控制總線訪問、產生開始和結束條件。TS2003是作為IIC總線的從設備,它通過開漏(open-drain)IO線SDA和SCL來連接到IIC總線上。
?
2.2.1????????? IIC總線狀態
只有在總線空閑的時候才能開始數據傳輸,并且在數據傳輸過程中,在SCL為高的時候,SDA必須保持穩定的狀態,也就是說SDA的狀態不能在這時候產生從從高到底或者低到高狀態的跳變,如果在SCL位高的時候,SDA發生變化,這就被認為是控制信號(開始或者結束)。下面對已經定義的總線狀態做一些描述:
1)?????? 總線不忙的狀態
SDA和SCL都是高的狀態。
2)?????? 開始數據傳輸
當SCL為高的時候,SDA從高到底的跳變時為開始條件,這之后就可以開始數據傳輸了。
3)?????? 停止數據傳輸
當SCL為高的時候,SDA從底到高的跳變時為停止條件,這表示數據傳輸結束了。
4)?????? 數據有效
在開始條件之后,在SCL為高期間內,SDA狀態保持穩定,這期間的數據有效,否則作為控制信號,每個脈沖對應一個數據位。每個數據傳輸在開始條件后開始,在結束條件的時候結束,在產生開始和停止條件之間傳輸的數據沒有限制,而且傳輸的數據量由主設備決定,以字節位寬的長度來傳輸數據,并且每個接收器在接收到第9位時,如果發送器發送的地址和自己的地址吻合,就發送應答位(ACK=0),否則發送非應答位(ACK=1)。
?
在IIC總線規格的范圍內,TSC2003可以工作在標準模式(100kHz時鐘頻率)、快速模式(400kHz時鐘頻率)和高速模式(3.4MHz時鐘頻率)。
5)?????? 應答
每個正在接受的設備,當接受完每個字節數據的時候藥產生一個應答位,這時主設備必須產生一個額外的時鐘脈沖來結合這位應答位。在應答的時鐘脈沖高電平期間,發送應答信號的設備必須拉低(pull down)SDA,當然,也要把應答信號對應的時鐘脈沖的創建和保持時間考慮進來,也就是說在脈沖的創建和保持時間的時候,也要保證SDA處于低電平的狀態下。
?
在最后一個字節從從設備(TS2003)傳送出來的時候,主設備(S3C6410)通過不產生應答信號來告訴通知從設備輸出傳輸的結束,在這種情況下,從設備必須釋放SDA為高,這樣主設備才能產生結束信號。
圖3
2.2.2????????? IIC總線數據傳輸
IIC總線上數據的傳輸依賴于地址字節數據的R/W位,總線上有兩種類型的數據傳輸。
1)?????? 主發送器發送數據到從接收器
主設備發送第一個字節數據是從設備地址,接著發送許多字節數據。從設備在接收到字節地址和接收到每個字節都會發送應答信號。
?
2)?????? 從發送器發送數據到主接收器
主設備發送第一個字節(從設備地址)后,從設備接著回發一個應答位,然后從設備發送很多字節數據給主設備,除了最后一個字節數據之外,主設備都會緊接著回發一個應答位,在最后一個字節數據接收后,主設備發送一個非應答(not acknowledge,也即ACK=1),以表示主設備的數據接收結束。
?
2.2.3????????? TSC2003的模式
TSC2003可以工作在下面兩種模式下,都是從模式:
1)?????? 從接收模式
通過SDA和SCL分別接收串行數據和時鐘,每接收一個字節數據,就發送一個應答位。開始(START)信號和結束(STOP)信號被作為數據傳輸的開始和結束。TSC2003在接收到從地址和方向位后,地址的識別通過硬件來實現的(TSC2003設備地址預先設置為10010)。
2)?????? 從發送模式
TSC2003作為從接收器時,接收和處理第一個字節數據(從設備地址),但是,在從發送模式下,方向位指示傳輸方向的反轉。當串行時鐘輸入到SCL,TSC2003就從SDA中發送數據給主接收器(s3c6410),START和STOP信號被識別為串行傳輸的開始和結束。
?
2.2.4????????? TSC2003的地址字節
地址字節是主設備產生開始條件之后的第一個發送的字節,格式如下圖所示:
圖4
TSC2003的高5位從地址預先設置為10010,緊接著的兩位A1和A0是設備選擇位,TSC2003的輸入引腳A1和A0決定了這兩位的值,見圖1中輸入引腳A1和A0接地,就表示A1=A0=0,因為用A1和A0這兩位用于選擇設備,所以一次最多只能有4個相同預置碼(same preset code)的設備可以掛在IIC總線上。A1和A0輸入引腳可以接在VDD或者數據地上。最后一位R/W定義執行的操作,當設置為1,表示是讀操作;當設置為0,表示是寫操作。
?
2.2.5????????? TSC2003的命令字節
TSC2003的操作模式由命令字節數據來決定,格式如下
圖5
C3-C0:配置位,這些配置位用于指定多路復用器地址和功能,接著TSC2003就根據指定的功能來執行,下面的表格式C3-C0配置位對應的功能:
圖6
PD1-PD0:省電模式位,當當前選擇省電模式的命令執行之后,TSC2003將工作于這兩位選擇的省電模式中,這兩位對應的功能如下表
圖7
AD轉換器的內部基準電壓可以單獨被關閉或打開,這樣在額外的時間里,允許AD轉換器在做轉換(making a conversion)之前優先設置內部基準電壓為它最后的值。從而可以確保內部基準電路在省電模式時能夠有額外的喚醒時間(wakeup time,也就由關閉轉為打開。),另外需要注意是,在命令字節傳輸之后的一個STOP或重復START條件發生的時候,這時候內部基準電路的省電狀態被鎖存到TSC2003的內部,所以,在輸入通道被修改的時候,如果要關閉內部基準電路電壓,就需要對TWSC2003寫一個帶有PD1=0的命令字節。
?
為了取得最低的功耗,推薦發送的命令字要設置PD0=0。如果多路x,y和z坐標測量相繼測試完成,比如在求平均值(averaging)的時候,設置PD0=1將讓觸摸屏驅動保持在每個轉換周期結束的時候。當TSC2003上電后,省電模式(power-down mode)位需要被設置來確保這部分可以處于想要的省電模式以實現最低的功耗。所以,在TSC2003上電后,應該馬上對TSC2003寫一個設置PD1=PD0=0的命令字節,這樣設備就可以處于最低的省電模式,可以降低AD轉換之間的功耗。
?
2.2.6????????? TSC2003的數據傳輸
1)?????? 串行寫傳輸
圖8
當主設備發出包含TS2003從設備地址的地址字節,并且此地址字節的第8位為0(R/W=0)時,就表示一個轉換/寫周期的開始了,一旦TS2003接收到第8位數據,并且地址吻合TS2003的設備地址和(地址字節的A1和A0位和輸入引腳A1和A0的值一樣)后,TS2003就發送一個應答位(ACK=0)。一旦主設備(S3C6410)收到這個應答位,它就會向TSC2003寫一個命令字節。TSC2003接收到這個命令字節后,就發出另一個應答位,接著主設備就可以通過產生一個重復開始條件或者停止條件來結束這次寫周期,但如果在主設備發送一個停止或者重復開始的條件之前,主設備再發送另外的命令字節,TSC2003將不會應答這些命令字節。
?
通過命令字的的C3到C0的確定,A/D轉換器就可以選定輸入多路復用器的通道。如果選擇的通道是x-、y-或z-坐標測量,一旦請求測量期間開始,適當的驅動將打開,可以參考圖6。如R/W=0,命令字的c0位在SCL的下降沿期間鎖存到TSC2003時,表示輸入采樣請求開始(input sample acquisition period starts),而在主設備產生一個停止或重復開始的條件時表示結束。在接著采樣請求之后,AD轉換馬上開始。然而,如果正在測試的是x,y和z坐標時,各自的觸摸屏驅動在轉換期間保持為ON的狀態。
?
2)?????? 串行讀傳輸
圖9
為了獲取最佳的性能,在一次AD轉換發生的時候IIC總線應該是出于空閑的狀態的。這樣可以阻止數字時鐘噪聲(digital clock noise)影響處理器對從TSC2003發送的位的判斷,如果要去的最佳的性能,主設備在試圖從TSC2003讀取數據之前應該至少等待10us,但是,在開始從TSC2003讀取數據之前,主設備不需要等待一個完整的轉換周期,而且,如果是12位的模式就沒有這個等待的必要了。
?
主設備產生開始條件,然后緊接著發送R/W位為1的地址字節之后就開始數據訪問了,在TSC2003收到地址字節的第8位,并且如果地址和TSC2003的設備地址吻合,那么TSC2003就發送應答位,接著TSC2003的第一個數據字節就發送給主設備。在TSC2003發送完第一個數據字節后,它釋放SDA線來讓主設備發送一個應答位(ACK=0),在TSC2003收到此應答位后接著發送第二個數據字節(對于8位的模式,只有一個數據字節)。收到第二個數據字節后,主設備發送一個非應答位(ACK=1)以表示最后的數據字節接受完成,但如果主設備應答接收到的第二個數據字節,那么將繼續從TSC2003中讀取數據,直到主設備發送非應答位。在發送非應答位之后,主設備發送停止條件來結束一次讀周期。
?
?
SDA 引腳及 SCL 引腳上數據的改變必須延時一段適當的時間,延時太短,數據讀入可能不成功,太長則浪費系統資源。一般可在 20 μ s 左右。讀寫操作時的時序非常重要。 SDA 線上的數據狀態僅在 SCL 為低電平期間才能改變,而在 SCL 為高電平期間, SDA 狀態的改變則被用來表示數據傳輸的起始和停止條件。因此,若時序控制不好,則將得不到正確的讀數。同時,當主處理器在對 TSC2007 進行寫操作時。還應該屏蔽它的中斷腳 PENIRQ ,這樣可以阻止中斷腳的不停下降而觸發中斷。
?
2.2.7????????? TSC2003中斷引腳/PENIRQ
圖10
Pen中斷輸出功能見上圖,pen中斷引腳通過一個上拉電阻來連接到VDD,輸出高電平,當觸摸觸摸屏時,pen中斷引腳輸出低電平,這樣就可以通過pen中斷引腳的下降沿來知道觸摸觸摸屏這個動作。需要注意的是,在主設備對TSC2003寫操作的時候,推薦處理器要屏蔽此中斷。
?
總結
以上是生活随笔為你收集整理的TS2003基于触摸屏的应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 应用C预处理命令
- 下一篇: AA065VD时序的确定