節(jié)能的雙線、4×4按鍵鍵盤接口
可以用帶有 ADC 的微控制器設(shè)計(jì)一個(gè)雙線加接地組成的鍵盤接口。例如,可以用一個(gè)電阻分壓器判定一個(gè)按下的鍵(參考文獻(xiàn) 1)。微控制器的整合 ADC, 其輸入電阻一般在數(shù)百千歐量級,為了有足夠的精度,鍵盤分壓器應(yīng)該具有相對較低電阻值,一般為數(shù)十千歐量級。但是,在電池供電系統(tǒng)中,電阻分壓器會消耗數(shù)百毫安電流,這迫使設(shè)計(jì)者選擇經(jīng)典的數(shù)字矩陣開關(guān)和多條 I/O 線作替代。此外,便攜設(shè)備設(shè)計(jì)通常也限制了元件的數(shù)量。
為滿足這兩個(gè)要求,圖 1 中的電路采用了一個(gè)矩陣鍵盤和一個(gè)分為兩行、兩列的電阻網(wǎng)絡(luò)。對于 4 X 4 按鍵的鍵盤,7 只電阻器就足以為所有按鍵編碼,電路只在一個(gè)鍵保持閉合時(shí)消耗能量。而當(dāng)沒有按下任何按鍵時(shí),待機(jī)電流近似為零。只用到兩種阻值的電阻器,使 RA=RB=RC=R1和RD=RE=RF=RG=R2。為按鍵的x和y地址設(shè)定從0 ~ 3的值,通過解算下式,可以計(jì)算出任何鍵閉合時(shí)電阻器RG上的電壓:
p=R1/R2表示行、列組電阻器阻值之間的比率。對于p=4,可以計(jì)算出 16 個(gè) r(x,y) 值,它們在 [1/16, 1] 范圍內(nèi),是按鍵位置的函數(shù)。一般來說,r分隔比率之間的最小差值出現(xiàn)在最靠近的鍵上,如 (3,2) 和 (3,3) 等 x,y 表示的鍵。對于一個(gè) N 位 ADC 和 p=4的比率而言,ADC 的分辨率應(yīng)滿足下式:2-N-1-16-1=240-1。電路需要一個(gè)至少8位分辨率的ADC(N≥8位)。
不妙的是,標(biāo)準(zhǔn)值元件的標(biāo)稱容限 T 不能為此式提供理想的解決方案。于是,可以計(jì)算出最差情況下的分隔比率差:d=r(3,2)-r(3,3)。d 的最小值出現(xiàn)在RG與RD最小值和RA、RB、RC、RE與RF最大值時(shí)。你可以計(jì)算所有電阻器阻值,并為R1和R2的標(biāo)稱值定義一個(gè)通用比率p:
相同的T值適用于所有電阻器。如果n=8及p=4,前式可算出結(jié)果為 T<0.018,表示±1%公差的電阻器可以正確完成16個(gè)鍵的編碼。另外,如果你現(xiàn)在使用固定公差T,可以從式中算出R1和R2值之間對p比率 所要求的極限。如果T=0.01,則該公式計(jì)算出的結(jié)果變?yōu)閜<4.074。
如果你的應(yīng)用需要缺少由ADC產(chǎn)生內(nèi)部中斷的微控制器,可以如圖 1所示將一個(gè)外部比較器連接到輸出電壓上。使比較器的閾值低于輸出電壓端的最低電壓(例子中大約是VREF除16),比較器的輸出作為微控制器的鍵盤中斷源。
注意有10位ADC的微控制器(如Freescale的MC68HC908QB或Texas Instruments MSP430F11)可以用在10個(gè)電阻器編碼的5 X 6鍵盤矩陣。重復(fù)上述分析可得到,行列p比率為5 ~ 5.51,所需電阻器公差低于4.3%,即可正確完成按鍵編碼。R1和R2都可以從±1%公差的E48 系列中選取,R1選10 kΩ,R2則選51.1 kΩ或53.6 kΩ。
參考文獻(xiàn)
1. Amorim, Vitor, and J Simoes, "ADC circuit optimizes key encoding," EDN, Feb 4, 1999, pg 101, /article/CA56657.