Proč "PMIZ-80A":

  Název repliky slavného PMIčka vzešel od použitého typu mikroprocesoru. Již od počátku jsem si totiž řekl, že nebudu stavět věrnou kopii původního PMIčka, místo toho ale počítač sice softwarově kompatibilní, leč ze součástek dovolujících použití pouze jediného napájecího napětí +5V. To je hlavní rozdíl oproti klasickému PMI, které pro svou činnost vyžaduje 3 napájecí hladiny: +5V, +12V a -5V .

  Sáhl jsem tedy po veleslavném mikroprocesoru Z80-CPU, respektive jeho klonu z bývalé NDR UB880D. Procesor Z80 je zpětně plně softwarově kompatibilní s 8080A, má zaintegrovány všechny instrukce 8080ky, navíc ale obsahuje velmi obsáhlý seznam nových instrukcí. Ty ale není dobré používat, pokud mají vaše programy chodit i na původním PMIčku.
Mikroprocesor VEB Mikroelektronik Erfurt (bývalé Východní Německo) UB880D
  Dalšími úpravami na desce jsou:

- nahražení původních dvou pamětí ROM (EPROM) MHB8x08 s kapacitou 1KB jedinou EPROM MHB2716 s kapacitou 2KB

- původní displej VQD30 z produkce NDR nahražen běžnými LED číslovkami se společnou anodou se 14 vývody a výškou znaku 7,62mm

- původní budič displeje MH1082 nahražen běžnějšími typy 74154 a 74LS244

- původní tranzistorový zesilovač signálu z magnetofonu nahražen komparátorem s MAB311 (MAC111)

- na desce navíc 8 diod LED pro univerzální použití (ovládají se jako virtuální 10. segmentovka)

- konektory systémové sběrnice a bran obvodů MHB8255A jsou místo původního typu FRB nahraženy běžnými dutinkovými lištami, navíc oba jsou teď na desce 2x, lze připojit více periférií

- deska obsahuje stabilizátor MA7805 na chladiči, k napájení stačí zdroj jediného nestabilizovaného napětí +9V až +12V, minimálně 500mA, lépe 1A

- zdroj hodinového signálu pro CPU generuje dvě frekvence, 1,108MHz (velmi podobné původní 1,111MHz) a 2,216MHz, které lze přepínat jumperovou spojkou, procesor lze tedy "přetaktovat" prakticky na dvojnásobek původní frekvence
  TECHNICKÉ INFORMACE:

- CPU Z80, jakákoliv rychlostní varianta (stačí nejpomalejší 2,5MHz)

- 100% softwarová kompatibilita s původní MHB8080A

- taktovací frekvence CPU volitelná 1,108MHz / 2,216MHz

- RWM (RAM) 1KB osazená 2x MHB2114

- ROM (EPROM) 2KB osazená 1x MHB2716C

- PIO 2x MHB8255A

- displej 9x LED 7-segment. spol. anoda, 14 vývodů, výška znaku 7,62mm, např. MAN72A, LQ425 apod.

- napájení nestabilizované +9V až +12V DC/min. 500mA, lépe 1A

- rozměr desky cca 320mm x 215mm

