映射多個按鍵將MAX6959 LED顯示驅動器的按鍵掃描功能從8個按鍵擴展到多達12個按鍵。本應用筆記詳細介紹了如何擴展該功能。
介紹
MAX6959為4位、9段LED驅動器,可自動掃描和去抖動多達8個按鍵開關,可選擇通過中斷輸出引腳提醒系統處理器按鍵去抖動。(類似的引腳兼容MAX6958可以驅動相同數量的LED,但不具有按鍵掃描功能。本文所述的技術將MAX6959的能力從8個鍵擴展為12個鍵,每增加一個雙通道二極管。
輸入1 | 輸入2 | |
DIG0/SEG0 | 鍵0 | 鍵4 |
DIG1/SEG1 | 鍵1 | 鍵5 |
DIG2/SEG2 | 鍵2 | 鍵6 |
DIG3/SEG3 | 鍵3 | 鍵7 |
圖1.與MAX6959 LED顯示驅動器的標準8鍵連接。
表1和圖1所示為MAX6959的標準按鍵開關連接。按鍵開關電路讀取以 2 x 4 矩陣(兩列四行)組織的八個按鍵。四個按鍵矩陣行由四個 LED 陰極驅動輸出 DIG0/SEG0 至 DIG3/SEG3 驅動。作為多路復用LED驅動的一部分,這些LED陰極驅動輸出輪流變為低電平320μs (標稱)(并按順序驅動其LED)。這些驅動輸出還用于將兩個按鍵開關的一端拉低。按鍵的另一端連接兩個輸入引腳INPUT1和INPUT2,在MAX6959內部上拉至V+。如果按下開關,則INPUT1或INPUT2將被適當的DIG_/SEG_輸出拉低,MAX6959檢測并去抖動按鍵。
與開關串聯的二極管可確保在同時按下多個鍵時,兩個或多個 LED 陰極驅動輸出不會短路在一起。例如,如果將鍵0和鍵1壓在一起,則與鍵串聯的二極管可防止DIG0/SEG0短路至DIG1/SEG1,因為在任何時候至少有一個二極管將反向偏置。二極管通常采用 SOT-23 中的低成本共陽極 BAW56。
MAX6959可隨時區分和區分八種可能的按鍵的任意組合。該器件中有8位寄存器,用于提供這8個密鑰的狀態。顯然,除了MAX6959設計的8個按鍵之外,沒有辦法擴展這種掃描拓撲。因此,我們必須做每個有自尊的工程師在這種情況下都會做的事情:是的,我們作弊!
更公平地說,我們尋找一個多余的情況來利用。在許多情況下,應用程序只需要知道是否按下了多個鍵中的一個。通常,設備上的雙鍵按下要么是錯誤的鍵控輸入,要么是進入出廠診斷模式的狡猾手段。所以多余的情況是雙鍵按下...這里建議的作弊是使四個額外的鍵看起來好像同時按下了某些鍵對。如表 2 所示。例如,當按下Key8時,MAX6959必須顯示它,就好像同時按下Key0和Key4一樣。只要每個原始鍵對(例如 Key0 和 Key4)沒有在物理上彼此相鄰放置,這種擴展架構就可以很好地工作,以避免它們被意外地壓在一起。軟件應編寫為在 30.3ms 最小去抖動周期時間內響應密鑰 IRQ,以確保分析恰好一次密鑰掃描通過的結果。如果軟件 IRQ 響應緩慢,它將無法區分同時雙擊鍵(識別我們的額外鍵)和相同兩個鍵的順序按鍵。無論哪種情況,密鑰去抖寄存器 0 x 08 將僅顯示為每個密鑰設置的位。
輸入1 | 輸入2 | 輸入 1 和輸入 2 | |
DIG0/SEG0 | 鍵0 | 鍵4 | 鍵8 |
DIG1/SEG1 | 鍵1 | 鍵5 | 鍵9 |
DIG2/SEG2 | 鍵2 | 鍵6 | 鍵10 |
DIG3/SEG3 | 鍵3 | 鍵7 | 鍵11 |
電路如圖2所示。每個鍵都需要一個雙二極管(例如SOT-23中的低成本共陰極BAV70),當按下開關時,它將INPUT1和INPUT2拉低。
圖2.擴展了與MAX6959 LED顯示驅動器的12鍵連接。
最后,一個警告。四個擴展鍵中的每一個都經過接線,以模擬四個 LED 陰極驅動輸出 DIG0/SEG0 到 DIG3/SEG3 上兩個鍵的雙按鍵。通過這種連接,每個密鑰對始終同時被掃描和去抖動。模擬由不同LED陰極驅動輸出掃描的按鍵雙鍵的額外按鍵將不可靠。由于按鍵掃描是按順序執行的,一次執行兩個按鍵,因此額外的按鍵可能會錯過一個 LED 陰極驅動器的去抖動周期,但另一個 LED 陰極驅動器會正確去抖動。然后,此雙鍵按下將顯示為兩個連續按鍵,而不是雙鍵按下。建議的連接方案不會發生這種情況,因為代表雙密鑰的每個密鑰對都會一起去抖動。
審核編輯:郭婷
-
處理器
+關注
關注
68文章
19348瀏覽量
230267 -
led
+關注
關注
242文章
23308瀏覽量
661612 -
驅動器
+關注
關注
53文章
8259瀏覽量
146612
發布評論請先 登錄
相關推薦
評論