Jak zbudować komputer z mikroprocesorem Z80?

22

Mam układ, więc jak dodać: zegar, pamięć RAM, dysk twardy (może EEPROM?), Ekran (ekran graficzny LCD?), Metodę wprowadzania (klawiatura, mysz)?

użytkownik8210
źródło
2
Do czego chcesz tego używać? To określa twoje wymagania.
stevenvh
6
Z80 był naprawdę bardzo, bardzo cudownym procesorem w swoich czasach, ale jego czasy już dawno minęły. Jeśli nie bardzo, bardzo specjalnie chcesz i musisz używać Z80, nie rób tego. Użyj czegoś innego. Umieść Z80 w swoim prywatnym muzeum jako próbkę procesora, który znacznie zmienił drogę do tego, co mamy teraz.
Russell McMahon
1
Myślę, że trudno ci będzie znaleźć (cross) asembler lub (cross) kompilator, który działa na bieżącym komputerze, nie wspominając o układach peryferyjnych, EPROMie i odpowiednim programatorze, którego potrzebujesz, aby go uruchomić. Wybrałbym Arduino, które ma żywą społeczność w Internecie, mnóstwo bibliotek dla wszelkiego rodzaju sprzętu, wsparcie programistyczne dla systemów Linux i Windows.
jippie
1
@jippie Nie jest to trudne, ale nie ma większego sensu, chyba że poważnie zainteresujesz się ponownym przetwarzaniem. Istnieje sdcc jako kompilator, a Farnell wymienia wszystkie dostępne układy peryferyjne Z80, choć ceny są dość wysokie.
starblue
1
Mam Z80 z zegarem ciemni, który zbudowałem w 1980 roku. Minutnik nadal działa, ale przeżył moją potrzebę ekspozycji czasu i kąpieli chemicznych w ciemni. To wciąż działający interwałometr, ale obecnie nie mam do niego zastosowania.
Olin Lathrop,

Odpowiedzi:

37

Nie słuchaj innych, którzy mówią, że Z80 jest za stary lub za twardy. Z80 został zaprojektowany do tego zadania. Jest to najstarszy nieprzerwanie produkowany procesor z jakiegoś powodu, łatwo z nim budować systemy komputerowe. To doskonały wybór dla twojego projektu.

Jest kilka świetnych książek, takich jak „projekty mikrokomputerowe z80” i „ podręcznik z80 ”, które naprawdę ci pomogą. Spójrz także na z80.info , mają mnóstwo informacji, których potrzebujesz.

Twoje cele projektowe są realistyczne. Najtrudniejszy będzie ekran LCD, zakładając, że chcesz obsługiwać wyświetlacz VGA lub NTSC. Ale nawet to, kiedy już w to wejdziesz, nie jest takie trudne. To będzie powtarzający się motyw, który spotkasz w tym projekcie, rzeczy są znacznie łatwiejsze niż się spodziewałeś. Wczesne mikrokomputery były niezwykle prostymi maszynami. Oczekiwanie, że można je w pewnym stopniu powielić, jest bardzo realistycznym celem. Oprócz niestandardowych układów dźwiękowych i wideo, reszta maszyny jest nadal dostępna jako części z półki i łatwo zrozumiała nawet jako nowicjusz.

Najprostszy użyteczny system Z80 będzie miał procesor Z80, pamięć flash lub pamięć EEPROM, którą można bezpłatnie pobrać ze starych płyt głównych, pamięci RAM i UART do komunikacji szeregowej (plus max232 do zmiany poziomu). Wszystko to jest dostępne u każdego dystrybutora elektroniki, jest wykonane przez otwory i można je zbudować na płycie chlebowej. Jedynym specjalnym sprzętem, którego potrzebujesz, jest programator flash / EEPROM (który zbudowałem z Arduino). Aha, i kilka innych rzeczy, takich jak niektóre układy logiczne z serii 74 do dekodowania adresu, resetowania obwodu itp. I kryształowy oscylator.

