基于ADS7846實(shí)現(xiàn)的液晶顯示觸摸控制設(shè)計(jì)
圖2 ADS7846 內(nèi)部結(jié)構(gòu)圖
ADS7846 內(nèi)部由一個(gè)多路選擇器和一個(gè)12位的A/ D 轉(zhuǎn)換器構(gòu)成,根據(jù)串行控制口的控制字控制多路選擇開(kāi)關(guān)的工作狀態(tài),控制工作面的工作電壓,并把相應(yīng)電極上的觸點(diǎn)坐標(biāo)位置對(duì)應(yīng)的工作電壓送到A/ D 轉(zhuǎn)換器,變成數(shù)字量通過(guò)串行口再傳遞給CPU ,經(jīng)過(guò)計(jì)算得到觸點(diǎn)的X 、Y 方向的坐標(biāo),確定觸點(diǎn)位置,程序根據(jù)觸點(diǎn)坐標(biāo)位置顯示的信息執(zhí)行相應(yīng)的功能。
則P 點(diǎn)的二進(jìn)制輸出代碼為:
其中:V ref_full為加在ADS7846 內(nèi)部A/ D 轉(zhuǎn)換器上的參考電壓。
ADS7846 控制字見(jiàn)表1 所示,S 為數(shù)據(jù)傳輸?shù)钠鹗紭?biāo)志位,改為必須為“1”;A2、A1、A0 用于通道選擇控制,坐標(biāo)與通道選擇之間的關(guān)系見(jiàn)表2 所示。MODE用于控制A/ D轉(zhuǎn)換的精度“, 1”選擇8位“, 0”選擇12 位。SER/ DFR 選擇輸入?yún)⒖茧妷耗J健埃?1”為單端模式“, 0”為差分模式。PD1、PD0選擇省電模式:“00”為省電模式允許,在兩次A/ D轉(zhuǎn)換之間掉電,且中斷允許;“01”與“00”相似,但不允許中斷;“10”保留;“11”禁止省電模式。
表1 ADS7846 的控制字
表2 ADS7846 的坐標(biāo)與通道選擇之間的關(guān)系
ADS7846 與MCU 之間通過(guò)標(biāo)準(zhǔn)的SPI 接口相連接,如圖3 所示。當(dāng)檢測(cè)到有觸摸動(dòng)作時(shí),ADS7846 的筆中斷請(qǐng)求端( PENIRQ) 輸出一個(gè)低電平信號(hào)向MCU 發(fā)出測(cè)量觸點(diǎn)坐標(biāo)的中斷請(qǐng)求。MCU 通過(guò)SPI 接口,選中ADS7846 ,發(fā)出坐標(biāo)測(cè)量控制字,然后讀取ADS7846A/ D 轉(zhuǎn)換結(jié)果數(shù)據(jù),經(jīng)過(guò)兩次控制即可分別得到觸點(diǎn)位置的X 、Y 坐標(biāo)。ADS7846 工作時(shí)序如圖4 所示。
圖3 ADS7846 與MCU 之間SPI 接口
圖4 ADS7846 與MCU 通信時(shí)序
評(píng)論