摘要:本應用筆記介紹了一種擴展掃描的方法,可以擴展MAX6954和MAX6955 LED顯示驅動器的鍵盤掃描范圍,從32鍵擴展到80鍵。
MAX6954/MAX6955是4線或2線串行接口的LED驅動器,可以控制7段、14段或16段LED或一個16x8的LED矩陣。驅動器還包括5個I/O擴展(GPIO)端口,以及用這些端口自動掃描32個按鍵、消除按鍵抖動的所有邏輯控制。另外一個功能選項是通過一個中斷引腳通知系統處理器消除鍵抖。本文介紹的擴展按鍵掃描方案(從32鍵擴展到80或更多個按鍵)需要增添額外的二極管。
表1. MAX6954/MAX6955的標準32鍵連接
圖1. MAX6954/MAX6955的標準32鍵連接
表1和圖1給出了MAX6954/MAX6955的標準8鍵連接。鍵切換電路按照4 x 8矩陣(4列、8行)讀取32個按鍵的狀態。鍵盤陣列的8行由8個LED陰極驅動器輸出(LED輸出O0至LED輸出O7)驅動。作為多層LED驅動的一部分,這些LED陰極驅動輸出依次拉至低電平320μs (標稱值)(順序驅動LED)。這些驅動器輸出分別用來拉低鍵開關的一端,鍵的另一端連接在4個輸入引腳(P0至P3),這4個輸入引腳從內部拉至MAX6954/MAX6955的高電平V+。按下開關時,P0、P1、P2或P3將由相應的LED輸出Ox拉至低電平,MAX6954/MAX6955檢測按鍵,并為按鍵提供去抖。
多個按鍵被同時按下時,與開關串聯的二極管可以防止2個或多個LED陰極驅動輸出短路。例如,同時按下SW A1和SW A2時,與按鍵串聯的二極管可以避免LED輸出O0與LED輸出O1短路,因為在任何情況下至少有一個二極管為反向偏置。二極管采用的是低成本、共陽極的BAW56,SOT23封裝。
MAX6954/MAX6955隨時判斷32個按鍵按下或釋放的動作,器件內部僅為指示這32個按鍵的狀態提供了寄存器。從這一點看,在MAX6954/MAX6955的設計中似乎沒有辦法擴展掃描電路,需要尋找一種全新的設計方案。
針對這種特殊情況,我們發掘了一種冗余情況。許多應用中只需要了解某一個按鍵是否被按下。通常,同時按下兩個按鍵的情況被認為是錯誤的鍵輸入,或者是進入工廠診斷模式。這種兩個按鍵同時按下的情況是一種“冗余”情況,我們把新增按鍵連接成好像某一對兒鍵被同時按下的情況,表2和圖2所示電路通過組合P0、P1、P2和P3擴充了16個按鍵。例如,當SW AB1按下時,對于MAX6954/MAX6955而言,所表現出來的狀態與SW A1和SW B1同時按下的情況相同。只要每對兒按鍵(如SW A1和SW B1)的物理位置不相鄰,這種擴展架構即可有效工作。軟件設計應保證在MAX6954/MAX6955的最小去抖周期內響應按鍵的/IRQ,保證每個對應于按鍵掃描的結果都經過適當的分析處理。如果軟件對/IRQ響應較慢,將無法區分同時按下兩個按鍵的情況(鑒別增添的按鍵狀態)和順序按下相同的兩個按鍵的情況。無論是哪種情況,按鍵去抖寄存器0x08-0x0B將簡單地顯示每個鍵位置位。
表2. MAX6954/MAX6955擴展后的48鍵連接
每個附加按鍵需要一個雙二極管(如低成本、共陰極的BAV70,SOT-23封裝), 按下開關時,P0和P1或P2和P3被同時拉低。
圖2. MAX6954/MAX6955擴展后的48鍵連接
圖2和表2通過組合P0、P1、P2和P3擴充了16個按鍵。實際上,對于P0-P3鍵掃描輸入還存在另外四種可能的兩鍵組合方式。如果使用了6種兩鍵組合方式,按鍵數量將增加到80個,如表3所示。圖3給出了6個附加按鍵在LED輸出O0行的連接方式。每個附加按鍵需要一個雙二極管。
表3. MAX6954/MAX6955擴展后的80鍵連接
圖3. MAX6954/MAX6955擴展后的80鍵連接
為什么僅將“同時按下雙鍵”作為判斷附加按鍵的途徑呢?3鍵和4鍵組合可用來替代雙鍵按下的情況,表4給出了這種附加配置。需要注意的是,4-3組合鍵每組需要三個二極管,四組鍵需要4倍數量的二極管。
表4. 3鍵和4鍵連接
排除3鍵和4鍵連接的一個最好理由是它們需要更多的二極管。如果應用中所需按鍵只是略高于32鍵的限制,則可首先選擇本文推薦的方案。只是因為某些偶然因素,讓用戶找尋3鍵和4鍵的方案也是不可取的。
值得注意的是:每個擴充按鍵的連接方式模擬的是多個按鍵同時按下的情況,這些按鍵連接在同一LED陰極驅動器輸出端(LED輸出O0至LED輸出O7)。采用這種連接方式,相關組合的按鍵總是在同一時間掃描或去抖。如果新增按鍵所模擬的同時按下的按鍵由不同的LED陰極驅動輸出掃描,這種工作方式將是不可靠的。
MAX6954/MAX6955是4線或2線串行接口的LED驅動器,可以控制7段、14段或16段LED或一個16x8的LED矩陣。驅動器還包括5個I/O擴展(GPIO)端口,以及用這些端口自動掃描32個按鍵、消除按鍵抖動的所有邏輯控制。另外一個功能選項是通過一個中斷引腳通知系統處理器消除鍵抖。本文介紹的擴展按鍵掃描方案(從32鍵擴展到80或更多個按鍵)需要增添額外的二極管。
表1. MAX6954/MAX6955的標準32鍵連接
P0 | P1 | P2 | P3 | |
LED Output O0 | SW A1 | SW B1 | SW C1 | SW D1 |
LED Output O1 | SW A2 | SW B2 | SW C2 | SW D2 |
LED Output O2 | SW A3 | SW B3 | SW C3 | SW D3 |
LED Output O3 | SW A4 | SW B4 | SW C4 | SW D4 |
LED Output O4 | SW A5 | SW B5 | SW C5 | SW D5 |
LED Output O5 | SW A6 | SW B6 | SW C6 | SW D6 |
LED Output O6 | SW A7 | SW B7 | SW C7 | SW D7 |
LED Output O7 | SW A8 | SW B8 | SW C8 | SW D8 |
圖1. MAX6954/MAX6955的標準32鍵連接
表1和圖1給出了MAX6954/MAX6955的標準8鍵連接。鍵切換電路按照4 x 8矩陣(4列、8行)讀取32個按鍵的狀態。鍵盤陣列的8行由8個LED陰極驅動器輸出(LED輸出O0至LED輸出O7)驅動。作為多層LED驅動的一部分,這些LED陰極驅動輸出依次拉至低電平320μs (標稱值)(順序驅動LED)。這些驅動器輸出分別用來拉低鍵開關的一端,鍵的另一端連接在4個輸入引腳(P0至P3),這4個輸入引腳從內部拉至MAX6954/MAX6955的高電平V+。按下開關時,P0、P1、P2或P3將由相應的LED輸出Ox拉至低電平,MAX6954/MAX6955檢測按鍵,并為按鍵提供去抖。
多個按鍵被同時按下時,與開關串聯的二極管可以防止2個或多個LED陰極驅動輸出短路。例如,同時按下SW A1和SW A2時,與按鍵串聯的二極管可以避免LED輸出O0與LED輸出O1短路,因為在任何情況下至少有一個二極管為反向偏置。二極管采用的是低成本、共陽極的BAW56,SOT23封裝。
MAX6954/MAX6955隨時判斷32個按鍵按下或釋放的動作,器件內部僅為指示這32個按鍵的狀態提供了寄存器。從這一點看,在MAX6954/MAX6955的設計中似乎沒有辦法擴展掃描電路,需要尋找一種全新的設計方案。
針對這種特殊情況,我們發掘了一種冗余情況。許多應用中只需要了解某一個按鍵是否被按下。通常,同時按下兩個按鍵的情況被認為是錯誤的鍵輸入,或者是進入工廠診斷模式。這種兩個按鍵同時按下的情況是一種“冗余”情況,我們把新增按鍵連接成好像某一對兒鍵被同時按下的情況,表2和圖2所示電路通過組合P0、P1、P2和P3擴充了16個按鍵。例如,當SW AB1按下時,對于MAX6954/MAX6955而言,所表現出來的狀態與SW A1和SW B1同時按下的情況相同。只要每對兒按鍵(如SW A1和SW B1)的物理位置不相鄰,這種擴展架構即可有效工作。軟件設計應保證在MAX6954/MAX6955的最小去抖周期內響應按鍵的/IRQ,保證每個對應于按鍵掃描的結果都經過適當的分析處理。如果軟件對/IRQ響應較慢,將無法區分同時按下兩個按鍵的情況(鑒別增添的按鍵狀態)和順序按下相同的兩個按鍵的情況。無論是哪種情況,按鍵去抖寄存器0x08-0x0B將簡單地顯示每個鍵位置位。
表2. MAX6954/MAX6955擴展后的48鍵連接
P0 | P1 | P2 | P3 | P0 & P1 | P2 & P3 | |
LED Output O0 | SW A1 | SW B1 | SW C1 | SW D1 | SW AB1 | SW CD1 |
LED Output O1 | SW A2 | SW B2 | SW C2 | SW D2 | SW AB2 | SW CD2 |
LED Output O2 | SW A3 | SW B3 | SW C3 | SW D3 | SW AB3 | SW CD3 |
LED Output O3 | SW A4 | SW B4 | SW C4 | SW D4 | SW AB4 | SW CD4 |
LED Output O4 | SW A5 | SW B5 | SW C5 | SW D5 | SW AB5 | SW CD5 |
LED Output O5 | SW A6 | SW B6 | SW C6 | SW D6 | SW AB6 | SW CD6 |
LED Output O6 | SW A7 | SW B7 | SW C7 | SW D7 | SW AB7 | SW CD7 |
LED Output O7 | SW A8 | SW B8 | SW C8 | SW D8 | SW AB8 | SW CD8 |
每個附加按鍵需要一個雙二極管(如低成本、共陰極的BAV70,SOT-23封裝), 按下開關時,P0和P1或P2和P3被同時拉低。
圖2. MAX6954/MAX6955擴展后的48鍵連接
圖2和表2通過組合P0、P1、P2和P3擴充了16個按鍵。實際上,對于P0-P3鍵掃描輸入還存在另外四種可能的兩鍵組合方式。如果使用了6種兩鍵組合方式,按鍵數量將增加到80個,如表3所示。圖3給出了6個附加按鍵在LED輸出O0行的連接方式。每個附加按鍵需要一個雙二極管。
表3. MAX6954/MAX6955擴展后的80鍵連接
P0 | P1 | P2 | P3 | P0 & P1 | P0 & P2 | P0 & P3 | P1 & P2 | P1 & P3 | P2 & P3 | |
LED Output O0 | SW A1 | SW B1 | SW C1 | SW D1 | SW AB1 | SW AC1 | SW AD1 | SW BC1 | SW BD1 | SW CD1 |
LED Output O1 | SW A2 | SW B2 | SW C2 | SW D2 | SW AB2 | SW AC2 | SW AD2 | SW BC2 | SW BD2 | SW CD2 |
LED Output O2 | SW A3 | SW B3 | SW C3 | SW D3 | SW AB3 | SW AC3 | SW AD3 | SW BC3 | SW BD3 | SW CD3 |
LED Output O3 | SW A4 | SW B4 | SW C4 | SW D4 | SW AB4 | SW AC4 | SW AD4 | SW BC4 | SW BD4 | SW CD4 |
LED Output O4 | SW A5 | SW B5 | SW C5 | SW D5 | SW AB5 | SW AC5 | SW AD5 | SW BC5 | SW BD5 | SW CD5 |
LED Output O5 | SW A6 | SW B6 | SW C6 | SW D6 | SW AB6 | SW AC6 | SW AD6 | SW BC6 | SW BD6 | SW CD6 |
LED Output O6 | SW A7 | SW B7 | SW C7 | SW D7 | SW AB7 | SW AC7 | SW AD7 | SW BC7 | SW BD7 | SW CD7 |
LED Output O7 | SW A8 | SW B8 | SW C8 | SW D8 | SW AB8 | SW AC8 | SW AD8 | SW BC8 | SW BD8 | SW CD8 |
圖3. MAX6954/MAX6955擴展后的80鍵連接
為什么僅將“同時按下雙鍵”作為判斷附加按鍵的途徑呢?3鍵和4鍵組合可用來替代雙鍵按下的情況,表4給出了這種附加配置。需要注意的是,4-3組合鍵每組需要三個二極管,四組鍵需要4倍數量的二極管。
表4. 3鍵和4鍵連接
P0 & P1 & P3 | P0 & P1 & P4 | P0 & P2 & P3 | P1 & P2 & P4 | P0 & P1 & P2 &P3 | |
LED Output O0 | SW ABC1 | SW ABD1 | SW ACD1 | SW BCD1 | SW ABCD1 |
LED Output O1 | SW ABC2 | SW ABD2 | SW ACD2 | SW BCD2 | SW ABCD2 |
LED Output O2 | SW ABC3 | SW ABD3 | SW ACD3 | SW BCD3 | SW ABCD3 |
LED Output O3 | SW ABC4 | SW ABD4 | SW ACD4 | SW BCD4 | SW ABCD4 |
LED Output O4 | SW ABC5 | SW ABD5 | SW ACD5 | SW BCD5 | SW ABCD5 |
LED Output O5 | SW ABC6 | SW ABD6 | SW ACD6 | SW BCD6 | SW ABCD6 |
LED Output O6 | SW ABC7 | SW ABD7 | SW ACD7 | SW BCD7 | SW ABCD7 |
LED Output O7 | SW ABC8 | SW ABD8 | SW ACD8 | SW BCD8 | SW ABCD8 |
排除3鍵和4鍵連接的一個最好理由是它們需要更多的二極管。如果應用中所需按鍵只是略高于32鍵的限制,則可首先選擇本文推薦的方案。只是因為某些偶然因素,讓用戶找尋3鍵和4鍵的方案也是不可取的。
值得注意的是:每個擴充按鍵的連接方式模擬的是多個按鍵同時按下的情況,這些按鍵連接在同一LED陰極驅動器輸出端(LED輸出O0至LED輸出O7)。采用這種連接方式,相關組合的按鍵總是在同一時間掃描或去抖。如果新增按鍵所模擬的同時按下的按鍵由不同的LED陰極驅動輸出掃描,這種工作方式將是不可靠的。
評論
查看更多