mikropočítač TOP SECRET 31



TOP SECRET 31 je další procesorovou deskou, kterou jsem získal na hraní. O tom, proč se jmenuje zrovna TOP SECRET je pojednáno u popisu desky TOP SECRET 85, takže je zbytečné to teď opakovat. Vrhnu se raději rovnou na popis TOP SECRET 31.


TOP SECRET 31

TOP SECRET 31 je, stejně jako dříve popsaná TOP SECRET 85, velice pěkně a čistě zpracovaná karta velikosti 180x100 mm, která kdysi tvořila nějaký řídící systém. Karta je osazena jednočipovým mikropočítačem Intel 8031, což je vlastně stará známá 8051, ale bez vnitřní paměti programu. Procesor je taktován krystalem 11.059 MHz. K 8031 je vždy nutné připojit vnější paměť programu a na této kartě je to vyřešeno EPROM 2764 (8 KB). Kromě externí programové paměti je na kartě také externí paměť dat v podobě čipu 6264 (také 8 KB). Díky vyvedené sběrnici a osazenému dekodéru adres je možné připojit externě i další paměti.

Procesor má pod dozorem supervizor MAX 690, který se stará o RESET. Maxík osahuje také hlídacího psa, ale watchdog lze konfigurační propojkou na desce deaktivovat.

Velmi zajímavým obvodem na desce je řadič displeje a klávesnice 8279. Jedná se o programovatelný obvod Intel, který umí autonomní obsluhu maticové klávesnice (až 64 kláves) a sedmisegmentového displeje (max 16 znaků). Obvod se zcela autonomně stará o skenování matice kláves, potlačení zákmitů, dokáže také pracovat s klávesami SHIFT a CONTROL. V případě displeje zase zcela autonomně řídí multiplex a obsahuje vlastní "videoram", do které lze zapisovat i z ní číst. Opravdu velmi zajímavý obvod to je. Na kartě jsou osazeny také veškeré výkonové budiče pro displej, takže na konektor se připojuje opravdu jen matice kláves a LED sedmisegmentovky. Nic víc...

Na desce je dále osazeno sériové rozhraní RS-422 (proto ten krystal 11,059 MHz) s možností volit baudrate pomocí otočného přepínače. S tím souvisí napájení desky, které je 24V a pro logické obvody je na desce stabilizátor +5V. Všechny potřebné sinály (porty 8031 a 8279) jsou vyvedeny na konektory PSL 26 a 50 pinů, sériové rozhraní je vyvedeno na Canon 9.

mikropočítač TOP SECRET 31
procesorová deska s CPU 8031
mikropočítač TOP SECRET 31
procesorová deska s CPU 8031


Co s ní?

S deskou jsem toho zatím moc nepodnikl. Pouze jsem vytvořil malý prográmek, který otestuje RAM a rozbliká porty P3.4 a P3.5, které jsou v systému jediné nepoužité a zapsal ho to té EPROM 2764. Funguje to. Díky tomu jsem získal jednoduchý tester procesorů 8031/32/51/52 a pamětí RAM 6264. Obojího mám několik kusů neznámého původu a tedy bez ověřené funkce. Teď je mohu alespoň takto jednoduše otestovat.

Také bych si rád postavil obousměrný převodník RS-422 na RS-232, abych mohl vyzkoušet komunikaci s PC.

V další etapě bych se rád podíval na ten řadič 8279. Moc mě zajímá. Ale s tím souvisí výroba nějakého terminálku (klávesnice a displeje) a to zatím není na pořadu dne...


*** Aktualizace ***

Tak to testování procesorů x51/52 a RAM 6264 jsem vzal vážně. Potíž byla v tom, že mám hafo RAMek v tzv. úzkém provedení (asi cache ze starých PC boardů). Zbastlil jsem si tedy jednoduchou redukci pro tyto paměti. Do redukce lze vložit 28-pinovou RAM 6264 - 62256. Volba se provede dvěma jumpery. Ačkoliv v TopSecret 31 mohu testovat jen po blocích 8 KB. Funguje to parádně. Provedení redukce na kousku univerzálky nepotřebuje komentáře:

redukce pro úzké RAM 62xx, 28 pin
redukce pro úzké RAM 62xx, 28 pin
redukce pro úzké RAM 62xx, 28 pin
redukce pro úzké RAM 62xx, 28 pin

