PSOC-Glitch Filter干擾濾波器,PUSH BUTTON應用

在微控制器的使用當中,經常會使用Switch或PUSH BUTTON這類的開關做為控制訊號

Switch是一種固定的切換開關,通常能夠持續保持一種狀態

在電路符號中,通常會用下圖A表示

sw

 

圖A這種開關,可以提供一種固定的狀態,例如開關兩端分別接正電源或GND

就可以提供控制器High或Low的準位,就可以進行判斷,而上圖B中的開關

就是屬於Push button,Push button是一種彈跳式的開關

在按下時,兩邊短路,放開時,則回彈,所以並不能提供一種固定的狀態

但又很常會遇到,需要利用這種Push做一些Lock的邏輯,

例如按一下Push button後,要讓某顆LED恆亮,或者觸發什麼動作

再按一下時,則關閉現在狀態,通常這種邏輯都是會利用程式去掃描(scan)或者

利用中斷的方式去處理,然而這篇文章是要記錄說,如何使用PSoC所提供的Glitch Filter

來完成這項工作,完成這項工作時,我們已經知道,

當按鈕第一次觸發的時候,除了要避除機械震動外,還要能夠保持住處發信號,

在第二次觸發的時候,則要取消觸發信號,在這裡,我們可以配合Glitch Filter與D型正反器來完成

(D Flip Flop在PSoC裡面也是相當好用的一樣東西)

我們可以做以下的配置

pushbutton

 

利用Glitch Filter做濾波(機械震動)的工作,然後觸發D型正反器的CLK腳,使其由Low>High

使D型正反器的d腳輸入1,轉移到q上,點亮LED燈,並且會保持狀態,

當第二次Push button在被按下時,則透過D型正反器SR腳AND輸出(High)與Glitch Filter(High)做清除

使D型正反器的q腳清除為0,如此一來便可簡化程式不停地的scan的負擔,

或者使用Interrupt時由機械震動所造成的影響。

另外透過Glitch Filter的濾波時間設定,也可以輕鬆的改變Push button所需的觸發時間

例如某個Push button不希望被人誤觸,需要觸發一定時間時,就可以使用Glitch Filter來做設定。

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料