Wpis pojawił się na blogu dobrychprogramów
Po opublikowaniu wpisu na dobrychprogramach o „dyskretnym klonie” mikrokomputera ZX-81, w komentarzach odezwał się do mnie kolega teddy_6, który postanowił zbudować swoją, w tym momencie drugą znaną mi, działającą kopię tego komputera w Polsce. Wymieniliśmy kilka maili na ten temat uruchamiania maszynki, przez co postanowiłem opisać jego nierówną walkę z uruchomieniem, która stała się dla mnie nieocenioną skarbnicą informacji.
Płyta główna
Po weryfikacji istniejących wersji PCB doszliśmy do wniosku, że wolny od błędów projektowych jest wzór płytki opublikowany na stronie pierwszego polskiego posiadacza tej wersji komputerka, czyli MCBx’a. Kolega MCBx jest kolekcjonerem oraz autorem strony https://oldcomputer.info na której prezentuje swoje zbiory oraz prace z nimi związane.
Wzór płytki: https://oldcomputer.info/others/zx97lite/zx97l_pcnew.pcx
Teddy_6 zlecił wykonanie swojej płytki, na podstawie pliku PCX, firmie MarGol (https://www.fabrykapcb.pl). Piszę o tym, bo nie każdy producent PCB jest skłonny wyprodukować płytki drukowane, z dokumentacji dostarczonej w formatach innych, niż uznawane za standard przemysłowy np.: GERBER.
Po kilku dniach w rękach konstruktora pojawiła się miedziana piękność.
Po trzech dniach od otrzymania płytki, Tadek napisał:
Właściwie to płytka jest gotowa – brakuje tylko Z80 :/
teddy_6
W szereg z 7805 dałem diodę 1N4007 – tak na wszelki wypadek. To co mogłem sprawdzić, to generator podstawy czasu. Odkopałem oscyloskop, popatrzyłem. Impuls synchronizacji poziomej jest, częstotliwość prawidłowa, długość impulsu też. Nie miałem drabinek rezystorowych 1k, więc wlutowałem rezystory w podstawki precyzyjne. Podstawki się trochę przytopiły, więc wygląda to tak sobie. Tak powstałe drabinki włożyłem do podstawek wlutowanych w płytkę. Możliwość “rozcięcia” magistrali danych i adresowej pozwoli na łatwiejszą lokalizację błędów i uszkodzeń podczas uruchamiania układu. No niestety – przerwa – póki nie dojdzie procesor.
w ten spokojny sposób zaczęło się…
uruchamianie
bo już dwa dni później dowiedziałem się:
Mam już Z80 – ale mam niestety problem z uruchomieniem płytki. Może dzisiaj uda mi się uruchomić – w każdym razie opiszę moje problemy dla potomnych 🙂
teddy_6
Zdążył zrobić się następny dzień, bo krótko po 3 rano otrzymałem mały elaborat:
Oj dał mi popalić. Płytkę drukowaną dostałem w poniedziałek, uruchomienie nastąpiło w nocy z soboty na niedzielę. Codziennie parę godzin zajmowania się nim. Uruchomienie pewnie nastąpiłoby szybciej, gdyby nie kilka błędów które popełniłem.Pierwszy, ale nie najpoważniejszy – nie zwróciłem uwagi na to, że układy U9 i U16 mają być lutowane w odwrotnym kierunku niż pozostałe. Na schemacie montażowym jest to zaznaczone – niemniej jednak nie zwróciłem na to uwagi. Po włączeniu zasilania zauważyłem, że grzeje się stabilizator 7805 oraz dwa układy na płytce – U9 i U16. Nawiasem mówiąc nie pociągnęło to żadnych ujemnych następstw – w każdym razie 74LS245 dalej pracuje przy obsłudze klawiatury, coś tam się pojawia na ekranie jak zewrę kolumnę i wiersz matrycy klawiatury. Nie mam jeszcze klawiatury, więc sprawdzić do końca nie mogę, ale wydaje się, że jest ok. Drugi błąd – poważny. Przedobrzyłem z podstawkami. Postanowiłem zamówić podstawki precyzyjne, a nie zwykłe. Po zalutowaniu wszystkich zworek (2 dni), zalutowaniu podstawek, zdobyciu Z80 (Z84C0006PEG) włączyłem ZX97. I nic :/ Coś tam latało po magistralach, na wyjściu video coś było, ale przebieg różny po każdym resecie. No i przede wszystkim brak impulsów VSYNC, co świadczyło o nieprawidłowej pracy układu. Impulsy /HSYNC były, ale ich utworzenie jest dużo prostsze niż VSYNC. Zauważyłem, że scalaki w niektóre podstawki wchodzą lżej niż w inne. Jakieś luzy? Podjąłem decyzję – zalutowałem scalaki na podstawkach. Wszystkie oprócz procesora, RAM-u i EPROM-u
teddy_6
Po włączeniu komputerka dalej nic. PSL-em wykryłem, że na nóżce 21 podstawki procesora mam stan nieokreślony, a na nóżce 21 procesora (/RD) jest fala. To mnie tylko utwierdziło w tym, że muszę niestety wymienić podstawki procesora, RAM-u i EPROM-u. Nie chciałem ich nalutowywać tak jak pozostałych układów. Kupiłem podstawki, poprzecinałem obcinaczkami plastik podstawek i nóżka po nóżce wylutowałem podstawki. Miedzianą plecionką usunąłem cynę, udrożniłem otwory. Zalutowałem podstawki, włożyłem układy, włączyłem ZX97 – dalej nic. Okazało się, że przy strzepywaniu nadmiaru cyny z lutownicy (taki odruch) zrobił się flek na ścieżkach. Usunąłem – dalej nic.
teddy_6
teddy_6
PSL-em wykryłem nieokreślony stan na nóżce 18 procesora (/HALT). Idąc tym tropem doszedłem do tego, że jest zwarcie między ścieżkami – niedotrawiony włosek. Usunąłem. Dalej nic. No to omomierz z brzęczkiem w rękę – i znalazłem jeszcze jedno takie bardzo cienkie, niewidoczne niedotrawienie między ścieżkami, które biegną równolegle, blisko koło siebie. Włączyłem – i pojawiły się impulsy VSYNC! Podpiąłem telewizor. Obraz jest, litera K w lewym dolnym rogu 🙂
No niestety, ale brak synchronizacji obrazu na telewizorze LED. Jutro spróbuję na analogowym. Pewnie będzie ok. Muszę poszukać w sieci informacji jak rozwiązać problem synchronizacji, bo myślę, że to chyba nie tylko mój problem. Jeżeli wiesz coś na ten temat, to proszę o info.
A – jedna uwaga. Płytka z linku https://oldcomputer.info/others/zx97lite/zx97l_pcnew.pcxnie wymaga żadnych cięć, przeróbek. Zgodnie z opisem dodałem tylko rezystor pull-up do RAM /WR (RAM /WR Line (pin 27) should have pull-up resistor).
teddy_6
Nie zdążyłem nic napisać, w końcu środek nocy :), a już po 20 minutach w skrzynce pocztowej wylądowała wiadomość o super krótkiej treści:
teddy_6
Problem rozwiązany 🙂
Rozwiązanie problemu teddy_6 zaczerpnął ze strony I LO w Tarnowie, zresztą doskonale przygotowanego serwisu edukacyjnego dla uczniów tegoż liceum, w którym można znaleźć wiele ciekawych wskazówek na temat zarówno ZX81, jak i w ogóle mikroelektroniki oraz programowania. Polecam.
https://eduinf.waw.pl/inf/retro/005_zx81_info/0014.php
Link do strony głównej: https://eduinf.waw.pl/
klawiatura
Komputer działał, ale nie miał jeszcze klawiatury. Tadek nie miał jeszcze pomysłu jak ją właściwie zrobi, wybrał natomiast z czego. Postanowił zastosować tzw. tactile, inaczej znane jako microswitche, ale w wersji z nakładkami, klawiszami.
Zaproponowałem mu wykonanie klawiatury zapożyczonej z chorwackiego projektu ZX97 zwłaszcza, że autor udostępnił wzór płytki drukowanej swojej klawiatury. Na ten pomysł kolega teddy_6 przystał i dzięki temu znalazł błąd „w druku” czyli źle podłączoną linię sygnałową.
Jako nośnik danych, czyli pamięć masową ZX-97 Lite i jego starszy brat wykorzystuje magnetofon kasetowy, ale czy w dzisiejszych czasach jest to uzasadnione?
teddy_6
W tak zwanym ‘’międzyczasie”, czekając na klawisze do klawiatury z ebay’a, zmontowałem sobie TZXDuino. Dobrze, że miałem jakąś starą kartę SD 1GB, bo szybsze karty (mam klasy 10) nie chcą chodzić – zgodnie zresztą z tym co napisał autor oprogramowania. Sprawdzałem oscyloskopem na wyjściu układu – impulsy są – powinno działać . Użyłem Arduino Pro mini, za parę złotych kupiłem gniazdo SD. Zasilanie 3,3V więc nie musiałem dopasowywać poziomów napięć Arduino i karty SD. Wyświetlacz LCD z modułem i2c zasilane są z 5 V.
teddy_6
W tygodniu wydrukowali mi w drukarni klawisze na białej folii przylepnej. Wyciąłem i nakleiłem. Nawet nie najgorzej to wyszło – ale gdybym tak miał starą klawiaturę z klawiszami mechanicznymi… wyrzuciło się kiedyś… Jednak trochę twarde te przyciski – i przekręcają się trochę. Ale nic to – może kiedyś zorganizuję.
Przedstawiam ZX-97 Lite by teddy_6
Oto mała galeria przedstawiająca komputer ZX-97 Lite by teddy_6, jak widać bohater prezentuje się całkiem fajnie.
Komputer pobiera około 170 mA, czyli przy dość mało i działa całkiem wyśmienicie o czym możecie się przekonać oglądając poniższy film.
Praca skończona
W międzyczasie otrzymałem kilka maili z nieco inną tematyką, ale to już tematy na kolejne wpisy na tym blogu.
Pozdrawiają PAMPKIN oraz teddy_6 (kolejność NICKów alfabetyczna) 😉