speccy.pl
Facebook Like


SPECCY.PL

[SPECCY.PL PARTY 2023.1]

[WIKI SPECCY.PL]
Polecamy

KOMITET SPOŁECZNY KRONIKA POLSKIEJ DEMOSCENY
PIXEL HEAVEN 2023
AYGOR
Forum ZX Spectrum
Zawartość panelu chwilowo niedostępna
Archiwum plików ZX Spectrum
Nawigacja
ZXTester
ZXTester
by ZIPP

Dlaczego akurat taki interfejs i skąd ten pomysł? W sumie nie wiem, może miałem więcej wolnego czasu, kolejny klon ZX Spectrum zmontowany a następny interfejs uruchomiony. Był więc czas, żeby odświeżyć i ponaprawiać własną, skromną kolekcję komputerów. Z racji tego, że kupowałem wcześniej przeważnie niedomagające egzemplarze, była potrzeba przetestowania i ewentualnej naprawy.

ZXTester Interfejs testowy komputerów ZX Spectrum

Jak wiadomo, w komputerach typu ZX Spectrum, zwłaszcza modelach zasilanych jednonapięciowo, newralgicznymi podzespołami są kondensatory elektrolityczne. Potrafią one przysporzyć sporo problemów a w niektórych przypadkach doprowadzić do uszkodzenia innych podzespołów przez niestabilną pracę przetwornicy napięcia, która zasila całość kilkoma napięciami z dość wąską tolerancją. 

I co z tym bałaganem zrobić? Zmierzyć. Najlepiej wszystkie napięcia jednocześnie bez potrzeby rozkręcania obudowy. Na złącze krawędziowe komputera są wyprowadzone wszystkie napięcia zasilające, więc czemu nie podłączyć jakiegoś zewnętrznego urządzenia mierzącego właśnie do tego złącza? Pomysł był dobry, ale tam są też inne ciekawe sygnały. Przecież można również zbadać, czy układ generowania sygnału zegarowego działa poprawnie. No to do założeń wstępnych dołożyłem pomiar częstotliwości na linii CLK. To co jeszcze można by tu zmierzyć? Wtedy z pomocą przyszli forumowicze ze swoimi pomysłami i doszedł jeszcze sygnał M1 do analizowania. Padła też sugestia, żeby tester posiadał próbnik stanów logicznych, pomocny w badaniu przebiegów na szynach danych czy adresowych. No i urodził się oparty na trzech diodach świecących. Ktoś inny rzucił propozycję wyprowadzenia sygnału wideo na zewnątrz, i tak się stało. W sumie ciekawych propozycji było więcej, ale na pierwszy raz nie ma co przesadzać. Tak powstał zarys interfejsu oparty o mikrokontroler Atmega328, wyświetlający wyniki pomiarów z sześciu wejść analogowych na małym wyświetlaczu OLED.

A co z resztą podzespołów komputera, które wymagają sprawdzenia: pamięć, ULA, klawiatura? Już dawno ten problem został rozwiązany przez innych w postaci kartridża z wgranym odpowiednim programem do testowania. Więc czemu nie skorzystać z dobrych i sprawdzonych pomysłów? Oczywiście nie jednym a czterema programami wybieranymi przełącznikiem. Ma być na bogato. Mój interfejs właśnie rozrósł się o kolejny moduł. I tu pojawił się problem. Tester miał być uniwersalny i w miarę prosty w użyciu. Uniwersalny, czyli pasujący do całej rodziny ZX Spectrum. Niestety modele +2A/B i +3 wymagają odmiennego sterowania liniami wyłączającymi wewnętrzny ROM komputera w celu uaktywnienia programu testującego zapisanego na kartridżu podłączanym z zewnątrz. Tym razem z pomocą przyszedł autor interfejsu pod nazwą Dandanator Mini, który wymyślił prosty sposób na wykrycie typu testowanego modelu. Nie było więc problemu, żeby mikrokontroler testera zajął się też obsługą linii ROMCS. Dodatkowo dostał za zadanie wykrywanie zmian przełącznika ROM-ów i resetowanie komputera w odpowiednim momencie. Różnych innych pomysłów na dodatkowe funkcje miałem sporo, lecz spojrzawszy na wszystko chłodnym okiem doszedłem do wniosku, że nie ma co wymyślać ciągle nowych funkcji, bo pomimo, że to najprzyjemniejszy etap, to trzeba w końcu zacząć materializować projekt.

Zacząłem rysować schemat – oczywiście znowu problem. Za mało wyjść ma zastosowany przeze mnie mikrokontroler. Dać większy oznaczało zwiększenie kosztów i wymiarów całości, bo mówimy tu o elementach do montażu przewlekanego. Miało być kompaktowo i niby retro – no to są problemy. Parę godzin myślenia, sugestie forumowiczów i udało się wszystko rozplanować jak chciałem.