Alternatywnie możesz zastąpić uart układem pio z80, aby komunikować się z nowoczesnym równoległym wyświetlaczem LCD. Tak naprawdę nie robi grafiki, ale jest łatwy w użyciu, a twój z80 może drukować rzeczy wcześnie. Klawiatura ps / 2 będzie raczej prosta w obsłudze.

Ale i tak Z80 to dobry wybór dla twojego projektu. Może to zabrzmieć skomplikowanie, ale ostatecznie nie jest tak źle. Buduj przyrostowo, zacznij od obwodu testowego Z80, podłącz EEPROM, aby mógł uruchomić jakiś kod i po prostu buduj stamtąd.

UziMonkey
źródło
1
Najważniejsza część projektu będzie polegała na wymianie eprom, do której kod można łatwo pobrać z komputera programistycznego; właśnie tam rzeczy były prymitywne w erze Z80 w porównaniu do dzisiejszych mikrokontrolerów z programowaniem w obwodzie. Alternatywnie, jeśli dostaniesz seryjny bootloader (prawdopodobnie z „dyskiem” interfejsu karty SPI bitbang SPI) i umieścisz go w rzeczywistej pamięci EPROM, możesz z łatwością użyć statycznego RAM-a dla tworzonego kodu.
Chris Stratton,
Aby łatwo opracować kod, użyj emulatora eprom podłączonego do komputera. Działa jak ICP.
14

Na szczęście jest książka - „Zbuduj swój własny komputer Z80” i chociaż nie ma go już w druku, autor Steve Ciarcia hojnie zezwolił na jego swobodną dystrybucję jako plik PDF: http://retro.hansotten.nl/index.php? page = z80-sbc

Możesz także rzucić okiem na projekt N8VEM Home Brew Computer. Jest to Z80 SBC (komputer jednopłytkowy), który może obsługiwać CP / M i może być zbudowany bardzo tanio - płytki drukowane kosztują 20 USD plus koszty wysyłki. Obecnie dostępnych jest wiele kart rozszerzeń (magistrala S100!), A za tym wszystkim stoi kompetentna i pomocna społeczność.

Ale przede wszystkim, dlaczego nie wziąć garści składników i zbudować minimalny tester Z80, aby upewnić się, że Twój procesor działa - http://www.z80.info/z80test0.htm To po prostu przewody danych i linii adresowych do ciągłego wykonywania ta sama instrukcja (NOP), aby zasadniczo zademonstrować serce działającego komputera opartego na Z80.

Heavy Sixer
źródło
Niesamowite linki. Teraz nawet kusi mnie, by spróbować samemu; ;-)
Cees Meijer
4

Rzeczywiście, Z-80 to stary układ, ale zbudowanie z nim komputera może być niezłym wyzwaniem. W przeciwieństwie do wszystkich współczesnych mikrokontrolerów nie ma wielu wbudowanych funkcji, więc będziesz musiał samodzielnie dodać pamięć RAM, EPROM i sprzęt do dekodowania adresów. I to właśnie zrobili wiele lat temu, kiedy Tandy zbudował TRS-80. Wystarczy spojrzeć na oryginalne schematy Model-1: http://electrickery.xs4all.nl/comp/trs80/doc/westHWBook.pdf

Cees Meijer
źródło
Podczas przeglądania tego dokumentu zaczynasz szanować sprzęt wbudowany w układy takie jak ATtiny i ATmega. Prawdopodobnie będę miał spontaniczne koszmary z samego okablowania danych i adresu.
jippie
Oprócz samego Z80 większość tego, co było w TRS-80, była spowodowana sekcją wideo i dynamicznym interfejsem RAM. Ponadto liczba chipów była raczej wyższa niż mogła być b / c z jakiegoś powodu, że użyli dużo 16-pinowych części „sześciokątnych” (np. 74LS367) zamiast mniejszej liczby, 20-pinowych części „ósemkowych” (np. 74LS244). Chodzi mi o to, że prawdopodobnie możesz sklonować TRS80, tocząc własnego Z80. +1!
JustJeff
4

