ADC和觸摸屏(1)-硬件原理介紹
/*
*硬件平臺:韋東山嵌入式Linxu開發板(S3C2440.v3)
*軟件平臺:運行於VMware Workstation 12 Player下UbuntuLTS16.04_x64 系統,
*參考資料:開發版原理圖,S3C2440A datasheet
*/
一、硬件原理
1、ADC
如上圖所示,通過採集模擬量x,然後通過ADC轉換,將模擬量x轉換成數字量,其中得到的數字量並不是實際中我們所需要的,要通過公式計算將得到的數字量運算,得到實際中需要的數字量a.
-
ADC的分辨率
指的是模數轉換器所能表示的最大數是多少,即ADC的位數,如上圖中的ADC是10位ADC,那麼分辨率是2的10次方,即1024的分辨率。 -
基準電壓
對於帶AD的單片機內部會給你提供一個基準電壓(3.3V),其次AREF是單片機基準電壓外部輸復入引腳,也可以通過AREF去連接外部基準源。
2、觸摸屏
觸摸屏硬件電路如圖所示,是由兩張“膜”上下拼接而成的,無觸摸時,“膜”之間是有空隙的。
-
原理
這個“膜”相當於一個滑動變阻器,按下的位置就是讀取該點的對地電壓。
當按下時,X“膜”和Y“膜”會通過ADC轉換得出兩個電壓值,通過公式可以根據電壓值可以計算出該點的(x, y)座標。 -
等待中斷模式
此時觸摸屏等待被按下,各個開關(通過寄存器控制開閉)的開閉與X/Y_ADC的高低電平情況如下圖所示。
-
讀取X座標等效電路
當觸摸屏被按下時,此時開關閉合狀態如下,Y_ADC的電壓由高變爲低(根據此設置按下中斷),YP作爲探針,通過X_ADC的ADC轉換得到藍色點的電壓值。
-
讀取Y座標等效電路
當測量Y“膜”的電壓時,此時開關閉合狀態如下,XP作爲探針,通過Y_ADC的ADC轉換得到藍色點的電壓值。
二、使用觸摸屏流程
在使用觸摸屏時,會有大致以下兩種情況:按一下鬆開與持續按着一段時間後鬆開,針對這兩種情況,流程如下:
{
- 按下觸摸屏,產生觸摸中斷
- 在觸摸中斷中,啓動ADC
- ADC初始化完成後,產生中斷
- 在ADC中斷中,讀取(x, y)座標
- 啓動定時器中斷
- 定時器中斷髮生時,判斷觸摸屏是否被持續按下
- 若是繼續執行 2 步驟,若無則判斷爲無按下,結束整個流程
}