我們之前分享過一款基於TTP223晶片的點動觸控感測器模組,利用它可以實現單點按鍵的觸控。
最近除錯的板子上畫了一個TTP229晶片,這個晶片可以實現16路觸控按鍵,今天我們就分享一下這個。
TTP229-BSF晶片簡介
TTP229-BSF晶片,封裝為SSOP-28,是一款電容式16鍵觸控感應IC,專為觸控板控制而設計。主要應用是替換機械開關或按鈕,晶片一次性可以讀取出16個按鍵的狀態資料。
工作電壓:2。4V-5。5V。
應用電路
官方手冊上的推薦電路為:
16 鍵模式參考應用電路圖
上面參考電路中有6個靈敏度調節電容,每個電容對應功能如下表所示:
CJ0~CJ3 和 CJWA-CJWB 的電容值可用於調節對應鍵的靈敏度。
電容值越小,靈敏度越高。靈敏度的調節必須是根據實際應用的 PCB 來做決定。電容值的取值範圍是 1pF ≦ CJ0~CJ3 ≦ 50pF ,1pF ≦ CJWA~CJWB ≦ 50pF。
原理圖
實際加工之後的PCB板,建議先透過調節 C21~C24 的容值來調節 TP0~TP15 的靈敏度,再調節 C25 和 C26 的容值來調節喚醒靈敏度。
板子上畫了五個按鍵,分別為TP0、TP1、TP2、TP3、TP8,我的PCB板上使用的電容值都為10pF。
嵌入式物聯網需要學的東西真的非常多,千萬不要學錯了路線和內容,導致工資要不上去!無償分享大家一個資料包,差不多150多G。裡面學習內容、面經、專案都比較新也比較全!某魚上買估計至少要好幾十。
點選這裡找小助理0元領取:加微信領取資料
模式選擇
由上面的原理圖,我們知道:TP1=0,TP2=0 。
當 TP1=0,TP2=0 ,我們查詢手冊知道,設定為16按鍵全使用,SDA高電平觸發模式。
TP3=0,TP4=0,對應多鍵模式,即可以同時按下多個按鍵。如果TP3和TP4懸空,即不焊接1M電阻,那麼即為全部單鍵有效。
這五個選項埠具體定義如下:
時序分析
由於本例項實際情況, TP1=0,TP2=0 ,所以具體時序圖如下:
16鍵輸入,高電平有效時序
注意
:雖然這個晶片使用了兩個引腳來驅動,命名也像I2C匯流排的命名,但是這個驅動真的跟I2C一點關係沒有。
讀取16個按鍵狀態的函式實現如下所示:
uint16_t Touch_Read(void){ uint8_t i = 0; uint16_t real_Value = 0; //傳送一個高電平 SDA_OUT(); TTP_SDO = 1; delay_us(100); TTP_SDO = 0; delay_us(20); SDA_IN(); //迴圈獲取16個觸控按鍵的狀態 for (i = 0; i < 16; i ++) { TTP_SCL = 1; delay_us(100); TTP_SCL = 0; delay_us(1); if (TTP_SDI == 1) { real_Value |= (1 << i); } } delay_ms(2); return real_Value;}
利用上面函式的返回值,可以與上一次呼叫的返回值相比,如果一致,可認為是同一次觸控操作,這樣可以避免誤認為多次動作。
原文連結:https://mp。weixin。qq。com/s/pFDWY5m7obryZJAE-7VLqg
轉載自:嵌入式從0到1
文章來源於程式設計師小哈,嵌入式從0到1
版權宣告:本文來源網路,免費傳達知識,版權歸原作者所有,如涉及作品版權問題,請聯絡我進行刪除。