Desku TopSecret 31 jsem ještě maličko upravil. Přidělal jsem můj oblíbený napájecí konektor, a protože porty P3.4 a P3.5 jsou zcela plonkové (nejsou vytaženy ani na žádný rozšiřující konektor), přidělal jsem na desku jednu LEDku připojenou na P3.5. Na dalších obrázcích je deska osazená testovaným 8751 (origoš Intel v keramice) a redukcí s úzkou RAM 62256 (32KB).

mikropočítač TOP SECRET 31
upravená deska TopSecret 31
mikropočítač TOP SECRET 31
upravená deska TopSecret 31


Nyní už snad bude následovat avizovaná stavba převodníku RS422/RS232. Na desce bych chtěl rozeběhnout skvělý monitor ULTRAMON51 a také Intel BASIC-52. Což si však vyžádá stavbu další redukce, protože požadavky na paměťový subsystém jsou u obou provedení diametrálně odlišné (Harvard/von Neumann)...


BASIC 52 manual                      ULTRAMON 51 manual


Super článek o BASIC 52 je zde: http://dos4ever.com/8031board/8031board.html. Je tam i verze pro 8051, jinak je vyžadován procesor 8052. Ovšem verzi pro x51, známé jako BASIC 31, se podrobně věnuje tato stránka: http://www.dsaprojects.110mb.com/electronics/8031-ah/8031-bas.html. A právě BASIC 31 bych rád vyzkoušel.


*** BASIC 31 ***

Tak se nám to trochu pohlo. Dokončil jsem obousměrný převodník RS 232 na RS 422 a vyzkoušel provoz interpretru Basicu na desce TOP SECRET 31. Převodník je postaven podle PE 2/2003, strana 38, obrázek 4. Jeho výhodou je galvanické oddělení obou linek optočleny. Sice deska TS31 už galvanicky oddělenou linku RS 422 má a mám to tedy oddělené 2x, ale to nevadí. Ten převodník se bude hodit i jinde. Stavěl jsem zas na univerzálce a chodilo to napoprvé (tedy po krátkém ujasnění si co, kde a kam povede RX/TX:-)). Jedinou změnou je nazapojený výstup DTR na straně RS 232, který blokoval příjem a který jsem neuměl v Hyperterminálu nastavit natvrdo. Z předešlé věty je zřejmé, že pro komunikaci jsem zatím zvolil to nejjednodušší - Hyperterminál z Windows. Funkci jsem ověřil krátkým prográmkem, který jen čekal na příjem znaku z Hyperterminálu a vrátil ho zpět uzavřený v závorkách. Převodník je napájený z desky TS31, napájení je již z výroby vyvedeno na konektor Canon 9 linky RS 422.

převodník RS232 <--> RS422
převodník RS232 <--> RS422
převodník RS232 <--> RS422
převodník RS232 <--> RS422 - schéma

Nyní už zbývalo jediné - nahrát do EPROM interpretr BASIC 31. Původně zamýšlený BASIC 52 by sice byl lepší, ale neměl jsem k dispozici žádnou volnou 8052. Stejně si chci jenom pohrát. Perspektivu v tom nevidím, to raději nějaký monitor (Ultramon 51). BASIC 31 jsem stáhl z výše citovaných webů a naprogramoval do EEPROM 2864. Pak už jen stačilo spustit Hyperterminál, nastavit připojení (v mém případě 9600 Bd, 8 bitů, 1 stopbit, bez parity, bez řízení toku), zapnout desku TS31 a dle manuálu Basicu "hitnout spejsbár", aby funkce autobaud zjistila a nastavila komunikační rychlost. Poté se již přihlásil prompt Basicu. Jenže to mělo háček: v přímém režimu sice bylo možné udílet příkazy, ale nebylo možné zapsat program. Při pokusu o vložení programového řádku interpretr vypsal chybu "Invalid line number". Ukázalo se, že není nastavována proměnná MTOP, která má obsahovat adresu konce paměti RAM. Po určitém bádání jsem na to přišel. RAM (6264 - 8KB) je v TS31 uvolňována signálem A15. Jenže to znamená, že se v prostoru spodních 32 KB RAM celkem 4x zrcadlila. Basic sice při počátečním testu RAM (vždy po resetu) určil hodnotu MTOP, ale při mazání paměti si ji přepsal nulou, když "leštil zrcadla":-) Stačilo nahradit signál A15 signálem A13 a vše bylo v pořádku. Ukázky z provozu BASIC 31 jsou na následujících obrázcích.

BASIC 31
BASIC 31 - prompt
BASIC 31
BASIC 31 - první program

