省電型鍵盤(pán)通過(guò)MCU管腳控制多路按鍵
傳統(tǒng)上,與n乘m鍵盤(pán)連接的微型控制器要求微型控制器的I/O管腳的n+m為鍵盤(pán)掃描。鍵盤(pán)設(shè)計(jì)保留了微型控制器已經(jīng)被開(kāi)發(fā)出來(lái)的管腳,但是它們要求額外的資源,例如外部的ICs或一個(gè)內(nèi)置的模數(shù)轉(zhuǎn)換器(ADC)。本設(shè)計(jì)這里只利用了一個(gè)I/O管腳,并且要求僅將電阻和電容作為外部元件。
本文引用地址:http://butianyuan.cn/article/202395.htmI/O是一個(gè)開(kāi)頭被配置作為輸入的雙向管腳(見(jiàn)圖)。當(dāng)沒(méi)有按鍵被按下時(shí),電容被放電,并且上拉電阻RH保持I/O為高。微型控制器處于休眠模式,并且只有在I/O狀態(tài)改變引起中斷時(shí)才會(huì)醒來(lái)。當(dāng)按鍵被按下,I/O變低,因?yàn)橄吕W(wǎng)絡(luò)比上拉作用更強(qiáng)些。微型控制器隨后醒來(lái)執(zhí)行以下步驟:
1. 等待聯(lián)絡(luò)消除抖動(dòng)。
2. 把I/O變?yōu)檩敵霾⒃O(shè)置高。 電容隨后開(kāi)始充電到高狀態(tài)電壓。 充電的時(shí)間Ti取決于按鍵被按下和與其關(guān)聯(lián)的R (1,2,…i)。
3. 等待直到T1到來(lái)。
4. 使I/O作為輸入。充電到C暫停。
5. 如果I/O為高,按鍵1被按下。 如果I/O為低,使I/O作為輸出并置高來(lái)持續(xù)充電。
6. 等待直到T2到來(lái)。
7. 使I/O作為輸入。 充電到C暫停。
8. 如果I/O為高,按鍵2被按下。 如果I/O為低,使I/O作為輸出并置高來(lái)持續(xù)充電。
9. 通過(guò)Ti持續(xù)到T3。
應(yīng)該選擇電阻使T1
充電時(shí)間可被確定如下:當(dāng)充電暫停時(shí),在I/O的電壓(式1)是VC為電容電壓(式2)。式3通過(guò)使VI/O與開(kāi)關(guān)門(mén)限電壓VTH相等解答了充電的時(shí)間。這里,VTH是I/O的開(kāi)關(guān)門(mén)限電壓。
隨著Ri增加,Ti最初增加。但隨后它達(dá)到最大值并開(kāi)始減少。這就給Ri,并因此給可以連接到電路中的按鍵數(shù)量強(qiáng)加了一個(gè)上限。
Ti可能會(huì)在Ti,min和Ti,max之間變化,由于在VTH上電阻的容差和變化。所以,應(yīng)該選擇數(shù)值使Ti,max
這個(gè)設(shè)計(jì)用三種方式節(jié)省功率。首先,每次電容被充電到V并被放電,CV2能量都被消散。在本設(shè)計(jì)中,只要I/O變高且電容被充電到大約VTH(少于2V),而不是VDD,則充電停止。其次,當(dāng)每個(gè)按鍵被按下電容只充電(和放電)一次。最后一條,在確定哪個(gè)按鍵被按下后,微型控制器進(jìn)入休眠模式并保持休眠,直到按鍵被釋放且I/O變回到高。所以既使當(dāng)某些按鍵陷入或卡住時(shí),功率消耗是最小的。
DIY機(jī)械鍵盤(pán)相關(guān)社區(qū):機(jī)械鍵盤(pán)DIY
評(píng)論