Čipy, data, procesory

Dodatky ke knize právě vznikají pod názvem Čipy, data, procesory. Hlavní část textu se věnuje práci s programovatelnými logickými poli (FPGA) a jazyku VHDL, který slouží k popisu číslicových obvodů. Kromě syntézy počítačů z hotových komponent se dostaneme i k návrhu vlastního mikroprocesoru!

Dalšími tématy v knize jsou například krystalové oscilátory, návod, jak můžete přeprogramovat EEPROM přímo v počítači OMEN za chodu, střípky z historie mikroprocesorů, nebo třeba popis „šestnáctibitového 65C02“, tedy obvodu WDC 65C816, který poháněl některé modely počítačů Apple // a sloužil jako „SuperCPU“ ve stejnojmenné kartě k počítačům Commodore. Poprvé v češtině najdete i podrobný návod k použití extrémně vylepšeného osmibitového procesoru 6809 – Hitachi HD6309.

Kniha postupně vzniká, některé části jsou už napsány a zveřejněny, jiné zatím čekají. To, kdy budou dopsány, záleží jen na zájmu čtenářů. K dopsání můžete přispět i vy!

https://www.osmibity.cz/addons.html
Rubriky: Knihy, OMEN | Štítky: | Komentáře nejsou povolené u textu s názvem Čipy, data, procesory

Nad dotazy čtenářů

Proč se nepoužíval obvod 8051 v domácích mikropočítačích? A proč nepůjde připojit ZX Spectrum k modernímu zobrazovači bez úprav?

Občas mi vy, čtenáři, píšete zajímavé dotazy a já si říkám, že je škoda odpovídat jen mailem jednomu, protože to může zajímat víc lidí. Zkusím tedy nepravidelný formát takovýchto veřejných odpovědí.

První dotaz poslal pan Tomáš:

zaujal mě váš článek https://retrocip.cz/monitor-ke-starym-pocitacum-za-par-korun/, kde vysvitla nová naděje na připojení parkovacích kamerek k mému ZX81.

Otázka je, zde by to fungovalo (obecně tyhle krámy typu TFT monitor s PAL vstupem) na neupravených ZX 80/81/Spectrum, tzn. tak jak jsou, bez předělávek na s-video apod.

Předem díky za názor / radu, moc by mi to pomohlo.

Odpověď je jednoduchá, ale nepotěší:

Tyhle monitory očekávají vstup jako standardní video v normě PAL. ZX Spectrum i ZX81 bez úpravy(!) pouštějí ven sice videosignál PAL, ale namodulovaný na televizní přenosovou frekvenci, aby simuloval signál, přijatý z antény.

Takový signál se připojí k anténnímu vstupu, z něj jde do vstupního filtru, kde musí být naladěn kanál se stejnou přenosovou frekvencí, a pokud tomu tak je, tak projde dál, a tam z něj televize rekonstruuje zpátky PAL.

Což je taky důvod, proč obraz není tak kvalitní – protože se moduluje nejprve na 36. kanál UHF (603.25 – 607.75 MHz), s touto frekvencí se přenáší po kabelu do televize, a tam se zase demoduluje zpět na původní PAL, a právě tento proces způsobuje ztráty a rušení.

PAL monitor chce právě ten videosignál. Odstraňuje celý složitý řetězec modulace a demodulace, ale musíte si ze ZXS/ZX81 vyvést ten nemodulovaný signál. Složité to není, ale je to, přeci jen, nějaký zásah…

Pro zájemce: Zde je návod na vyvedení videa ze ZX81, popřípadě zde, pokud máte ZX80 či Timex. Je to o něco náročnější úprava, protože je potřeba videosignál trochu zesílit tranzistorem.

U ZX Spectra se jednoduše odpojí modulátor a na anténní výstup se přivádí přímo videovýstup. Návod krok za krokem je třeba tady (ZX Spectrum Composite Mod), nebo tady (ZXS 48k video). Sice je anténní vývod trochu jiný než standardní RCA konektor pro video („CINCH“), ale použít ho lze. Nebo můžete druhý konektor prostě přidat:

Druhý dotaz poslal pan Jan:

proč se do jednodeskových počítačů nepoužíval mikrokontroler 8051? Formálně se jedná o Hardvardskou architekturu, ale i v návodu se píše, že je možno použít jednu RAM na kód i data spojením signálů /PSEN a /RD. Domníval jsem se, že bych získal von Neumannovský procesor s obdobnou instrukční sadou a rychlostí jako zmiňovaná 8080, který má (může mít) navíc on-chip ROM pro monitor, serial port, časovače, a jeden volný I/O port. V podstatě celý Omen Alpha na jednom čipu (krom paměti). Přišel 8051 na jednodeskové osmibity příliš pozdě? Byl příliš drahý? Nebyly dostupné dostatečně rychlé nebo velké RAM paměti? Nebo je tam nějaká jiná zrada, která takové využití znemožňuje?