Pro smysluplné využití Basicu na x51 je ale nutné postavit mikropočítač dle doporučených zapojení a osadit jej i EPROM/EEPROM, do které bude možné odladěný basicovský program(y) ukládat. To však také vyžaduje použití procesoru 8052 a verze BASIC-52, která umí tyto paměti přímo v zapojení programovat. Doporučená zapojení a postupy při programování EPROM/EEPROM jsou v manulálu k BASIC-52. BASIC-31 interpreter na jednočipu x51 je sice hezká a zábavná věc, ale perspektivu v tom nevidím. Nicméně jsem rád, že jsem měl možnost si pohrát:-)


*** BASIC 52 ***

Podařilo se mi v zásobách vyhrabat Atmela AT89S52, takže jsem mohl vyzkoušet i plnokrevný BASIC 52 (verze 1.1). Basic byl opět v externí EPROM 8 KB. Na první pohled žádný rozdíl, jen to má více možností. Ale problém se přeci jen vyskytl. Atmel nechtěl komunikovat přes sériák. Výstup TX procesoru totiž v desce TS31 budí tranzistor s odporovým děličem na vstupu. A ten Atmel ho prostě nedokázal vybudit. Musel jsem mu "pomoci" pullup odporem 10K. Jenže když jsem do desky vrátil původní 80C31, tak nekomunikoval zase on. Zkoušel jsem zvětšovat ten pullup a nakonec musel stejně pryč. Zajímavé...

Jako ukázku přikládám program pro blikání na portu P1 (00-FF-00-FF). Vlevo je listing programu, vpravo zastavený vykonávaný program. Program je psaný trochu neefektivně, ale je to schválně. Je to prostě úplně polopatické:-)

BASIC 52
Ovládání portu P1 v BASIC 52
BASIC 52
Ovládání portu P1 v BASIC 52

Pokud byste si to chtěli vyzkoušet také, není nic jednoduššího. Pro začátek stačí vzít procesor s 8KB interní paměti (třeba ten AT89S52), klasicky k němu připojit externí RAM (např. 6264) pomocí latche (74HCT573) a rozhraní RS232 (MAX232). Do procesoru nahrajte BASIC (nejlépe 52), připojte PC s Hyperterminálem a je to:-)) Musí to fungovat. Jen dejte pozor, ať se RAM v paměťovém prostoru nezrcadlí, tedy alespoň ať na sebe zrcadla nenavazují. U té 6264 to zařídíte právě pomocí signálu A13 na /CS. Lepší by ale bylo úplné dekódování pomocí 74HCT138. Pokud nebudete mít procesor řady 8052, lze použít i řadu 51 a použít BASIC 31 v externí EPROM 8 KB. BASIC vyžaduje Harvardskou architekturu, externí paměti ROM/RAM se tedy zapojují tak, jak je pro x51/52 obvyklé.

Pro plné využití BASICu je nutné zapojit počítač dle dokumentace v manuálu. Jedná se zejména o připojení pamětí EPROM/EEPROM, které si BASIC 52 dokáže přímo v zapojení sám programovat a kde uchováváte hotové programy.


*** ULTRAMON 51 ***

Na Ultramon 51 zatím nedošlo, a hned tak nedojde. Je totiž nejprve nutné vymyslet a postavit nějakou redukci do patic pro externí EPROM a RAM. Ultramon 51 totiž vyžaduje společný adresový prostor pro EPROM i RAM, aby bylo možné do RAM ukládat a spouštět z ní programy. Je tedy nutné procesor navržený pro Harvardskou architekturu znásilnit na architekturu von Neumann. Není to zas tak těžké. Prostě se tam dá klasický adresový dekodér generující signály /CS a zANDují se signály /PSEN a /RD, které se použijí pro čtení obou typů pamětí. Teď ještě čas...

******

