Tester klávesnice ANK-1

(membránová klávesnice pro systém SAPI)



Klávesnice ANK-1 mě fascinovala od té doby, co jsem viděl její stavební návod v modrém konstrukčním amáru ARB 2/1983. Na zadní straně obálky byl totiž otištěn hmatník této klávesnice ve skutečné velikosti, který bylo možné si vystřihnout a použít. ANK-1 se tak pro mě stala klávesnicí, kterou bylo možné si vystřihnout z časopisu a používat:-)

ANK-1 je první z klávesnic, které se používaly s počítačovým systémem SAPI-1 a později byla nahrazena "opravdovými" klávesnicemi Consul s opravdovými tlačítky. ANK-1 je totiž klasickou klávesnicí membránovou, kdy jednotlivá tlačítka jsou pouze natištěna na hladké membráně, stejně jako to měly svého času počítače Sinclair ZX80, ZX81 nebo Atari 400. Také se těmto klávesnicím říká fóliové, protože tlačítka jsou pouze natištěna na hladké folii. Jak jsem však uvedl, tak u ANK-1 se muselo vystačit s papírem, potažmo 4. stranou obálky časopisu Amatérské Radio pro konstruktéry:-) Za komunismu byla asi i folie nedostupná:-) Jinak pozdější Sinclairy od ZX Spectra až po QL a další osmibity používaly také membránové klávesnice a stejně tak jsou membránové i současné PC klávesnice, ale v těchto případech je použita speciální membrána, nad kterou jsou umístěna více (PC), či méně (ZX Spectrum) zdařilá tlačítka, jež membránu spínají.


klávesnice ANK-1
Klávesnice ANK-1
klávesnice ANK-1
Klávesnice ANK-1

Nicméně vraťme se k ANK-1. Poprvé jsem ji spatřil (tedy její tovární verzi) na školním výletě na Zahradě Čech v Litoměřicích. Ve skleněné kukani nad ní seděli dva kravaťáci, živě nad něčím diskutovali a občas do ní něco ťukli. Výsledek svého snažení odečítali na černobílém televizoru Tesla. Na skle kukaně pak byly zvenčí přimáčknuté čumáky zvědavců, kteří kravaťákům vesměs záviděli, že mohou pracovat s opravdovým počítačem. Na rozdíl od ostatních čumilů já věděl, že to, co leží na stole není miniaturní počítač (obdoba tehdy populárního ZX81), ale pouhopouhá hloupá klávesnice. Počítač byla ta skříň stojící hned vedle stolu...

Počátkem 90. let jsem ANK-1 konečně mohl i uchopit. Koupil jsem ji v nějakém výprodeji za tehdejších 20,-Kčs. Byla fungl nová, zabalená a asi z nějaké poslední série, protože byla béžová. Na rozdíl od běžně vídaných modrých. Klávesnici jsem měl spoustu let uloženou a nic s ní nepodnikal. Když jsem si pak začal hrát s jednočipy, měl jsem cukání ji připojit k jednočipu, ale nějak jsem nenašel ten správný důvod proč to udělat.

Pak jsem usoudil, že se těmhle starejm krámům už nikdy nebudu věnovat a svou ANK-1 jsem střelil na Aukru za více než stonásobek pořizovací ceny. Rok na to, jsem založil Nostalcomp a těm starejm krámům jsem se začal věnovat jako nikdy předtím:-) Občas se mi po mé fungl nové ANK-1 zastesklo, ale ne moc. Stavět SAPI jsem neměl v úmyslu (věnoval jsem se školním jednodeskáčům) a i kdyby, tak by nebyl problém si ji postavit podle toho modrého amára.

Uplynula další léta a jednoho dne jsem po návratu z pracovní cesty našel na stole v kanclu ANK-1. Nebyla to sice úplně funglovka, nebyla béžová, ale vypadala zachovale. Nejprve jsem zaúpěl. Jednoho krámu se zbavím a druhej se mi vrátí. Navíc jsem věděl od koho je a jelikož to byl dárek, tak jsem musel ihned zavrhnout myšlenky, že bych se na tom opět nějak obohatil. Tuhle ANK-1 už si musím nechat. Tuhle nemůžu střelit:-)

Ovšem jak se ukázalo, načasování daru nemohlo být lepší. Zrovna v té době jsem totiž měl velké svrbění v prstech, že bych jako potřeboval si po velmi dlouhé a částečně vynucené pauze zase něco zbastlit. Něco jednoduchého. Trocha HW a trocha SW. A nejlépe něco na zelený louce. Nějak se mi totiž nechtělo se nořit do rozdělaných věcí (a že jich je!). A tak jsem oživil dávnou myšlenku připojení ANK-1 k jednočipu a postavil si tento jednoduchý tester.


Tester klávesnice ANK-1
Tester klávesnice ANK-1
Tester klávesnice ANK-1
Tester klávesnice ANK-1