V první řadě přišel x51 příliš pozdě (až v roce 1980), takže v relevantní době už měli konstruktéři naučené postupy s obyčejnými CPU. V té době byly dostupné nejen 8080, 6502 nebo Z80, ale i 8086 (1978) nebo 8088 (1979). Ve stejném roce jako 8088 přišla i Motorola 68000. Takže podle mě nejpravděpodobnější důvod je ten, že řada x51 přišla příliš pozdě na to, aby zasáhla do dějin osmibitů.

Ne že by žádné mikropočítače takového typu neexistovaly – existovaly, ale bylo jich výrazně méně. Docela často se x51 používal třeba v herních konzolích.

Ale největší nevýhoda a hlavní důvod, proč se x51 nerozšířil v domácích počítačích, byl ten, že sice umožňoval práci s externí pamětí, ale nebyly instrukce, které by ji dokázaly využívat jako operační. U 6800 / 6502 / Z80 atd. byl jen jeden paměťový prostor. Mikrořadiče x51 pracovaly přímo jen s vnitřní RAM a s bohatou sadou registrů, ale pro přístup k externí paměti měly jen instrukci MOVX (v popsaném případě by šla použít i MOVC) s nepřímým adresováním, srovnatelným např. s tím, že byste u procesoru 8080 měli pro práci s obsahem paměti pouze instrukce MOV M,x a MOV x,M.

Rubriky: Hardware, Knihy | Štítky: , , , , , | Komentáře nejsou povolené u textu s názvem Nad dotazy čtenářů

MyMensch – 65C02 v novém

Víte, už jsem si myslel, že jsem jeden z mála bláznů, co přepisují staré procesory do FPGA. Tak: nejsem! Dělají to i jiní, lepší…

Třeba The Western Design Center, neboli WDC, společnost Billa Mensche, spoluautora MOS6502. Ta dodneška vyrábí nejen procesory W65C02, ale i šestnáctibitovou verzi W65C816, a oba dokonce jako mikrokontrolér se zabudovanými periferiemi a monitorem v ROMce (W65C134 a W65C265).

Ke všem procesorům mají i vývojové desky, můžete se mrknout: W65C02SXB, W65C816SXB, W65C134SXB a W65C265SXB. Pokud vás zaráží, že „mikrokontrolérové“ verze jsou levnější než ty s původními procesory, je to proto, že na desce s „holým“ procesorem jsou i periferní obvody, které u mikrokontroléru nejsou potřeba, protože jsou integrované.

Mimochodem, za necelých 20 USD nabízejí MENSCH Microcomputer, což je vlastně W65C816, 16bitový následovník slavné 65C02, zabalený spolu s několika periferiemi do podoby jednočipu (W65C265). Na desce toho o moc víc není, ale máte většinu pinů vyvedenou, a je to taková dobře použitelná varianta, když chcete nasadit 65C816 a zároveň ušetřit za periferie.

Ale zpátky k FPGA: Ve WDC samozřejmě už delší dobu nabízejí svoje procesory jako IP (Intellectual Property) pro syntézu obvodů v logických polích. Teď se rozhodli nabízet vlastní „nový“ procesor, opět jako IP, ale tentokrát připravili i vývojovou desku W65Cx65MMC, familiárně zvanou MyMensch.

Deska obsahuje kromě USB převodníku, spousty pinů, tlačítek RESET a NMI, osmi LEDek a JTAG rozhraní hlavně prostor pro FPGA řady MAX10 v provedení BGA.

Mají připraveno několik variant, ta první (Rev-A), která je dostupná na trhu a kterou po mém dotazu dali do prodeje i na Tindie, kde není omezení pro zasílání do ČR, obsahuje FPGA MAX10M08SC, ve kterém je „nahraný“ obvod W65C02i1M08SC.

Že jste o něm nikdy neslyšeli? Nedivím se, je to úplná novinka. Jak název napovídá, je tam W65C02 a je to v MAX10M08SC. Ale kromě samotného jádra 65C02 zaintegrovali i:

  • 2x W65C22 VIA (paralelní porty)
  • 2x W65C51 ACIA (sériové porty)
  • Rozhraní I2C
  • Rozhraní SPI
  • JTAG
  • HW násobičku a děličku
  • Paralelní rozhraní pro maticovou klávesnici 4×4 s debounce logikou
  • Rozhraní pro uživatelskou FLASH paměť UFM
  • Unikátní 64bitové ID
  • 30 kB RAM pro uživatelské programy (s mechanismem ochrany paměti proti přepsání)
  • 2 kB Boot loader
  • 12 kB RAM pro data
  • Hardwarový breakpoint
  • … a zbytek jsou vstupně-výstupní piny GPIO