Hotovo! Navrhnul jsem a postavil jednoduchou redukci do původních patic EPROM a RAM. Redukce překvapivě obsahuje tytéž patice pro EPROM (2764) a RAM (6264):-) Rozdíl je v tom, že jsou jinak zapojené jejich uvolňovací vstupy. Obě paměti jsou nyní ve společném paměťovém prostoru. Kvůli tomu se na desku nastěhoval i jednoduchý dekodér adres, tvořený jediným invertorem z hradla NAND obvodu 74HCT00, který invertuje signál A13. Původní A13 je zaveden do /CE EPROM, invertovaný A13 zase do /CE RAM. EPROM je tedy na adresách 0000h-01FFFh, následuje RAM na 2000h-3FFFh. Dále se paměti zrcadlí, což nevadí. Ideální by pochopitelně bylo úplné dekódování adres A13-A15 za použití dekodéru 74138, ale nechtěl jsem už do redukce přivádět z desky TS31 další dráty a využil jsem jen signálů, které byly na pichech původních patic. Tedy signál A13 tam původně taky nebyl. Byl tam A15, ale ten jsem vyměnil za A13 už při hrátkách s Basicem výše. Další dvě hradla tvoří dohromady hradlo AND pro sloučení signálů /PSEN a /RD. Výsledný signál je zaveden na /OE EPROM i RAM.

mikropočítač TOP SECRET 31 mikropočítač TOP SECRET 31
redukce, která z Top Secret 31 udělá počítač architektury von Neumann

mikropočítač TOP SECRET 31
procesorová deska TS 31 a redukce
mikropočítač TOP SECRET 31
deska TS 31 s nasazenou redukcí

Nyní stačilo připravit si EPROM s monitorem Ultramon 51, připojit desku k sériovému portu PC, spustit Hyperterminál (stejné nastavení jako u Basicu nahoře) a stisknout mezerník, aby funkce autobaud změřila komunikační rychlost. Pak se již přihlásil Ultramon. První, co je třeba udělat, je nastavení adresy počátku ShadowRAM, kam si monitor zálohuje 128 bajtů interní RAM jednočipu a 7 bajtů jako svůj zápisník. Hodnota 3E80h odpovídá konci RAM 8KB minus požadovaných 135 bajtů (3FFFh-7Fh=3E80h). Po zadání ShadowRAM se již přihlásí prompt Ultramon 51:

Ultramon 51
Ultramon 51 - prompt
Ultramon 51
první program a dump RAM

Ultramon 51
Přímý zápis assembleru v Hyperterminálu
mikropočítač TOP SECRET 31
zapojení redukce


*** BASIC & ULTRAMON 51 ***

Na desce redukce je dostatek místa, takže se nabízí možnost osadit ji EPROM 27128 (16 KB) a přepínat provoz s Basicem či Ultramonem. K přepínání by mohly sloužit buď diskrétní jumpery, nebo multiplexer (třeba 74157) ovládaný jediným jumperem či přepínačem. Každý "operační systém" by byl v jedné 8 KB "bance" EPROM. Přepínače (jumpery) by kromě volby banky (A13 na EPROM 27128) také zajistily přepnutí architektury Harvard/von Neumann. Uvidíme... Jinak základní zapojení takového "přepínacího" počítače je v tom PDF manuálu k monitoru Ultramon 51, který je výše ke stažení


******

Tak jsem se do toho nakonec pustil. Na destičku s redukcí jsem přidal obvod 74HCT157 (čtveřice dvoukanálových multiplexerů - přepínačů). Pomocí jediného jumperu lze nyní přepínat mezi provozem s "operačním systémem" Ultramon 51 nebo BASIC 31a. Oba systémy (každý potřebuje 8 KB) jsou v jediné Eprom 27128 (16KB) a jeden ze selektorů v obvodu 74157 přepíná banku změnou úrovně na A13 EPROM. Princip přepínání je patrný z následujícího schématu. Je to naprosto jasné a je to plně funkční. Stačí si jen přimyslet nějaký x51 (8031/32/51/52), address latch (74573) a RS232 převodník (MAX232) a takový počítač si může postavit každý.

Ultramon 51
Ultramon 51 & Basic 31 computer
mikropočítač TOP SECRET 31
zapojení přepínací redukce


******

Nakonec jsem musel ještě realizovat malou úpravu. Zkrátka šlo o to, že v původní podobě redukce jsem ztratil přístup k některým periferiím na desce. Zejména k mému oblíbenému obvodu 8279. Tedy přístup jsem neztratil, ale hrozily kolize dat. Takže jsem do redukce ještě potřeboval dostat signál A15. Neptejte se mě jak, ale dostal jsem ho tam, aniž bych ho musel přivádět externím drátem. Prostě mi tam "šplhá" po jednom pinu původních patic, ačkoliv tam původně neměl být...:-) Ale to se týká jen této konkrétní desky. Budete-li stavět Ultramon 51 & Basic 31 computer na zelené louce, budete asi dekódování adres řešit stejně po svém. Nebudou-li v adresovém prostoru další paměti či periferie, je zapojení té redukce v pořádku.


RET



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