Tester Z80.

  Pod koniec 2024 roku opracowałem tester procesorów Z80. Zgodnie z nazewnictwem używanym w MIK-ach miał to być "Super Tester Z80" (tak jak Super Emulator czy Super Pozytywka). Założyłem, że będzie on automatycznie zwiększał częstotliwość taktowania aż do zawieszenia systemu. Niestety napotkałem opór materii i odłożyłem prace na potem.


Niedawno mój CA80 RCbus zaczął sprawiać kłopoty w czasie rozruchu, więc próbowałem ustalić źródło błędów, podmieniając moduły. Okazało się, że nie wszystkie kombinacje chcą ze sobą współpracować. Nie znalazłem przyczyny, ale przypomniałem sobie o testerze. Zmieniłem pierwotne założenia i wszystko zaczęło funkcjonować.

CA80 jako tester Z80
Super tester Z80.

 

Do zbudowania testera potrzebne są trzy moduły: CA80-CPU, CA80-SYS I/O oraz "bootloader". Oczywiście konieczna jest również płyta bazowa, wyświetlacz CA80 i klawiatura (wystarczą klawisze [G] i [=]), zasilacz 5V i terminal (może być wirtualny z FTDI lub karta FabGL lub inna z monitorem VGA). Oprogramowanie należy umieścić na karcie SD.

Bootloader należy zaprogramować nieco zmodyfikowanym programem CA80-BEZ-ROM, który można używać tak samo jak wcześniejsze wersje. Różnica polega tylko na obniżeniu CLK i możliwości jego zwiększenia. Obsługa plików z SD, MIKSID i inne funkcje pozostały bez zmian. Jeżeli chcemy używać CA80, to wystarczy po rozruchu wcisnąć przycisk "User", co spowoduje zwiększenie CLK o jeden stopień. W zależności od zastosowanych komponentów możemy zwiększać aż do 8 MHz (2.66 MHz, 4 MHz lub 8 MHz). Inne wartości CLK też są możliwe do sprawdzenia, ale wymagają odłączenia CLK z modułu boot i użycia innego generatora np. w module MIK89. Można tam włożyć generatory o dowolnej częstotliwości (6 MHz, 10 MHz, … 20 MHz) jednak należy wziąć pod uwagę możliwości pozostałych podzespołów. Może się okazać, że przestanie działać klawiatura lub wyświetlacz, bo 8255 będzie zbyt wolny. Oczywiście nie ma sensu testować z częstotliwością 10 MHz procesorów, które nie działały już przy 8 MHz.

Jeżeli komputer nie wystartuje po włączeniu, można spróbować wcisnąć Reset na module "boot". Na filmie raz się zdarzył taki przypadek. Oczywiście mam kilkadziesiąt procesorów, które nie chcą działać i nie pomaga wyłączanie ani inne zabiegi. Czasem po oględzinach okazuje się, że brak którejś nóżki i trzeba ją przylutować. Niestety zdarzają się też niesprawne egzemplarze. Zakładam, że jeżeli stare NMOS-y startują bez problemu i pracują przy 4 MHz, to każdy sprawny Z80 powinien przejść ten test.

Z80 CPU.
Testowane procesory.


Opracowałem nieco zmodyfikowany moduł CPU ("Tester Z80"), bo do zwykłego nie pasuje podstawka ZIF. Oprócz podstawki procesora należy zamontować w nim tylko RAM, rezystor 22R i kondensatory blokujące oraz drabinkę 4x10k pod spodem. Sygnał MREQ można podłączyć zwierając piny 3 i 4 w miejscu gdzie powinien być 74HC00. Jeżeli mamy kompletny moduł "boot", możemy użyć klawiaturę dotykową lub z terminala. Należy wtedy połączyć moduły "boot" i SYS I/O.

Moduł Tester Z80
Prawie nie zmieniony CA80-CPU.


Program TestCA80 można uruchomić również w oryginalnym CA80. Należy jedynie zadbać o to, by pod adresem EME8 był rejestr, który możemy zapisać i odczytać (warunek poprawności testu). Można też zmienić ten adres na np. PSYS+1 (PORTB). Zostanie tam wpisany jeden bajt, co spowoduje błędne działanie wyświetlacza przez max 2 ms. Chyba nikt tego nie zauważy. Oczywiście nie będzie działać zwiększanie CLK, bo do tego jest potrzebny moduł "boot". Przed testem warto sprawdzić dokładność zegara systemowego, bo na jego podstawie obliczane jest CLK. Można to zrobić zwykłym stoperem. Jeżeli NMI mamy poprawne, to program wyliczy właściwą wartość CLK. Pomiar nie jest idealny, bo długość obsługi przerwania NMI zależy od stanu liczników czasu (SETSEK, SEK, MIN itd.).


W czasie nagrywania materiału kłopotliwe okazało się wkładanie i wyjmowanie układu z podstawki. Przełączenie dźwigni w podstawce ZIF wymaga użycia siły, co powoduje przemieszczanie się modułów. Prawdopodobnie przymocowanie do sztywnej podstawy rozwiązałoby problem. Doszedłem do wniosku, że lepiej sprawdzi się wersja "mini". Podstawka procesora jest tam na środku płytki, co sprawi, że całość będzie stabilna. Tester utworzą wtedy dwie płytki: CA80-mini i mini-boot. Do tego wyświetlacz, klawiatura i terminal. Wystarczy trochę odchudzić układ i zamienić footprint procesora na ZIF.


Komentarze

Popularne posty z tego bloga

Uruchamiamy CA80 na RCbus.

Magnetofon CA80.