Miałem okazję zbudować od podstaw kilka komputerów opartych na mikroprocesorze Z80, a mianowicie Sinclair ZX80 (ulepszona wersja) i Jupiter Ace firmy Jupiter Cantab. Oba działają dobrze, a te maszyny korzystają z klawiatury i generują czarno-białe zdjęcia (w rozdzielczości 240 x 192 pikseli) na telewizorze. Więcej informacji na ich temat:

http://www.jupiter-ace.co.uk/

http://searle.hostei.com/grant/zx80/zx80.html

Następca ZX80, ZX Spectrum, nie tylko to wszystko, ale także ma wszelkiego rodzaju interfejsy, takie jak interfejs dyskowy IDE, interfejs dyskietki, a także dla bardziej nowoczesnych nośników danych, takich jak pendrive lub karty SD.

Moja rekomendacja: śmiało i zrób to! Badaj, ucz się dużo po drodze i baw się dobrze. W dzisiejszych czasach jest o wiele łatwiej niż w latach 80., mamy Internet, CPLD, FPGA, tyle statycznej pamięci RAM, ile chcemy itd.!

Powodzenia i uważaj na siebie.

Ismael Perez de Albeniz
źródło
3

Będzie Ci bardzo trudno zbudować własny „komputer” oparty na Z80 ze wszystkimi opisanymi funkcjami. Jeśli jednak możesz żyć bez samodzielnego budowania sprzętu, komputer Z80, który sam programujesz, jest całkowicie możliwy.

Stare TI-83, TI-84 i podobne (jak sądzę, sprzed TI-89) są kalkulatorami opartymi na Z80. Nadal są bardzo popularnymi kalkulatorami i można je kupić za około 100 USD: http://www.amazon.com/s/ref=nb_sb_noss_1?url=search-alias%3Daps&field-ke words=ti-84

Kalkulator oferuje wszystko, co chcesz, oprócz myszy, a ponieważ kalkulatory są nadal powszechne w szkołach, nadal znajdziesz dobrą liczbę programistów Z80. StackOverflow może pomóc, jeśli masz pytania: /programming/tagged/z80

Nie jestem jednak pewien, jak łatwo będzie przeprogramować Z80 własnym kodem.

Chris Laplante
źródło
1
W szkole średniej mieliśmy kurs programowania asemblacyjnego z wykorzystaniem płyt developemebt z80; mieliśmy cały zestaw narzędzi, aby zaprogramować go za pomocą kodu asemblera, aby zapalić niektóre diody LED i wyświetlić niektóre liczby za pomocą wyświetlaczy 7-segmentowych. Myślę więc, że nauka bardziej sprzętowa może być dobrym punktem wyjścia, ale kto wie, gdzie można ją znaleźć ...
clabacchio
1
Chociaż zasugerowanie potencjalnie możliwej do zhakowania platformy programistycznej jest zasadne, początkowe „bardzo trudne” twierdzenie jest przesadzone. To prawda, że ​​będzie wiele etapów projektu, aby zrobić wszystko na liście plakatów, ale żadna z tych rzeczy nie jest szczególnie trudna ani nie wchodzi w zakres tego, co hobbysta robił na początku lat 80. lub dziś.
Chris Stratton
3

W sieci istnieje kilka witryn dokumentujących tworzenie systemów opartych na Z80. Obecnie pracuję i mam teraz skonfigurowaną stację dyskietek, klawiaturę szeregową, monitor VGA i kartę SD.

Strona główna projektu:

http://n8vem-sbc.pbworks.com/w/page/44366173/Zeta%20SBC

Sam Castledine
źródło
2

