Blog:Keyface

Z PMD 85 Infoserver

Obsah

Keyface - interfejs pre pripojenie PS/2 klávesnice k PMD 85

Klávesnica na PMD 85, respektíve jej kvalita, bola často terčom kritiky.

Prototypové PMD 85 a PMD 85-1 mali klávesnicu vyskladanú z telefónnych tlačidiel, ktoré boli zvyčajne spoľahlivé pri zopínaní, ale na stláčanie však boli pomerne "tuhé". S obľubou sa žartovalo, či zvuk pri stlačení klávesy je cvaknutie klávesy alebo to bolo prasknutie kosti...

Keď prešla výroba PMD 85 z Piešťan do Bratislavy a začalo sa s modelmi PMD 85-2, 2A a 3, telefónne tlačidlá boli nahradené tlačidlami na báze vodivého elastoméru (vodivá guma). Tieto tlačidlá mali ľahký chod, stávalo sa však, že časom gumené telieska vypadli z držiakov hmatníka a buď prestali zopínať úplne alebo boli stále zopnuté. Keďže sú telieska tlačidiel zatavené do plošného spoja, oprava je problematická. Moja osobná skúsenosť z vtedajšej doby je ale veľmi dobrá a podobný problém som vtedy nezaznamenal. Až v súčasnej dobe, kedy majú PMD 85 viac než 25 rokov, je s tlačidlami problém.

Človek je dnes "zhýčkaný" PC klávesnicami a tak podľa vzoru iných 8-bitov aj k PMD 85 vznikol Keyface, aby sa "nahradila" v súčasnosti už pomerne nespoľahlivá pôvodná klávesnica. Keyface je ale navrhnutý tak, aby bola funkcia pôvodnej klávesnice neporušená.

Zapojenie

Schéma Keyface-u
Schéma Keyface-u

Zapojenie je pomerne jednoduché a jeho srdcom je mikrokontrolér ATMEL ATtiny2313-20. Mikrokontrolér je taktovaný kryštálom 20 MHz (X1, C2, C3) a R1, D1 a C4 tvoria jednoduchý resetovací obvod. 8 oddeľovacích diód (D2-D9) zabraňuje vzájomnému ovplyvňovaniu pôvodnej klávesnice a Keyfaceu. Odporová sieť RN1 slúži ako pull-up, pre zabezpečenie kľudovej log. 1 na vstupoch portu PB 8255. Na konektor pre PS/2 klávesnicu sú pripojené dva pull-up odpory R2 a R3. Obvod 74LS32 slúži ako adresový dekodér portu 0F4h (port PA systémového PIO 8255) a zostupná hrana na jeho výstupe zapíše do mikrokontroléru práve adresovaný stĺpec klávesnice. Port PB mikrokontroléra je výstupný a predstavuje riadky klávesnicovej matice a linky samostatných kláves Shift, Stop a Reset. Port PD mikrokontroléra jednak slúži ako vstup pre adresovaný stĺpec klávesnicovej matice (PD0, PD1, PD4, PD5 a zápisový impulz na PD3) a zároveň je naň pripojená PS/2 klávesnica (PD2 a PD6).

Ako to funguje

V pamäti mikrokontroléra je vytvorená virtuálna matica kláves. Pri stlačení klávesy na PS/2 klávesnici sa v matici kláves nastaví príslušný bit. Pri jej uvoľnení sa daný bit vynuluje. Ako bolo spomenuté vyššie, ak sa na port 0F4h (port PA systémového PIO 8255) zapíše nejaká hodnota, čo je číslo adresovaného stĺpca, mikrokontrolér na túto udalosť zareaguje a podľa daného stĺpca vyšle na svoj port PB hodnotu z matice kláves pre daný stĺpec.

Mapovanie kláves PMD 85 na PS/2 klávesnici

Mapovanie je rovnaké ako v Emulátore s nasledujúcimi rozdielmi (obrázok možno niekedy pridám):

  • Ecs nemá žiadnu funkciu (v emulátore je namapovaná na klávesu STOP)
  • Scroll Lock zamieňa medzi sebou klávesy Z a Y - funkcia je indikovaná LEDkou Scroll Lock
  • Caps Lock zapína funkciu Caps Lock na PMD 85-3 - funkcia je indikovaná LEDkou Caps Lock - klávesa je mapovaná na 12. stĺpec a 4. riadok matice
  • ľavý ALT+ľavý CTRL+DEL - prevedie RESET počítača
  • ľavý CTRL+ľavý SHIFT+ESC - prevedie RESET PS/2 klávesnice

Použitá PS/2 klávesnica MUSÍ podporovať Scan Code Set 3, čo by v súčasnosti vyrábané klávesnice mali spĺňať. PS/2 klávesnice zvyčajne poznajú 3 množiny kódov kláves. Prvá množina je kompatibilná so starými XT klávesnicami. Druhá je základná a najčastejšie používaná množina, označovaná aj ako AT. Tretia množina je označovaná ako PS/2. Tretia množina sa vyznačuje tým, že na rozdiel od druhej množiny, sú všetky kódy jednobytové, čím sa zjednodušuje samotné spracovávanie kódov klávesnice. To bol aj dôvod, prečo bola uprednostnená tretia množina pred druhou.

Realizácia

Keyface je postavený iba na univerzálnej doske a tá je poprepájaná priamo na piny systémového PIO 8255. Signál RESET a napájanie sú pripojené na klávesnicový konektor. PS/2 konektor je umiestnený na ľavý bok počítača, vľavo od napájacieho konektora.

Celkový pohľad
Celkový pohľad
Interfejs klávesnice - obvod 8255
Interfejs klávesnice - obvod 8255
Samotný Keyface
Samotný Keyface
PS/2 konektor spredu
PS/2 konektor spredu
PS/2 konektor zhora
PS/2 konektor zhora

Zdrojové kódy

Program pre mikrokontrolér ATMEL ATtiny2313 bol napísaný v assembléri vo vývojovom prostriedku AVR Studio 4. Stiahnuť si môžete celý projekt.