Co se týká jednočipu, volba byla jasná: 8051. Tedy vývoj provést na 89S52 s ISP programováním a hotový SW pak nahrát do "obyčejného" 89C51 (dar přítele Sillicóna). A jak jsem si usmyslel, tak jsem provedl. Chtěl jsem to mít opravdu co nejjednodušší, takže jsem zavrhl použití vlastního displeje (LCD 16x2) s tím, že všechny hlášky budu vypisovat na sériový terminál. Pak už to bylo jednoduché. Klávesnici stačilo připojit na volné porty jednočipu (ještě zbyly) a začít programovat.

Původně jsem chtěl veškerou indikaci provozních stavů svěřit jen LED diodám SHIFT a ERR přímo na klávesnici, ale pak jsem usoudil, že by bylo dobré mít ekvivalenty těchto idikátorů i na desce testeru. Co kdyby ty na zrovna ANK nefungovaly. Pípák jsem na tester nedával. Ten v ANK stačí:-)

Tester lze provozovat jak v online režimu s připojeným terminálem, tak offline bez terminálu. Bez terminálu nepoznáme, co jsme zmáčkli, ale díky indikaci pomocí pípáku a LED alespoň víme, že jsme něco zmáčkli. Jak se dočtete na závěr tohoto článku, nemusí se jednat o prokazatelný test správnosti. Mě totiž zpočátku při stisku klávesy A docházelo k dřívějšímu stisku Q díky zprohýbané a odchlíplé membráně. V offline režimu bych tuto závadu neodhalil.

Obslužný program toho moc nedělá. V podstatě jen testuje stav matice 8x5=40 kláves a tří pomocných tlačítek (INT, T a RES). V případě zaznamenaného stisku krátce pípne a blikne SHIFT LED. Zároveň je název klávesy či tlačítka odeslán na sériový terminál. Pochopitelně je prováděna filtrace zákmitů (debouncing). U tlačítek INT a T to není nutné, protože jsou z principu díky RS klopným obvodům bezzákmitová, ale ošetřuji všechny spínací prvky. Ničemu to nevadí. Po zaznamenaném stisku je nutné klávesnici zcela uvolnit (nic nemačkat), než se může stisknout něco dalšího. Program si sice vytváří a vypisuje vlastní jednobajtový kód klávesy, ale tento kód nekoresponduje s kódem, který si tvoří SAPI. Prostě jsem si navrh vlastní systém dekódování matice a tlačítek. Program zaznamená vždy první platný stisk a neumožňuje tedy testovat kombinace více kláves (SHIFT + něco), ale pro účely testování to vůbec nevadí. Jo, a pokud by se chtěl někdo šťourat ve zdrojáku, tak já fakt vím o instrukci CJNE. Jenže pro test ekvivalence dvou čísel prostě raději používám staromódní XOR. Zvyk je železná košile:-)


Tester klávesnice ANK-1
Tester klávesnice ANK-1
Tester klávesnice ANK-1
Tester klávesnice ANK-1

Zapojení testeru, obslužný program i zapojení samotné ANK-1 naleznete v přiloženém ZIPu. V podstatě se jedná jen o jednočip s klasicky připojeným krystalem, jehož kmitočet je kvůli nastavení přenosové rychlosti sériáku klasických 11.0592MHz. Dále jsou připojeny pullup odpory 10k na port P0 (má otevřený kolektor) a jeden pullup 10k na portu tlačítka RES. Pro sichr, páč interní pullupy jednočipu jsou dost velké (cca 50k). Pak už jsou jen osazeny konektory pro UART převodník, ISP programátor a dvojice konektorů FRB30 pro připojení ANK. A nesmím zapomenout na resetovací obvod, který je zapojen tak, aby byl funkční jak s připojeným ISP programátorem, tak bez něj. Diody tvoří jednoduchý člen OR. Je vhodné použít schottkyho diody s malým úbytkem napětí, ale v jiných zapojeních používám klasické Si diody 1N4148 a chodí to taky. Celý tester je klasicky postaven na kousku vrtané univerzální desky plošných spojů (body). Já na desku přidal ještě stabilizátor 7805 v základním zapojení, abych mohl k napájení používat nestabilizovaný adaptér. Budete-li používat stabilizovaný zdroj +5V, stabilizátor není nutný. Stejně tak není nutný ISP konektor, pokud se nehodláte v programu dále šťourat. Jako převodník pro sériový port používám levný TTL UART/USB převodník připojený přímo na RX a TX piny 8051. Komunikace je nastavena klasicky na 9600N1 bez řízení toku.


    Tester ANK-1



Největší hrůzu mi zpočátku naháněla nutnost stavby propojovacích kabelů. Nakonec se ukázalo, že nebudou třeba. Rozteč konektorů FRB na ANK-1 odpovídá rozteči 2,54 mm na univerzále. Konektory jsem tak mohl osadit napevno a celý tester strkat do klávesnice přímo:-) Na druhém konci jsem namontoval nožku, aby se deska nemohla sklápět dolů pod tíhou připojených konektorů (ISP, USB, napájení).


