TTP229觸控模組的STM32微控制器驅動分享

我們之前分享過一款基於TTP223晶片的點動觸控感測器模組,利用它可以實現單點按鍵的觸控。

最近除錯的板子上畫了一個TTP229晶片,這個晶片可以實現16路觸控按鍵,今天我們就分享一下這個。

TTP229-BSF晶片簡介

TTP229-BSF晶片,封裝為SSOP-28,是一款電容式16鍵觸控感應IC,專為觸控板控制而設計。主要應用是替換機械開關或按鈕,晶片一次性可以讀取出16個按鍵的狀態資料。

工作電壓:2。4V-5。5V。

應用電路

官方手冊上的推薦電路為:

TTP229觸控模組的STM32微控制器驅動分享

16 鍵模式參考應用電路圖

上面參考電路中有6個靈敏度調節電容,每個電容對應功能如下表所示:

TTP229觸控模組的STM32微控制器驅動分享

CJ0~CJ3 和 CJWA-CJWB 的電容值可用於調節對應鍵的靈敏度。

電容值越小,靈敏度越高。靈敏度的調節必須是根據實際應用的 PCB 來做決定。電容值的取值範圍是 1pF ≦ CJ0~CJ3 ≦ 50pF ,1pF ≦ CJWA~CJWB ≦ 50pF。

原理圖

TTP229觸控模組的STM32微控制器驅動分享

實際加工之後的PCB板,建議先透過調節 C21~C24 的容值來調節 TP0~TP15 的靈敏度,再調節 C25 和 C26 的容值來調節喚醒靈敏度。

板子上畫了五個按鍵,分別為TP0、TP1、TP2、TP3、TP8,我的PCB板上使用的電容值都為10pF。

嵌入式物聯網需要學的東西真的非常多,千萬不要學錯了路線和內容,導致工資要不上去!無償分享大家一個資料包,差不多150多G。裡面學習內容、面經、專案都比較新也比較全!某魚上買估計至少要好幾十。

點選這裡找小助理0元領取:加微信領取資料

TTP229觸控模組的STM32微控制器驅動分享

TTP229觸控模組的STM32微控制器驅動分享

模式選擇

由上面的原理圖,我們知道:TP1=0,TP2=0 。

當 TP1=0,TP2=0 ,我們查詢手冊知道,設定為16按鍵全使用,SDA高電平觸發模式。

TP3=0,TP4=0,對應多鍵模式,即可以同時按下多個按鍵。如果TP3和TP4懸空,即不焊接1M電阻,那麼即為全部單鍵有效。

TTP229觸控模組的STM32微控制器驅動分享

這五個選項埠具體定義如下:

TTP229觸控模組的STM32微控制器驅動分享

時序分析

由於本例項實際情況, TP1=0,TP2=0 ,所以具體時序圖如下:

TTP229觸控模組的STM32微控制器驅動分享

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

版權宣告:本文來源網路,免費傳達知識,版權歸原作者所有,如涉及作品版權問題,請聯絡我進行刪除。