- DPS oboustranná, neprokovená, ruční propojky mezi oběma stranami, poměrně snadno vyrobitelná doma
Kompletní mikropočítač PMIZ-80A
Schéma zapojení (PNG v plné velikosti po kliknutí):
  POPIS ZAPOJENÍ:

  Srdcem počítače je mikroprocesor Z80 (IO1) s 8-bitovou datovou a 16-bitovou adresovou sběrnicí. Dvojice invertorů (IO10A+B) 74LS04 tvoří společně s krystalem (Q1) a kapacitou (C25) oscilátor kmitající na frekvenci 4433kHz, třetí invertor (IO10C) odděluje oscilátor od dalších obvodů. Základní frekvence 4433kHz dále vstupuje do dvojice klopných obvodů typu D 74LS74 (IO11) zapojených v sérii, každý zapojen jako dělička dvěma. Z výstupu prvního tedy dostáváme signál o frekvenci 4433:2=2216kHz, z výstupu druhého 4433:4=1108kHz. Oba signály jsou přivedené na jumperovou propojku (JP1), kde je možné si propojením vybrat, který ze dvou signálů bude použit pro taktování CPU. Taktovací signál je u CPU ještě posílen tzv. pull-up odporem (R58) 680R vůči +5V, protože vstup CLK procesoru vyžaduje při úrovni log.1 napětí minimálně +4V.

  Pro uvedení systému do počátečního definovaného stavu po zapnutí, tzv. RESET, slouží obvod okolo dvou hradel NAND 74LS00 (IO9A+B). Ta jsou zapojena jako Schmidttův klopný obvod s mírnou hysterezí, a na jejich vstup je připojena kapacita (C8) nabíjená po zapnutí přes odpor (R16). Dále je sem zapojeno resetovací tlačítko (S1), které stiskem vybíjí zmíněnou kapacitu přes odpor (R60) - omezuje vybíjecí proud. Z výstupu prvního hradla NAND (IO9A) je vyveden signál RESET s aktivní úrovní H, např. pro obvody MHB8255A či na systémový konektor. Z výstupu druhého hradla NAND (IO9B) je vyveden invertovaný signál /RESET s aktivní úrovní L pro CPU Z80.

  Obvod okolo čipu NE555 (IO12) slouží ke generování přerušovacího pulsu /INT s definovanou délkou 33us pro procesor. Problém procesorů Z80 totiž je, že přerušovací vstup /INT nereaguje na hranu, ale na úroveň. Pokud bychom jej pro vyvolání přerušení např. spojili tlačítkem vůči zemi, procesor po dokončení obsluhy přerušení najde na tomto vstupu opět úroveň L a opětovně skočí na obsluhu přerušení. Tím bychom se dostali do nekonečné smyčky obsluhy přerušení, dokud  by se úroveň na vstupu /INT nezměnila na H. Uvedený obvod s NE555 generuje přerušovací puls právě takové délky, aby jej procesor zaregistroval i pokud bude provádět některou ze svých nejdelších instrukcí trvajících 25T (vstup /INT se testuje na konci instrukce) při hodinové frekvenci 1,108MHz. Tento obvod je vlastně klasické zapojení časovače NE555 jako monostabilního multivibrátoru, spouštění probíhá buď signálem /INT ze systémového konektoru, nebo tlačítkem I (S2). Po spuštění obvod vygeneruje puls o délce cca 33us, která je daná hodnotami RC článku (R61+C26). Puls má úroveň log.1 a pro potřeby CPU je invertován pomocí invertoru 74LS04 (IO10F).

  Obvod s hradly OR 74LS32 (IO8) přetváří signály /MREQ, /IORQ, /RD a /WR vystupující z CPU na signály /MW, /MR, /IOW a /IOR kompatibilní s původním procesorem 8080A.

  Paměť EPROM a RAM je osazena obvody MHB2716C (IO4) a MHB2114 (IO5+6) a je zapojena zcela standardně. Paměťový adresový dekodér MH3205 (IO7) rozděluje jako u původního PMI adresový prostor paměti na oblasti po 1KB, přičemž první oblast od adresy 0000h (výstup /CS0) patří první polovině paměti EPROM a systému Monitor v ní uloženému, druhá oblast od adresy 0400h (výstup /CS1) patří druhé polovině paměti EPROM a je volně k dispozici uživateli. Nabízím vám zde ke stažení verzi EPROM, kde jsem do této oblasti umístil některé zajímavé podprogramy. Osmá oblast od adresy 1C00h (výstup /CS7) patří paměti RAM. Výstupy /CS2 až /CS6 nejsou využity, jsou vyvedeny na systémový konektor, a jsou volně k dispozici uživateli.

  Odpory 10K (R44-R51) zapojené mezi jednotlivé datové signály a napájení +5V mají dvě funkce: Proudově posilují datovou sběrnici při signálu log.1, při vyvolání přerušení generují na datové sběrnici kód instrukce RST7 (RST#38), o což se u původního PMI staral řadič sběrnice MH8228.

  Paralelní stykové obvody jsou dva, jde o typy MHB8255A, a jsou zapojeny zcela standardně jako u původního PMI. První obvod (IO2) slouží k obsluze displeje, klávesnice a čtení dat z magnetofonu. Na to používá dvě ze svých tří bran, a to brány PA a PC. Brána PB je společně se všemi třemi branami druhého obvodu (IO3) vyvedena na konektory portů a jsou volně k dispozici uživateli.

  Obvod 74LS244 (IO14) proudově posiluje signály pro rozsvěcení jednotlivých segmentů displeje. Ty jsou k němu připojeny přes sériové odpory 220R (R5-R12) omezujícími proud. Displeje svítí v tzv. multiplexním režimu, to znamená, že v každém okamžiku je rozsvícena pouze jedna segmentovka. Rozsvěcení probíhá spínáním napájecího napětí +5V k anodám displejů pomocí spínacích tranzistorů PNP 2N4403, BC327 nebo BCY79 (T1-T10). Ty jsou spínány výstupy dekodéru 74154 (IO13) současně s přivedením příslušné úrovně L i na jeden řádek tlačítek zapojených do matice. Pokud je některé stisknuto, přenese se úroveň L na jeden ze tří datových signálů posílených na úroveň log.1 pull-up odpory 5k6 (R1-R3) a následně je softwarově zpracována.

  Počítač obsahuje navíc oproti původnímu PMI 8 LED diod, které jsou určeny volně uživateli k indikování libovolných stavů. Rozsvěcí se zcela stejným způsobem, jako číslovky displeje, tedy jako virtuální 10. segmentovka. Protože původní systém Monitor obsahoval hazardní stav, kdy na tuto virtuální a na původním PMI neexistující segmentovku zapisoval data, projevovalo se to na PMIZ-80A chaotickým blikáním těchto LED. Proto mnou upravená verze ROM, kterou si zde můžete stáhnout, obsahuje opravu tohoto stavu.

  Výstup na magnetofon je realizován zcela shodně s původním PMI pomocí obvodu okolo hradla NAND 74LS00 (IO9C), jen je doplněn pull-up odpor 2k2 (R63) pro proudové posílení výstupu hradla při úrovni H. Vstupní obvod z magnetofonu je zcela předělán a postaven okolo komparátoru MAB311, MAC111 nebo LM111H (IO15). Jde o velice citlivý obvod, výstupní signál z magnetofonu může mít nyní poměrně nízkou úroveň okolo 300mV. Tento obvod dlouhá léta úspěšně používám na ZX Spectru, kde výborně funguje, bohužel zde na PMIZ-80A se mi nepodařilo z magnetofonu nahrát vůbec nic, přitom obvod jsem přezkoušel a funguje bezvadně. Připisuji to nekvalitnímu software v obslužném systému Monitor, proto se příležitostně chystám na úpravu tohoto software.

  Napájení desky zajišťuje stabilizátor MA7805 (IO16) přišroubovaný na chladiči, pro spolehlivou funkci doporučuji napájení v rozsahu 9 až 12V. Vstupní napětí prochází sériově diodou 1N5402 (D2) chránící desku před případným přepólováním zdroje. Mezi vstupními napájecími svorkami je navíc zapojena obousměrná ochranná dioda Transil BZW06-23B, chránící stabilizátor a celou desku před napěťovými špičkami vyššími než cca 27V.
Fotogalerie