Tester klávesnice ANK-1
Schéma testeru
Tester klávesnice ANK-1
Tester v chodu

Vyčerpávající popis klávesnice ANK-1 naleznete jednak v již zmíněném ARB 2/1983, ale také na Petrově SAPI webu. Zde je naskenovaná dokumentace továrního provedení klávesnice. Oproti prototypovému provedení v ARB 2/1983 je odlišnost zapojení pouze v označení konektorů FRB. Konektor K2 ve schématu v ARB je u továrního výrobku označen jako X1 a konektor K3 jako X2. Vlastní zapojení klávesnice i pinů konektorů je u prototypu a továrního provedení identické.

Způsob činnosti testeru a průběh testování je vidět na následujících screenshotech z Hyperterminálu:


Test klávesnice ANK-1
Úvodní hláška testeru
Test klávesnice ANK-1
Testování tlačítek

Test klávesnice ANK-1
Testování kláves
Test klávesnice ANK-1
Testování kláves

Na následujících screenshotech jsou dva chybové stavy, které mohou nastat. První je, že po (re)startu testeru není klávesnice zcela uvolněna. Některé z tlačítek či kláves v matici bylo vyhodnoceno jako stisknuté. Tester napoví, zda se jedná o některé ze tří pomocných tlačítek, nebo o klávesu v matici. Už ale nenapoví o kterou konkrétně. To se mi nechtělo prgat:-) Znamená to, že jste při zapnutí byli moc nedočkaví a na něco šmátráte. Může se pochopitelně jednat i o vadu ANK-1.

Druhý chybový stav je načtení stisku, jehož kód neodpovídá žádnému kódu v interní tabulce testeru. Tato chyba by se normálně neměla vůbec vyskytnout a značí hardwarovou poruchu ANK-1. Já ji musel pro vytvoření screenshotu uměle vyvolat tak, že jsem jeden platný kód klávesy z tabulky vyjmul a posléze jsem stlačením této "neznámé" klávesy chybu vyvolal. V předkládané verzi software už je ale opět vše v pořádku a jsou tam kódy všech kláves:-)

Test klávesnice ANK-1
Chyba: není uvolněno
Test klávesnice ANK-1
Chyba: neplatná kombinace

A jak vlastně dopadlo testování té mojí ANK-1? Dobře. Tester opravdu odhalil závadu, kterou jsem díky němu mohl odstranit. Šlo o to, že při stisku písmena A, tester dostal kód písmene Q a při stisku S se na terminálu objevilo W. Na vině byla odchlíplá a nějak divně zprohýbaná memrána, kterou stačilo zafixovat kousky tenké oboustanně lepící pásky a klávesnice už zase maká jak za mlada:-) Mimochodem, v offline režimu bez připojeného terminálu bych tuto závadu neodhalil, protože stisk byl zaznamenám vždy. Teprve terminál vypsal, že byla ve skutečnosti zkratována jiná klávesa v matici, než jsem mačkal...

Popisovaný tester nemusí sloužit jen pro testování originálních ANK-1, ale může posloužit pro testování jejich "replik" postavených podle výše zmiňovaného návodu v amáru B 2/83, či podle originální dokumentace na SAPI webu. A nebo také kompatibilních náhrad ANK-1 postavených úplně jinak, jako například tato tlačítková verze ANK-1AT od Vládi.


Update

Článek o testeru ANK-1 nevisel ani den a už si vyžádal update. Pochopitelně za to může provokatér Sillicon. Že prý jak je možné, že mi zbylo tolik volných portů a já na ně nedal žádné LED? Vždyť světýlka já rád:-)) Má pravdu chlapec. Ale tohle opravdu vznikalo narychlo. Potřeboval jsem prostě ukojit bastlící absťák a tak jsem to trochu odfláknul a světýlek dal prostě málo. A to jsem klidně mohl využít ještě port P3.0 (RX), protože tester po sériáku pouze vysílá a nic nepřijímá.

Dalším dloubnutím bylo, že prý ty moje konektory nejou FRB, ale SUR. Já to ale vím. Vím jakej je rozdíl mezi SUR a FRB, ale je mi to fuk. Je to zelený, má to zlatý kontakty ve dvou řadách. Je to pro mě prostě FRB a hotovo:-) Á propos. V textu jsem nezmínil, že ty konektory je potřeba k desce plošného spoje ještě přilepit, ať se tolik nenamáhají kontakty.

A aby ten update opravdu k něčemu byl. Přidávám ještě zapojení toho stabilíku 7805 a označení těch konektorů na zadní straně ANK-1. Klávesnice je pochopitelně napájena z testeru.


Napájení testeru ANK-1
Napájení testeru a vlasní ANK-1



RET



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