Nie sądzę, że Z-80 jest przestarzały. Jest to dość potężny procesor sam w sobie. Bezpłatny asembler + IDE można znaleźć na stronie www.zilog.com. To bardzo dobre narzędzie.

Jeśli chcesz wymienić komputer, nie przejmuj się. Jeśli chcesz się wiele dowiedzieć o mikroprocesorach, posuwaj się naprzód.

Istnieje wiele materiałów drukowanych dotyczących Z-80, interfejsów, programowania itp.

Chociaż Z-80 nigdy nie będzie pasował do czterordzeniowego rdzenia 3 GHZ, nadal może być dość szybki z ludzkiego punktu widzenia. W rodzinie są również szybsze procesory. Spójrz na rodzinę Z80S180. Masz dużą moc, wiele urządzeń peryferyjnych, wszystkie zintegrowane w jednym pakiecie. Tak, rom i ram są zewnętrzne, nie spodziewałeś się, że WSZYSTKO na jednym chipie, prawda? Przegapiłbyś całą koncepcję autobusu! NIE wypróbowałbym jednak jednego z tych szybkich projektów po wyjęciu z pudełka.

Arduinos, malinowe PI itp. Zdaj sobie sprawę, że kupujesz klocki Lego, a nie je projektujesz. Tak, łączą się ze sobą, ale twój wkład będzie ograniczony do oprogramowania (OK, może mógłbyś zaprojektować własną płytę - ale czy tak?)

Z-80 pozostaje doskonałym narzędziem do nauki. Podobnie jak 8051, a otrzymasz pamięć RAM, ROM, procesor i 1 MIPS w jednym pakiecie z 51. Szybsze prędkości, jeśli chcesz.

Nie słuchaj wyborów dokonanych przez innych. Zdecyduj, co chcesz zrobić, a następnie zrób to. O wiele łatwiej jest debugować przy 2 MHZ niż 40.

Wykorzystaj moc internetu i zbierz kilka schematów Z-80. Jest ich wiele. Zastanówmy się nad „Mikroprocesorem Z-80” Gaonkara ISBN 0-02-340484-1 (Amazon może sprzedawać używane kopie za bardzo niewiele dolarów). W rzeczywistości Gaonkar odpowiedziałby na każde zadane pytanie.

Pete
źródło
1

Z80 jest tak przestarzały, że nie będziesz w stanie zbudować z niego niczego oprócz nowatorskiego komputera retro, ale to nie znaczy, że próba nie byłaby pouczająca i zabawna.

Gdybym chciał tylko udowodnić, że mogę zrobić stary Z80, prawdopodobnie umieściłbym go ze statyczną pamięcią RAM 32Kx8 i układem UART, i wypaliłbym zmodyfikowany obraz TRS-80 Model I ROM na jakimkolwiek małym EPROM / EEPROM . Całą mapę pamięci można dekodować za pomocą układu MSI.

Hakowanie nie wymagałoby dużo czasu, aby zeskrobać procedury dekodowania matrycy klawiatury TRS-80 i zastąpić je procedurą wprowadzania UART, ani znaleźć procedury znakowania i zastąpić ją procedurą wyjścia UART. Następnie można go było podłączyć do portu szeregowego komputera, a stary BASIC można było wywołać i obsługiwać.

To powinno udowodnić, że korzystasz z Z80, bez kłopotów z wdrożeniem dużej liczby operacji we / wy.

JustJeff
źródło
2
Nie sądzę, że Z80 jest przestarzały ... obecnie seria kalkulatorów TI-83 używa go jako głównego procesora, a TI-84 używa go również w układzie ASIC.
fuzzyhair2
Co jest złego w budowaniu nowatorskiego komputera retro? Nikt nie buduje niczego z poziomu chipa, z wyjątkiem zabawy i samokształcenia. Nie, kiedy można uzyskać doskonałą, wstępnie zbudowaną płytę główną za 5 USD!
Izaak Rabinovitch