LED顯示驅(qū)動器的鍵盤掃描擴展方法介紹
本應(yīng)用筆記介紹了一種擴展掃描的方法,可以擴展MAX6954和MAX6955 LED顯示驅(qū)動器的鍵盤掃描范圍,從32鍵擴展到80鍵。 圖2. MAX6954/MAX6955擴展后的48鍵連接
MAX6954/MAX6955是4線或2線串行接口的LED驅(qū)動器,可以控制7段、14段或16段LED或一個16x8的LED矩陣。驅(qū)動器還包括5個I/O擴展(GPIO)端口,以及用這些端口自動掃描32個按鍵、消除按鍵抖動的所有邏輯控制。另外一個功能選項是通過一個中斷引腳通知系統(tǒng)處理器消除鍵抖。本文介紹的擴展按鍵掃描方案(從32鍵擴展到80或更多個按鍵)需要增添額外的二極管。
表1. MAX6954/MAX6955的標(biāo)準(zhǔn)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的標(biāo)準(zhǔn)32鍵連接
表1和圖1給出了MAX6954/MAX6955的標(biāo)準(zhǔn)8鍵連接。鍵切換電路按照4 x 8矩陣(4列、8行)讀取32個按鍵的狀態(tài)。鍵盤陣列的8行由8個LED陰極驅(qū)動器輸出(LED輸出O0至LED輸出O7)驅(qū)動。作為多層LED驅(qū)動的一部分,這些LED陰極驅(qū)動輸出依次拉至低電平320µs (標(biāo)稱值)(順序驅(qū)動LED)。這些驅(qū)動器輸出分別用來拉低鍵開關(guān)的一端,鍵的另一端連接在4個輸入引腳(P0至P3),這4個輸入引腳從內(nèi)部拉至MAX6954/MAX6955的高電平V+。按下開關(guān)時,P0、P1、P2或P3將由相應(yīng)的LED輸出Ox拉至低電平,MAX6954/MAX6955檢測按鍵,并為按鍵提供去抖。
多個按鍵被同時按下時,與開關(guān)串聯(lián)的二極管可以防止2個或多個LED陰極驅(qū)動輸出短路。例如,同時按下SW A1和SW A2時,與按鍵串聯(lián)的二極管可以避免LED輸出O0與LED輸出O1短路,因為在任何情況下至少有一個二極管為反向偏置。二極管采用的是低成本、共陽極的BAW56,SOT23封裝。
MAX6954/MAX6955隨時判斷32個按鍵按下或釋放的動作,器件內(nèi)部僅為指示這32個按鍵的狀態(tài)提供了寄存器。從這一點看,在MAX6954/MAX6955的設(shè)計中似乎沒有辦法擴展掃描電路,需要尋找一種全新的設(shè)計方案。
針對這種特殊情況,我們發(fā)掘了一種冗余情況。許多應(yīng)用中只需要了解某一個按鍵是否被按下。通常,同時按下兩個按鍵的情況被認(rèn)為是錯誤的鍵輸入,或者是進入工廠診斷模式。這種兩個按鍵同時按下的情況是一種“冗余”情況,我們把新增按鍵連接成好像某一對兒鍵被同時按下的情況,表2和圖2所示電路通過組合P0、P1、P2和P3擴充了16個按鍵。例如,當(dāng)SW AB1按下時,對于MAX6954/MAX6955而言,所表現(xiàn)出來的狀態(tài)與SW A1和SW B1同時按下的情況相同。只要每對兒按鍵(如SW A1和SW B1)的物理位置不相鄰,這種擴展架構(gòu)即可有效工作。軟件設(shè)計應(yīng)保證在MAX6954/MAX6955的最小去抖周期內(nèi)響應(yīng)按鍵的/IRQ,保證每個對應(yīng)于按鍵掃描的結(jié)果都經(jīng)過適當(dāng)?shù)姆治鎏幚怼H绻浖?IRQ響應(yīng)較慢,將無法區(qū)分同時按下兩個按鍵的情況(鑒別增添的按鍵狀態(tài))和順序按下相同的兩個按鍵的情況。無論是哪種情況,按鍵去抖寄存器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封裝), 按下開關(guān)時,P0和P1或P2和P3被同時拉低。
圖2和表2通過組合P0、P1、P2和P3擴充了16個按鍵。實際上,對于P0-P3鍵掃描輸入還存在另外四種可能的兩鍵組合方式。如果使用了6種兩鍵組合方式,按鍵數(shù)量將增加到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倍數(shù)量的二極管。
表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鍵連接的一個最好理由是它們需要更多的二極管。如果應(yīng)用中所需按鍵只是略高于32鍵的限制,則可首先選擇本文推薦的方案。只是因為某些偶然因素,讓用戶找尋3鍵和4鍵的方案也是不可取的。
值得注意的是:每個擴充按鍵的連接方式模擬的是多個按鍵同時按下的情況,這些按鍵連接在同一LED陰極驅(qū)動器輸出端(LED輸出O0至LED輸出O7)。采用這種連接方式,相關(guān)組合的按鍵總是在同一時間掃描或去抖。如果新增按鍵所模擬的同時按下的按鍵由不同的LED陰極驅(qū)動輸出掃描,這種工作方式將是不可靠的。