Celé to běží na 14.7456 MHz, ACIA mají 1.8432 MHz (tedy maximální komunikační rychlost je 115200 Bd)

Blokové schéma, autor: dokumentace WDC

Pokud si chcete hrát s 65C02, i když ne s tou úplně originální, a chcete k tomu použít hotový systém s mnoha a mnoha možnostmi, dokonce i s modernější 3.3V logikou, zkuste třeba právě MyMensch.

Mimochodem, WDC na téhle technologii provozuje i nějaké gadgety pro Internet věcí

(Předpokládám, že můžete FPGA sami naprogramovat a použít tak desku jako běžný FPGA devkit, ale obávám se, že původní obsah už nezískáte…)

Rubriky: Emulace, Hardware, IoT | Štítky: , , | Komentáře nejsou povolené u textu s názvem MyMensch – 65C02 v novém

Zapište si do kalendářů: Patnáctého května vychází Porty, bajty, osmibity

Já vím, otravoval jsem tu s tím už rok, ale konečně se TO stane! 15.5. začne prodej druhé knihy, tentokrát věnované stavbě osmibitových počítačů. Ponese název Porty, bajty, osmibity a opět ji vydá sdružení CZ.NIC.

Celý příspěvek
Rubriky: ASM80.com, Hardware | Štítky: , | Komentáře nejsou povolené u textu s názvem Zapište si do kalendářů: Patnáctého května vychází Porty, bajty, osmibity

OMEN Kilo: Zapojení procesoru

Čím jiným začít, než fyzickým zapojením procesoru 6809…

Možná nepřekvapí jistá podobnost s procesorem 6502. Je to logické, protože, jak jsme si už několikrát řekli, 6502 i 6809 vycházejí ideově z téhož předchůdce, 6800.

Popis vývodů

Procesor má vyvedené obě hlavní sběrnice, jak datovou (D0 – D7), tak adresní (A0 – A15). Tady nás nečeká žádné překvapení. Signály nejsou multiplexované a jsou plně k dispozici.

Vstup /RESET slouží k inicializaci procesoru do výchozího stavu. Na vstupu je Schmittův klopný obvod, takže stačí jednoduché zapojení s kondenzátorem a rezistorem, podobně jako u předchozích počítačů. Po RESETu se načte adresa (2 bajty) z adres FFFEh a FFFFh a získaná hodnota se použije k nastavení programového čítače PC. Nezapomeňte, že 6809 používá ukládání ve stylu Big Endian, tedy nejprve vyšší část adresy, poté nižší. Vyšší část tedy bude na adrese FFFEh, nižší na FFFFh.

Výstup R/W informuje okolí o tom, jestli procesor hodlá číst (=1), nebo zapisovat (=0). Opět, podobně jako u 6502, se nerozlišují periferie a paměť, pro procesor je vše „paměť“.

Pro připojení krystalu se používají vývody XTAL a EXTAL. Pokud použijete externí generátor časovacích pulsů, přiveďte signál na vstup EXTAL a XTAL nechte nezapojený.

Uvnitř poběží procesor na frekvenci, která je rovna čtvrtině frekvence krystalu (popřípadě přivedené frekvenci). U OMEN Kilo jsem tedy použil frekvenci 7,3728 MHz, která po podělení čtyřmi dává naši oblíbenou pracovní frekvenci 1,8432 MHz.

Existují tři varianty tohoto procesoru, které seliší podle maximální pracovní frekvence: 6809, 68A09 a 68B09. Varianta bezpísmene pracuje na frekvenci 1 MHz, varianta A používá 1,5 MHz a varianta Bmůže pracovat až s frekvencí 2 MHz (to znamená, že externí krystal můžemít frekvenci 4, 6, resp. 8 MHz).

Pro řízení vnějších obvodů slouží hodinové signály E a Q. E má stejnou funkci, jakou má u 6502 výstup PHI2. Sestupnou hranou na výstupu E oznamuje procesor, že začíná operační cyklus. Poté přijde vzestupná hrana na výstupu Q a oznámí, že na adresní sběrnici je platná adresa. Následuje vzestupná hrana signálu E, sestupná signálu Q (bez speciálního významu) a celý cyklus ukončuje (a zároveň zahajuje nový) sestupná hrana signálu E, při níž přečte procesor data ze sběrnice.

