通過映射多個按鍵,可以擴展MAX6959 LED顯示驅動器的鍵盤掃描范圍,從8鍵擴展到12鍵。該應用筆記介紹了一種擴展掃描的方法。
MAX6959是4位、9段LED驅動器,可自動掃描并消除8個按鍵開關的抖動,通過一個中斷引腳通知系統處理器消除鍵抖(引腳兼容的MAX6958可以驅動相同數量的LED,但沒有鍵盤掃描功能)。本文介紹的擴展按鍵掃描方案(從8鍵擴展到12鍵)需要在附加鍵上增添雙二極管。
表1. MAX6959 LED顯示驅動器的標準8鍵連接
INPUT1 | INPUT2 | |
DIG0/SEG0 | Key0 | Key4 |
DIG1/SEG1 | Key1 | Key5 |
DIG2/SEG2 | Key2 | Key6 |
DIG3/SEG3 | Key3 | Key7 |
圖1. MAX6959 LED顯示驅動器的標準8鍵連接
表1和圖1給出了MAX6959的標準8鍵連接。鍵切換電路按照2 x 4矩陣(2列、4行)讀取8個按鍵的狀態。鍵盤陣列的4行由4個LED陰極驅動器輸出(DIG0/SEG0至DIG3/SEG3)驅動。作為多層LED驅動的一部分,這些LED陰極驅動輸出依次拉至低電平320μs (標稱值) (順序驅動LED)。這些驅動器輸出分別用來拉低鍵開關的一端,鍵的另一端連接在兩個輸入端:INPUT1和INPUT2,這兩個輸入端從內部拉至MAX6959的高電平V+。按下開關時,INPUT1或INPUT2將由相應的DIG_/SEG_輸出拉至低電平,MAX6959檢測按鍵,并為按鍵提供去抖。
多個按鍵被同時按下時,與開關串聯的二極管可以防止2個或多個LED陰極驅動輸出短路。例如,同時按下Key0和Key1時,與按鍵串聯的二極管可以避免DIG0/SEG0與DIG1/SEG1短路,因為在任何情況下至少有一個二極管為反向偏置。二極管采用的是低成本、共陽極的BAW56,SOT-23封裝。
MAX6959隨時判斷8個按鍵按下或釋放的動作,器件內部的8位寄存器指示這8個按鍵的狀態。從這一點看,在MAX6959的設計中似乎沒有辦法擴展掃描電路,到此為止,大家可能會有一種“受騙”的感覺。
公平地講,我們是在發掘一種冗余情況。許多應用中只需要了解某一個按鍵是否被按下。通常,同時按下兩個按鍵的情況被認為是錯誤的鍵輸入,或者是進入工廠診斷模式。這種兩個按鍵同時按下的情況即為“冗余”情況,我們把4個增添的按鍵連接成好像某一對兒鍵被同時按下的情況,如表2所示。例如,當Key8按下時,對于MAX6959而言,所表現出來的狀態與Key0和Key4同時按下的情況相同。只要每對兒按鍵(如Key0和Key4)的物理位置不相鄰,這種擴展架構即可有效工作。軟件設計應保證在30.3ms的最小去抖周期內響應按鍵的IRQ,保證每個對應于按鍵掃描的結果都經過適當的分析處理。如果軟件對IRQ響應較慢,將無法區分同時按下兩個按鍵的情況(鑒別增添的按鍵狀態)和順序按下相同的兩個按鍵的情況。無論是哪種情況,按鍵去抖寄存器0 x 08將簡單地顯示每個鍵位置位。
表2. MAX6959 LED顯示驅動器擴展后的12鍵連接
INPUT1 | INPUT2 | INPUT1 and INPUT2 | |
DIG0/SEG0 | Key0 | Key4 | Key8 |
DIG1/SEG1 | Key1 | Key5 | Key9 |
DIG2/SEG2 | Key2 | Key6 | Key10 |
DIG3/SEG3 | Key3 | Key7 | Key11 |
圖2
所示電路,每個附加按鍵需要一個雙二極管(如低成本、共陰極的BAV70,SOT-23封裝), 按下開關時,INPUT1和INPUT2被同時拉低。
圖2. MAX6959 LED顯示驅動器擴展后的12鍵連接
最后,值得注意的是:增添的4個按鍵的連接方式模擬的是兩個按鍵同時按下的情況,這兩個按鍵連接在四個LED陰極驅動器輸出的某個輸出端,DIG0/SEG0至DIG3/SEG3。采用這種連接方式,每對兒按鍵總是在同一時間掃描或去抖。如果新增按鍵所模擬的同時按下的兩個鍵由不同的LED陰極驅動輸出掃描,這種工作方式將是不可靠的。因為鍵掃描是順序執行的,一次兩個按鍵,附加按鍵將會錯過一個LED陰極驅動器的去抖周期,而在另一個周期去抖。這樣,同時按下兩個按鍵將表現為順序按下兩個按鍵的情況。采用本文推薦的連接方式可以避免這一問題,因為每對兒按鍵表現為雙鍵同時去抖。
審核編輯:郭婷
-
處理器
+關注
關注
68文章
19286瀏覽量
229843 -
led
+關注
關注
242文章
23277瀏覽量
660880 -
驅動器
+關注
關注
52文章
8236瀏覽量
146365
發布評論請先 登錄
相關推薦
評論