Kolejnym etapem było projektowanie PCB i ciągłe zmiany w rozmieszczeniu elementów na płytce. Długie godziny przed komputerem wymagające maksymalnego skupienia, finał i wysyłka plików produkcyjnych do płytkarni.

Płytka drukowana Projekt płyty

W czasie, gdy płytki były produkowane mogłem zająć się pisaniem programu dla mikrokontrolera obsługującego tester. Wcześniej wspominałem, że miało być retro, w sumie nie wiem po co, bo to same problemy, więc logicznym wyborem języka programowania był Basic. Początek był miły i przyjemny, problemy programistyczne udało się rozwiązać dość szybko, ale zbliżając się do końca zauważyłem z pewnym niepokojem, że zaczyna brakować pamięci programu w mikrokontrolerze. I po co był mi ten pamięciożerny Basic, trzeba było programować w C. Ale jak tu nie wykorzystać środowiska programistycznego kupionego dawno temu za ciężkie pieniądze, a które leżało od dłuższego czasu nieużywane. Pozostała optymalizacja i „dopychanie kolanem” kodu w pamięci, żeby wszystko pomieścić. Pomogła też, z bólem serca, rezygnacja z niektórych zaplanowanych wcześniej funkcjonalności i wodotrysków.

W międzyczasie powstała płytka testowa do sprawdzania różnych procedur podczas pisania programu. Wygląda ubogo w stosunku do finalnej wersji, ale swoje zadanie spełniła celująco. Niestety nie obyło się bez błędów w schemacie i na PCB, więc po koniecznych poprawkach pliki wylądowały powtórnie w fabryce.

No dobrze, na razie to kawałek laminatu z elementami elektronicznymi narażony na uszkodzenia mechaniczne lub zwarcia. Wypadałoby jakąś obudowę przysposobić, żeby interfejs służący do testowania komputera nie spowodował jego awarii. To dopiero byłby niefart.

Z pomocą przyszła mi drukarka 3D, którą zakupiłem kilka miesięcy wcześniej. Jest to model wybitnie budżetowy, więc wymagał dużo samozaparcia i cierpliwości, żeby w końcu zaczął drukować na akceptowalnym poziomie.

Kolejnym wyzwaniem było opanowanie programu CAD, a przede wszystkim wybór odpowiedniego, na początek drogi w świat modelowania 3D. Po kilku nieudanych próbach zaprzyjaźnienia się z produktami różnych firm, natknąłem się na Fusion 360 Autodesku. To był chyba strzał w dziesiątkę. Jest to kompletny zintegrowany system CAD/CAM/CAE działający w chmurze, na tyle intuicyjny, że początkujący użytkownik, czyli ja, po kilku dniach treningu i opanowaniu podstawowych funkcji jest w stanie zaprojektować własną obudowę. Najbardziej docenianą przeze mnie opcją w programie jest linia czasowa, która pozwala modyfikować w każdej chwili każdy krok wykonany w projekcie. Jest to szczególnie pomocne, gdy ma się niewielką wiedzę o projektowaniu 3D, ciągle popełnia jakieś błędy i zmienia koncepcję co chwilę. Ale w końcu obudowa powstała i spełnia swoje zadanie znakomicie. Elektronika dostał swoje wdzianko.

Projekt obudowy Projekt obudowy w Fusion 360 Autodesk

Nie zapomniałem pochwalić się na forum swoim interfejsem testowym, w końcu jego bywalcy mieli trochę wpływu na obecny kształt. Ze swej strony chciałem im podziękować za zainteresowanie tematem. Nie ukrywam, że miło były usłyszeć przychylne opinie od osób będących w posiadaniu kilku egzemplarzy. Dzięki trojacek, pear, andy i reszta braci spectrumowej.

Menu główne Menu główne

Plany na przyszłość? Wszystkie elementy SMD, zmiana mikrokontrolera na szybszy z dużo większą  pamięcią, wyświetlacz kolorowy o przekątnej 2÷3 cala, analizator stanów logicznych szyny danych, adresowej i linii pomocniczych obrazujący stany na LCD, frame grabber wyjścia wideo i co tam jeszcze przyjdzie mi do głowy.

Najprawdopodobniej pozostanie to jednak w sferze marzeń.

Brak komentarzy. Może czas dodać swój?
Dodaj komentarz
Zaloguj się, aby móc dodać komentarz.
Oceny
Tylko zarejestrowani użytkownicy mogą oceniać zawartość strony
Zaloguj się , żeby móc zagłosować.

Brak ocen. Może czas dodać swoją?