Pro většinu jednoduchých případů můžeme signál Q (Quadrature time) ignorovat a pracovat pouze se signálem E, stejně jako u 6502.

Pozor na variantu 6809E! Tato varianta nemá interní oscilátor, vyžaduje externí generátor dvoufázových hodin a zapojení vývodů je lehce odlišné.

Výstupy BA a BS informují o tom, zda je procesor odpojený od sběrnice (ve stavu HALT / DMA) či zda reaguje na požadavek na přerušení apod. Za normálního chodu jsou oba v 0 a pokud nepotřebujete nějak speciálně reagovat na výjimečné stavy, můžete oba ignorovat.

Vstup MRDY slouží k témuž, k čemu sloužily vstupy READY, /WAIT či RDY – informuje o tom, že externí obvody nezpracovaly požadavek a že potřebují, aby procesor počkal. Pokud je tento vstup v log. 0, hodiny se zastaví ve stavu E=1, Q=0 a čeká se, až bude MRDY opět 1. Teprve pak procesor dokončí čtení dat, popřípadě přestane posílat data k zápisu, a pokračuje se dál.

Vstup /DMA/BREQ slouží k přerušení práce procesoru a jeho odpojení od sběrnice. Pokud je na tomto vstupu na konci aktuálního cyklu 0, procesor se uvede do stavu DMA a uvolní sběrnici. Uvolnění sběrnice signalizuje nastavením BS = BA = 1. Okolní zařízení teď má až 15 cyklů na to, aby si udělalo, co je potřeba. Po 15 cyklech si procesor vezme dva cykly pro vnitřní refresh a na tu dobu nastaví BS = BA = 0. Pokud stále trvá požadavek na DMA, celý postup se opakuje.

Vstup /HALT zastaví procesor podobně jako předchozí vstup. Do stavu HALT se procesor přepne poté, co dokončí aktuálně prováděnou instrukci. Opět se odpojí od datové i adresní sběrnice, odpojí i výstup R/W, a nastaví BS = BA = 1.

Přerušení

Poslední tři vstupy, o nichž jsem se ještě nezmínil, jsou vstupy /NMI, /FIRQ a /IRQ. Jejich stav je vyhodnocován ve chvíli sestupné hrany Q (E=1).

/NMI je dobře známé „nemaskovatelné přerušení“. Logická 0 na tomto vstupu vyvolá přerušení, které programátor nemůže programově zamaskovat. Jediná výjimka je těsně po RESETu, dokud není nastaven obsah v registru ukazatele zásobníku (S). Po detekování požadavku na NMI je na zásobník automaticky uložen obsah registrů PC, U, Y, X, DP, A, B a CC a procesor si z adres FFFCh a FFFDh načte adresu obsluhy nemaskovatelného přerušení. Toto přerušení má zároveň nejvyšší prioritu.

Téměř identicky se chová požadavek /IRQ. Dva rozdíly tu ale jsou. Zaprvé: adresa obsluhy přerušení se bere z adres FFF8h a FFF9h. A zadruhé: pokud je bit I v registru CC roven 1, přerušení se nevykoná.

Vstup /FIRQ (Fast IRQ) funguje obdobně jako IRQ. I tento vstup vyvolá přerušení (adresa obsluhy je v paměti na FFF6h a FFF7h), i toto přerušení lze zamaskovat bitem F v registru CC, ale hlavní rozdíl je, že neukládá na zásobník žádné jiné registry, jen programový čítač PC a registr příznaků CC.

OMEN Kilo CPU

Základní deska, která vychází z koncepce OMEN Bravo. Obsahuje jen procesor, 32 kB RAM, 8 kB EEPROM, dekodér signálů a nezbytné obvody okolo (RESET, krystal). Nakonec jsem k „nezbytným obvodům“ přidal i nám důvěrně známý 68B50 pro sériovou komunikaci. Díky tomu může být OMEN Kilo použit jako jednodeskový počítač, bez jakýchkoli dalších obvodů.

Pokračování příště…

Rubriky: Hardware | Štítky: , , , , | Napsat komentář

Jste unaveni z gigahertzů a terabytů?

Stýská se vám po starých zlatých časech, kdy jste přesně chápali, co se ve vašem počítači děje a proč? Říkáte si, že byste si zase s takovým počítačem rádi pohráli?

Máte šanci!

Sestavte si vlastní osmibitový počítač, se skutečným historickým procesorem a pár kilobyty paměti. Vyzkoušejte si jeho spájení a oživení, naprogramujte si vlastní obslužný software, navrhněte si vlastní periferie…

Jak na to?
Rubriky: Uncategorized | Štítky: , , , , | Napsat komentář