TTL computing

Enkodér hexadecimální klávesnice

třeba pro jednoduchý cvičný počítač



Jeden oldcompák, zajímající se o TTL obvody, mi poslal zapojení enkodéru klávesnice se 16 tlačítky. Zapojení mi bylo povědomé a tak jsem se pustil do pátrání. Vyšlo v čeveném amáru 7/1978. Jak ten čas letí... Nicméně zapojení je opravdu zajímavé a dá se říci i vtipné a nezaslouží si upadnout v zapomění. Šibalsky je zde využit přechod báze-emitor standardního bipolárního NPN tranzistoru. S minimem součástek tak vznikl obvod, který převádí stisk jednoho ze 16 tlačítek na 4-bitový binární kód a navíc máme k dispozici pátý bit, indikující stisk tlačítka. Pokud vám to něco připomíná, tak asi obvod MH1KK1, který vyráběla naše Tesla a který dělá to samé. Nicméně takhle z diskrétních součástek je to hezčí:-)

Původní zapojení využívá vlastností klasických bipolárních TTL vstupů, tedy hlavně toho, že na nich je jakási "slabá" log.1 a jsou schopny dodat i jistý proud (typ. 1,6 mA pro klasickou řadu TTL). Ovšem s modernějšími unipolárními CMOS a CMOS TTL obvody (HC, HCT apod.) by původní zapojení nefungovalo. Je nutné doplnit pullup odpory (ty se ale hodí i při klasických TTL obvodech). Dovolil jsem si doplnit ještě pulldown odpory do bází tranzistorů, ale ty nejsou vyloženě nutné. Až k té čárkované čáře se jedná o původní zapojení pro 16 tlačítek. Pod ní navazuje rozšíření, viz. další text.


TTL enkodér hexadecimální klávesnice
Zapojení TTL enkodéru pro 28 tlačítek + SHIFT


Pokud bychom tímto způsobem chtěli řešit klávesničku nějakého cvičného jednodeskáče, je 16 tlačítek málo. Tedy ne, že by s tím počítač ovládat nešel, viz. např. COSMAC VIP, ale je to krajně nepohodlné. Pak se nabízí několik možností. Nejjednodušší je přidat tlačítko SHIFT. Tím máme rázem k dispozici 32 různých kódů a stále nám do 8 bitů zbývají 2 bity.

Já bych to řešil tak, že kromě SHIFTU bych zopakoval ještě ty tři poslední řady kláves (ty s tranzistory) a získal bych tak dalších 12 kláves pro různé řídící účely. Ve spolupráci s tím SHIFTEM tak máme k dispozici 56 různých klávesových kódů a to je myslím na cvičný jednodeskáč ažaž. Využito bude všech 8 bitů (bavíme se hlavně o osmibitech:-))

Přidané klávesy jsou pod čárkovanou čarou. Nad ní je původní zapojení doplněné o odpory (modře). Čtení stavu klávesnice, jež by byla připojena na datovou sběrnici CPU, by v praxi probíhalo přes třístavový oddělovač typu 74244, 245, 3212 apod. Při připojení na nějaký port typu 8255 by již další třístavový oddělovač nebyl nutný. Pokud se nepoužijí všechny bity, je pochopitelně nutné ty nevyužité uzemnit

Jelikož je funkce naprosto zřejmá ze schématu, pochopitelně jsem to neověřoval. Ale pak mi to nedalo (nerad publikuju něco, co jsem si nepostavil) a vyzkoušel jsem alespoň jednu řadu s tranzistorem. V klidu obě LED svítí, po stisku tlačítka zhasnou. Funguje to s bipolar TTL i CMOS:-)


TTL enkodér hexadecimální klávesnice
Ověřovací zapojení fragmentu TTL enkodéru


Většina lidí si teď asi ťuká na čelo. Vždyť klávesnice se přece dnes řeší maticí obsluhovanou softwarově. To je sice pravda, ale co když vás baví spíše hardware? A co když uvažujete o stavbě jednoduchého počítače komplet sestaveného z diskrétních obvodů (včetně procesoru)? Takový počítač nebude mít výkonu nazbyt a tak se mu jakákoliv HW podpora hodí.

Tento jednoduchý enkodér pochopitelně neošetřuje zákmity kontaktů spínačů (tzv. debouncing), to se už opravdu musí řešit softwarově opakovaným čtením. Ale i tak je obsluha takovéto klávesnice výrazně snadnější a rychlejší. Toto vtipné zapojení enkodéru je navíc i jednodušší, než třeba enkodér klávesnice mikropočítače BOB-85 (KP AR 1984), který vyžaduje přepínací tlačítka.

Už před lety jsem navrhl a prakticky vyzkoušel i TTL enkodér pro 64 kláves (rozšiřitelný i na 128, počet není dogma), který provádí debouncing. Jednalo se o obdobu klávesnicové části kontroléru Intel 8279 a fungovalo mi to parádně. Možná se někdy dostanu k jeho publikování (když najdu a znovu pochopím to zapojení:-))


Publikováno: 7/2020    



« RET          ↑ TOP ↑          HOME


Odladěno na MS IE 8.0 a Firefoxu při rozlišení min. 1024 x 768 pixelů
www.NOSTALCOMP.cz    2010  -  2020