前言 CW32 電容式觸摸按鍵設計指南向客戶提供一種利用 CW32 內部資源結合軟件編程實現電容式觸摸按鍵有效 觸摸檢測的方法。本指南的內容重點在于工作原理、軟件檢測過程以及調試指引。利用芯源半導體的 CW32 系列小規模 MCU 的 IO、比較器、定時器、高速高精度內置 RC 時鐘源以及高算力 等功能,通過檢測電路端子電容的微小變化和波動,實現電容式觸摸按鍵功能。其外圍電路簡單,占用資源 比例不高,非常有利于用戶在節約 BOM 成本的前提下拓展功能。結合適當的工業化設計,觸摸按鍵比接觸 式按鍵更美觀、耐磨的同時,還具有防水、抗干擾、壽命長等多種優勢。通過本文,您會了解到如何利用內置電壓比較器和內置定時器及軟件配合,實現靈活方便的按鍵檢測。本文 在介紹標準演示板(如下圖)和演示軟件的性能參數的同時,還會給出詳細的調試建議以及設計參數選擇傾 向分析,用以幫助客戶快速而自信地完成設計并實施調試。
1、 電容觸摸檢測基本原理
獨立于電路的金屬部件都能夠作為電容觸摸傳感器使用,其原理在于金屬部件附近存在手指時,相當于增加 了金屬部件對地的旁路電容。因此,利用 CW32 系列 MCU 的 IO 口對金屬部件充電,并檢測電容放電時間的 變化,理論上能夠辨別金屬部件附近是否存在手指按壓動作。當無手指存在時,金屬部件的電容為 Cp,其放 電時間為 t1;當存在手指時,增加的旁路電容為 Cx,此時的放電時間為 t2,如下圖所示,可以看出兩者之間 的放電時間是不一樣的:
2、 基于 CW32F003 的觸摸按鍵方案簡介
由于 CW32F003 集成了電壓比較器 VC 和定時器,因此觸摸按鍵方案可以通過軟件來實現,其實現的原來框 圖如下所示:
其過程如下:1. GTIM 配置為門控計數方式,計數源為芯片內部的 PCLK 時鐘。2. VC 比較器的同相端配置為按鍵的接口,反相段配置為參考,參考的來源為芯片的 VCC 通過內部電阻網 絡分壓得到,VC 比較器輸出極性不反轉。3. GPIO 口配置為數字輸出,輸出高電平對電容充電。由于電容容值比較小,充電電流較大(圖中紅色箭 頭所示),電容上的電壓很快達到 VCC。4. GTIM的計數器 CNT清 0,GPIO口配置為輸入高阻態,電容上的電荷基本通過 R泄放(圖中藍色箭頭所示), 需要一定的時間,此時電容上的電壓要比 VC 比較器的反相端的電壓高,VC 輸出高電平,是 GTIM 的門 控信號有效,GTIM 進行計數。5. 當電容上的電壓降低到比 VC 比較器的反相端的參考電壓低時,VC 輸出低電平,GTIM 停止計數,同時 VC 比較將產生一個中斷信號,此時讀取 GTIM 的 CNT 的計數值,和判決門限比較可以判斷是否發生觸 摸按鍵的事件。如下圖所示:
3、 電容觸摸檢測電路軟件過程
在范例程序中,軟件定時(用定時器中斷實現)對每個被測 IO 充電并檢測放電時間 N 次,N 次循環檢測后, 將統計結果提交濾波器狀態機,得到按鍵當前狀態。每次檢測的具體過程如下:1. 將 IO 口置高 2 個機器周期,此時金屬部件及電容 C 對 GND 的電壓被充高到 VCC。2. 將 IO 口配置為電壓比較器輸入模式,此時 IO 口狀態切換為高阻輸入狀態,金屬部件及電容 C 通過對 GND 的旁路電阻 R 放電,端子電壓變化曲線為標準的 RC 放電曲線。3. 軟件記錄循環定時器(GTIM 最高主頻運行)的當前值,并等待電壓比較器的輸出翻轉(電壓比較器被 配置為與某電壓門限比較)。4. 電壓比較器輸出翻轉后立即記錄循環定時器當前值,并結合前次記錄的時間記錄輸出結果。觸摸檢測過程的相關代碼如下:
uint32_t TouchKey_GetValue(uint8_t key, uint8_t ref)
{
uint32_t CurTime;
//VC1 切換通道
CW_VC1->CR0_f.INP = key;??????// 設置按鍵通道
CW_VC1->DIV_f.DIV = ref;???????// 設置按鍵比較的參考比例
// 獲取放電時間
CW_GPIOB->DIR &= ~((1UL<<8)>>key);? ?// 按鍵端口輸出,對電容充電
__NOP();
__NOP();
CW_GTIM->CNT = 0x0000;????????// 計數器清零
CW_GPIOB->DIR |= ((1UL<<8)>>key);???// 按鍵端口輸入高阻
while((CW_VC1->SR_f.FLTV) == 1 );?????// 等到放電到比較點
CurTime = CW_GTIM->CNT;????????// 獲取放電時間
return CurTime;
}
4、 觸摸參數及選型傾向
為了保證檢測流程順利執行,需要選擇每一個觸摸按鍵的基礎電容 C 和放電電阻 R 以及比較器參考門限 V。DEMO 中,這三個參數一般為 C=4.7pF,R=51KΩ,V=9/64 VDD。C 和 R 的值,以及比較器參考門限 V 均可根據實際電路測試結果進行調整,調整考量如下:1. C 的容量增加會令放電時間更長,在檢測程序中將會需要更多的機器周期等待比較器翻轉。2. C 的容量增加會顯著增強電路穩定性但對檢測靈敏度沒有大的影響。3. R 的阻值增加會令放電時間更長,在檢測程序中將會需要更多的機器周期等待比較器翻轉。4. R 的阻值增加會降低電路穩定性(高阻易受環境干擾)但對檢測靈敏度有明顯幫助。5. 比較器參考門限 V 過高會降低檢測靈敏度,但能節約檢測時間。門限 V 過低會削弱抗干擾能力并浪費檢 測時間。
5、 調試指引及性能參考
5.1 示例軟件框架介紹
示例軟件占用 1 個基本定時器,利用定時中斷并在中斷服務程序中執行按鍵檢測過程、定時周期 10 毫秒。每次進入中斷服務程序后,順序掃描 M 個觸摸按鍵的 RC 響應。順序掃描 N 次后,將 RC 響應結果數據提交濾波器狀態機。濾波器狀態機輸出按鍵狀態結果。
5.2 調試工具 TD_GetBaseResponseRCT 的使用
示例軟件提供一組標定工具來測量當前環境的 RC 響應,執行過程如下:1. 在沒有手指按下的情況下,執行 TD_GetBaseResponseRCT,函數的參數用于選擇對應 IO,返回值作 為該按鍵的基礎時長 TB。2. 在有手指按下的情況下,執行 TD_GetBaseResponseRCT,函數的參數用于選擇對應 IO,返回值作為 該按鍵的信號時長 TS。注 1:每一個按鍵(IO)的 TB和 TS都應被單獨收集并作為濾波器狀態機的參數使用。注 2:各種溫濕度條件下的 TB和 TS都應該在實驗室中被采集并用于影響濾波器狀態機的參數。注 3:比較器門限 V 也是可以針對每一個觸摸按鍵單獨選擇的,如果某個按鍵的 TB和 TS無法實現明顯的差異, 調節 C、R 和 V 將是唯一有效的途徑。?另:由于本例利用了高阻態 及小信號檢測技術,觸摸按鍵的布線要求盡量保持獨立性,其金屬部件、與 IO 的連線以及 RC 電路周圍要盡量避免與其它電路并列共存,否則將大幅提高參數選擇及調試難度直至無法完成。
5.3 性能參考
-
單片機
+關注
關注
6035文章
44554瀏覽量
634620 -
mcu
+關注
關注
146文章
17123瀏覽量
350976
發布評論請先 登錄
相關推薦
評論