基於 NXP LPC804 Cortex-M0 的 Touch Slider 方案

在此要介紹一個LPC80X: Low-Cost Microcontrollers (MCUs) based on Arm Cortex-M0+ Core 的Touch Slider 應用.LPC800 MCU集成了CapTouch 模組以支援觸摸解決方案。CapTouch 模組是一種可以感知電容值的通用轉換器。它掃描觸控式螢幕上每個鍵盤的電容,並指示觸摸的鍵盤。此方案中使用CapTouch 模組的X0、X1、 X2 、YL 和YH P接腳,再加上一Comparator input 接腳,另外為了能顯示出slider 數值變化,使用了3 個GPIO 來控制LED。

 在Firmware 開發方面,我們是使用NXP 提供的MCU開發環境MCUXpresso, 可於下列網址下載安裝.

https://www.nxp.com/design/software/development-software/mcuxpresso-software-and-tools/mcuxpresso-integrated-development-environment-ide:MCUXpresso-IDE

此方案使用下列LPC804 建議使用 SDK 的Sample code來進行開發, 首先取的LPC804 SDK, 如圖所示Import CapTouch sample code 以進行開發。

import SDK sample code

首先修改Project name和 src檔案夾下的檔案名稱如下:

rename file


修改CapTouch_Sensor_Slider_main.c 如下設定,再此先設定Cap Touch CTRL 暫存器設定:




選取致能使用的X Pins,並且致能觸摸模組中斷機制:

select xpins


在主程式打印出當使用者觸摸Slider Bar 時X Pins 的CAP 值,以及相對應Slider 數值以利偵錯,在此同時也能擷取出Slider 數值,
並依照數值範圍來顯示LED的明滅,由此可讓使用者得知Touch Slider的動作。


main fiunction



在使用CapTouch 模組之前,需透過MCU的Switch Matrix接腳設置功能,依照線路的規畫,
設置使用的腳位,並透過設置GPIO腳位來使用Cap Touch 功能相關設置如下圖所示:

swm setting


修改CapTouch_Sensor_Slider_ISRs.c, 即修改IRQ Routine 內CapTouch 模組 input 存取方式如下設定:

Touch ISR

 

程式控制流程圖

flow chart


方案線路圖
schematic 2-1


schematic 2-2

 

應用場景描述

Touch slider 的應用是很廣泛的, 舉凡需要調整控制值大小都很適合。
這裡以一個實際應用的IOT 的調光控制, 來描述應用場景。由手指的滑動觸控Slider bar,觸控模組偵測到Slider bar上的電容變化,將電容值轉換成相對的調光控制值, 再由LPC804透過控制界面(UART) 將調光值傳送給無線發射控制器,無線發射器再將調光值發送給遠端的調光控制接收器,此調光控制器依接收到的調光值來控制燈光明暗, 如應用場景圖示:

下圖是使用另一個MCU 來接收模擬接收UART 控制界面控制值,再將此控制大小顯示在LCD上。

 demoall

為了在低成本和硬體資源受限的平臺下實現觸摸用例,考慮了更低的 CPU 工作負載和更低的 CPU 頻率。在本方案中,使用簡單的軟體啟用 CapTouch 功能。它用於使用 CapTouch 硬體,並僅在必要時啟用中斷。要掃描通道,將重複步驟 1 到步驟 3
步驟 1. 重置
步驟 2. 充電
步驟 3. 轉換充電Cs
步驟 4. 測量電壓

直到 ACMP達到閾值是觸摸或無接觸事件。當發生任何事件時,可用計數器值作為測量結果存儲在 CAPT_TOUCH 寄存器中。然後返回步驟 0 以掃描下一個通道。其掃描步驟如下圖(轉載自NXP Application note) 。


校準和配置的系統正常運行後,每個 X 感應器都會生成。每次輪詢感應器時,都會有"無接觸"或"觸摸"事件。這些事件可以是用於生成中斷。
在電容式觸摸系統中,觸摸時的電容變化將從充電時間轉換為微控制器中的計數。在 LPC804觸摸介面中,可以以如下方式對互電容進行建模:(轉載自NXP application note AN12082)


以這線上性滑塊的方案中,每個 Cap Touch 感應器連接到一個滑塊段。對於滑塊段,方案中使用鋸齒形圖案(雙 V),如圖 所示(轉載自NXP application note AN12082)


每個上限觸摸的順序應該是連續的,以確保正確的掃描如CAPTX1 ->CAPTX2 ->CAPTX3
滑動手勢(轉載自NXP application note AN12082)


關於更多的CapTouch 模組的周邊應用技術,可參考下列技術來源連結:https://www.nxp.com/docs/en/application-note/AN12082.pdf

►場景應用圖

►產品實體圖

►方案方塊圖

►核心技術優勢

這是基於MCU Capacitive Touch 模組的主要應用,在電容式觸摸系統中,觸摸時的電容變化將從充電時間轉換為微控制器中的計數。 LPC804微控制器採用互電容法,其中發射電極和接收電極用於生成電容,並檢測到這些節點之間的電容變化。 電容式觸控模組是測量電極板電容的變化,簡單地說,該模組為 X 電容器提供少量電荷,然後將電荷傳輸到較大的 Y 電容器,並計算電壓跨越Y電容器。 應用程式必須啟用,其位識別模組控制寄存器的 XPINSEL 欄位中的位Capacitive Touch 模組對 YH 連接埠引腳進行取樣。當 YH 連接埠引腳或模擬比較器在計數時觸發時,將設定 YESTOUCH 標誌。當 YH 連接埠引腳或模擬比較器在計數時觸發時,將設定 NOTOUCH 標誌。關於更多的Capacitive Touch 模組的周邊應用技術,可參考下列技術來源連結:https://www.nxp.com/docs/en/application-note/AN12082.pdf

►方案規格

電容式觸摸支援: •支援三個互電容觸摸感應器, 最多可到五個互電容觸摸感應器。 •使用比較器測量方法。在測量電壓狀態中,模組使用類比比較器輸出。 類比比較器必須啟用並正確配置,並且這個比較器類連接到 YH 埠引腳。 •電容式觸摸模組有五種類型的中斷,每種類型的中斷都帶有一個獨特的標誌。狀態寄存器。 •電容式觸摸模組具有以下輪詢模式,基於 POLLMODE •閾值計數 (TCNT) 設置觸摸和無接觸之間的計數邊界。

相關影片

基於 NXP LPC804 Cortex-M0 的 Touch Slider 方案

LPC804 Touch Slider 介紹一個LPC804 Low-Cost Microcontrollers (MCUs) based on Arm Cortex-M0+ Core 的Touch Slider 應用