Inter
Face je modul, cez ktorý som pripojil klávesnicu Consul 262.5 k NCB385.
Face je modul, cez ktorý som pripojil klávesnicu Consul 262.5 k NCB385.
Keď
sa
mi podarilo získať
klávesnicu Consul
262.5, vedel som, že to bude tá pravá klávesnica k NBC385 a
nahradí doterajšiu PC klávesnicu. Lenže nemal som k nej ani list
dokumentácie. S dokumentáciou mi výrazne pomohol EC1045,
ktorému ďakujem za skeny manuálov, schém aj za cenné rady.
Výhodou
tejto
klávesnice
je, že
používa sériový výstup dát v kóde ASCII. Takže sa bude dať
pripojiť
priamo k obvodu
8251, bez nutnosti programovania
zvláštneho
drivera pre CP/M.
Consul262.5 komunikuje v
úrovniach
TTL a
používa
signály
:
-
DATA IN : vstup dát, umožňuje ovládanie stavových LED klávesnice
-
DATA OUT : výstup dát stlačenej klávesy v kóde ASCII
-
CLK IN : vstup hodín, určujúci prenosovú rýchlosť (16 x
Baudrate)
Parametre
prenosu sú pevne nastavené
1
x štart bit
8
x data bit
2
x stop bit
Táto klávesnica sa osádzala kontrolérom MH103 alebo MH113. MH103 dáva na výstupe 9-bitový kód klávesy určený jej zapojením k MH103. Tento sa
dodatočne prekóduje na 8-bitový ASCII dvojicou PROM typu MH74S571, kde každá z nich dekóduje 4 bity. MH113
obsahuje internú ROM naprogramovanú maskou, takže PROM nie sú potrebné. Výsledný
ASCII kód klávesy potom putuje do obvodu
UART,
ktorý ho vyšle v sériovej podobe.
Ako
UART je použitý obvod MHB1012 čo je TESLA ekvivalent obvodu AY-5-1012.
Pre zaujímavosť uvediem, že na vývoji tohoto obvodu sa
podieľal aj ing.Ján
Langoš
(zakladateľ
Ústavu pamäti národa) bližšie tu.
MHB1012 potrebuje okrem +5V aj -12V, čo ale nie je problém
lebo v NCB385 je zdroj, ktorý všetky potrebné napätia poskytuje.
V klávesnici som odskúšal aj obvod AY-3-1015 a IM6402, čo sú
novšie verzie, ktoré už nepotrebujú -12V. Fungovali tiež ale
medzi TESLA obvodmi mi títo kapitalisti nejako nesedeli.
Takže
som pripojil DATA OUT na RxD 8251, CLK som vytiahol z generátora hodín pre
8251 na
doske NCB85. Zapol som NCB385, začal ťukať a….zrada! Klávesnica
posielala samé nezmysly. Takže nasledovala
kontrola zapojenia a frekvencie CLK signálu.
Všetko v poriadku. Tak som pripojil klávesnicu do sériového portu PC a po analýze v
programe RealTerm sa ukázalo, že klávesnica posiela dáta v
invertovanom tvare napr.
kód klávesy "medzera" bol 0xDF a nie 0x20. Súviselo to s faktom, že klávesnice Consul boli určené pre počítače
radu SMEP. Tieto z dôvodu vtedajšieho obvodového riešenia
používali invertované dáta.
Našťastie
plošný spoj klávesnice bol navrhnutý tak univerzálne, že úprava nebola až
tak zložitá.
Moja
verzia klávesnice používa MH113, takže do voľných pozícií na
doske, určených pôvodne pre PROM-ky som osadil pätice pre moduly,
ktoré budú
spätne
invertovať dáta generované MH113. Na doske sú aj
dve pozície pre osadenie MHB1012 podľa toho, či je použitý
MH103 alebo MH113. Takže som vyspájkoval MHB1012, osadil pätice
pre obe pozície a
MHB1012
som umiestnil do pozície pre verziu s MH103.
Klávesnica osadená päticami |
Osadené invert_moduly a MHB1012 v pozícií pre spoluprácu s MH103
|
Teraz už klávesnica posielala štandardný ASCII kód… teda okrem numerickej klávesnice, ktorej klávesy majú kód zvýšený o offset 0xC0. Čiže napr. Enter dáva kód 0xCD namiesto 0x0D. Toto som vyriešil pridaním jednoduchého dekodéra z hradiel NAND do invert_modulu_6, ktorý dekóduje horné 4 bity bytu z MH103.
Invert_moduly sú označené číslami 5 a 6 tak ako PROM-ky v originálnej schéme
Plošné spoje sú vyrobené frézovaním.
No
a teraz samotný modul CIF, ktorý je asi jednoduchší ako
samotná úprava
klávesnice.
Je to de facto len zlučovač signálu DATA OUT z Consul262.5 a TxD z Geoff terminálu
metódou wire-OR, ktorú umožňujú použité budiče 7407. Výstup som následne pripojil do vstupu RxD 8251.
metódou wire-OR, ktorú umožňujú použité budiče 7407. Výstup som následne pripojil do vstupu RxD 8251.
Detail modulu CIF
Celkový pohľad na umiestnenie v NCB385
Dokumentácia k celému projektu tu a manuál ku klávesnici C262.5 aj tu
Teraz vznikla situácia podobná tej, keď do PC s PS/2 klávesnicou zapojíme ešte aj USB klávesnicu. NCB385 môže zároveň používať pripojenú
PC klávesnicu z Geoffa a aj Consul klávesnicu naraz. Samozrejme nemožno písať na oboch súčasne.
Odporúčam si preštudovať článok "Bezkontaktní klávesnice" v červenom amatérskom rádiu 4/1989, kde je podrobnejší popis funkcie obvodu MH103.
Bolo by aj možné namiesto invert_modulov naprogramovať PROM-ky a doplniť napr. kódy kláves "šípky" tak, aby rovno fungovali s textovým editorom WordStar atď. ale nemám zatiaľ programátor na MH74S571 a v tomto stave to chodí uspokojivo.
Odporúčam si preštudovať článok "Bezkontaktní klávesnice" v červenom amatérskom rádiu 4/1989, kde je podrobnejší popis funkcie obvodu MH103.
Bolo by aj možné namiesto invert_modulov naprogramovať PROM-ky a doplniť napr. kódy kláves "šípky" tak, aby rovno fungovali s textovým editorom WordStar atď. ale nemám zatiaľ programátor na MH74S571 a v tomto stave to chodí uspokojivo.
Zdravím, pekný projekt. Ako by ste postupovali pri konverzii klávesnice na USB?
ReplyDeletePokiaľ by ste použili v klávesnici invert_moduly, stačí priviesť na CLK_IN klávesnice TTL signál o f = 16 x požadovaný Baudrate a na DATA_OUT nejaký hotový prevodník zo sériového TTL signálu na USB. Ak nechcete zasahovať do klávesnice, potom niečo ako Arduino s programom na generovanie signálu CLK a negovanie dát z klávesnice.
ReplyDeleteĎakujem veľmi pekne za info, pomohlo.
DeleteTak to som rád :)
DeleteDíky moc za inspiraci a hlavně za odkaz na IM6402. Co jsem se ho nahledal...
ReplyDelete