Z miłości do elektroniki – kalkulator na układach TTL w wykonaniu Rafała Wiśniewskiego

Jednym z prelegentów drugiej, wiosennej edycji konferencji Hardware Design Masterclasses 2024 we Wrocławiu, będzie hobbysta elektronik amator Rafał Wiśniewski. Zaprezentuje on zbudowany przez siebie cztery lata temu kalkulator, który nie zawiera żadnego układu scalonego takiego jak: mikroprocesor, CPLD, FPGA, itd. Nie ma również typowej pamięci RAM ani ROM.

Cała logika sterująca wykonana jest na podstawowych układach cyfrowych w technologii TTL, takich jak: bramki logiczne, bufory, multipleksery, dekodery, przerzutniki, liczniki; rejestry przesuwające, dzielniki częstotliwości, komparatory i sumatory. Prace nad projektem trwały ponad 5 lat i 6 miesięcy, łącznie około 6 tysięcy godzin, a same tylko komponenty kosztowały autora 11 tys. PLN. Obecnie Rafał – pasjonat od dziecka zakochany w elektronice – projektuje na układach TTL kolejne urządzenie – komputer, który w założeniach jest już urządzeniem uniwersalnym.

Rafał Wiśniewski, hobbysta elektronik

Uczestnicy konferencji, organizowanej przez Rafała Stępnia i firmę DoktorTronik, będą mogli dokładnie obejrzeć autorski kalkulator zmontowany na ośmiowarstwowej płytce o wymiarach 72 cm na 50 cm. O skali przedsięwzięcia świadczy wykonany z drewnianych płyt stojan urządzenia – wysoki na 70 cm, szeroki na 90 cm i głęboki na 30 cm. Prototyp działa do dzisiaj, ale ponieważ został wykonany „na miarę” nie można go rozbudowywać z uwagi na zamkniętą architekturę.

Urządzenie składa się z około 3,5 tys. elementów elektronicznych, między innymi z 477 układów scalonych, 1700 diod przełączających, 300 rezystorów, 160 kondensatorów, 270 rezystorów, 400 diod LED oraz 105 wyświetlaczy LED siedmiosegmentowych 1”. Jest mikro komputerkiem mającym do dyspozycji 59 instrukcji, z których – jak twierdzi Rafał Wiśniewski – każda może zawierać od jednej do kilku funkcji wykonawczych oraz jedną z 39 instrukcji warunkowych.

— To najbardziej skomplikowane urządzenie, jakie stworzyłem w swoim życiu. Można powiedzieć, że było zwieńczeniem moich umiejętności. Dzięki Rafałowi Stępniowi będę miał szansę zaprezentować je profesjonalistom i podzielić się z nimi wszystkimi aspektami technicznymi oraz problemami, z którymi borykałem się podczas projektowania, konstruowania i uruchamiania. Mówiąc szczerze nigdy nie przypuszczałem, że będę miał zaszczyt uczestniczyć w tego rodzaju konferencji. To dla mnie, jako szalonego amatora elektroniki, wielkie wyróżnienie — podkreślił Rafał Wiśniewski, który dwa lata temu chciał pokazywać swój prototyp w szkołach i uczelniach technicznych, ale nie spotkał się z zainteresowaniem.

Jestem pozytywnie zakręconym elektronikiem amatorem. Po wielu latach długiej tułaczki po płaszczyźnie mojego hobby w końcu – dekadę temu zrozumiałem co jest dla mnie najcenniejsze, najistotniejsze. Wróciłem wirtualnym wehikułem czasu do swojego dzieciństwa. Do okresu, kiedy wszystko co związane z szeroką pojętą elektroniką widziałem w bardzo intensywnych barwach, a pierwsze doświadczenia związane z raczkowaniem w tej dziedzinie postrzegałem wyostrzonymi wszystkimi zmysłami. Te młode lata zakorzeniły we mnie głód wiedzy, nieprzeniknioną ciekawość odkrywania tajemnic elektroniki oraz niepohamowaną chęć tworzenia, konstruowania, uruchamiania swoich autorskich projektów. Zdałem sobie sprawę, że dotknąłem czegoś, co nie jest do końca namacalne, ale istnieje – tym czymś jest szczęście, którego nie da się kupić, stworzyć z niczego ani posiąść w nielegalny sposób… To trzeba doświadczyć, odkryć i zrozumieć. Choć dla wielu to, co tworzę i czemu poświęcam ogromną ilość czasu jest niezrozumiałe, niepotrzebne, bezsensowne i dawno już odkryte, dla mnie jest bezcenne. Jestem szczęśliwy, że się realizuję i przełamuję swoje własne ograniczenia.

Od trzech lat pracuję nad bardzo rozbudowanym komputerem, również na sentymentalnych dla mnie układach TTL — dodał Rafał Wiśniewski wspominając konstruowane przez siebie w młodzieńczych latach urządzenia elektroniczne. — Komputer będzie o rząd wielkości bardziej skomplikowany niż poprzedni projekt. Z tego co wiem, nikt na świecie do tej pory w pojedynkę i całkowicie amatorsko nie stworzył tak rozbudowanego i zaawansowanego komputera, jaki mam zamiar zbudować z podstawowych cegiełek małej i średniej skali integracji. Jestem szalony? Zapewne tak, ale to szaleństwo, determinacja i ciągła nauka są dla mnie niewyczerpywalnym paliwem. Postrzegam siebie raczej jako elektronicznego artystę niż człowieka próbującego zarobić na swoich dziełach. I ten stan kocham! Uwielbiam przebywać w swoim świecie konstruktora – może to niemodne, może niezgodne z dzisiejszymi czasami, które wyznaczają pęd i dorabiają siwą brodę już w locie nowym technologiom, może… Lecz to nieistotne bo odpłynąłem daleko stąd i nie muszę być z tym nierozerwalnie związany – w swojej „elektronicznej” decyzyjności  jestem całkowicie wolnym człowiekiem.

Funkcje kalkulatora według opisu Rafała Wiśniewskiego

Wprowadzanie cyfr od 0 do 9 oraz ciągu 00, załączanie punktu dziesiętnego, cofanie wpisywanych wartości, wprowadzanie wyniku z powrotem do aktywnego rejestru, wyświetlanie liczby PI, zamiana wartości argumentów rejestrów wprowadzania, kopiowanie wartości aktywnego rejestru wprowadzania do rejestru pamięci, kopiowanie wartości rejestru pamięci do aktywnego rejestru wprowadzania, zmiana znaku liczby i kilka pomniejszych.

Kalkulator obsługuje następujące działania: dodawanie, odejmowanie, mnożenie, dzielenie, potęga kwadratowa, dzielenie przez odwrotność, pierwiastek kwadratowy oraz kompleksowe działania na procentach i na liczbach ujemnych. Urządzenie zgłasza wyjątki błędu ERROR takie jak: pierwiastek kwadratowy z liczby ujemnej oraz dzielenie przez zero. Wszystkie wybrane funkcje obrazowane są na matrycy diod LED, która wyświetla odpowiedni symbol. Klawiatura składa się z 33 w pełni interaktywnych przycisków. Po podświetleniu są aktywne i reagują na daną sytuację w czasie rzeczywistym, np. nie można wprowadzić zera do aktywnego rejestru wartości, gdy nie ma włączonego punktu dziesiętnego lub nie ma już wprowadzonej przynajmniej jednej cyfry większej od zera. Kalkulator ma cztery rejestry: wprowadzania wartości A i B (w trybie standardowym 12 cyfrowe), pamięci M (12 cyfrowe) oraz rejestru wartości W (24 cyfrowy), dzięki czemu mnożenie dwóch liczb 12 cyfrowych zawsze da maksymalny wynik 24 cyfrowy, bez przepełnienia.

Maszyna posiada tryb podglądu przetwarzających się algorytmów w czasie rzeczywistym (rejestry wprowadzania wartości A i B są wówczas 24 cyfrowe). Tryb ten może być automatyczny, co pozwala ze zwolnioną prędkością zegara obserwować przetwarzające się instrukcje (trybów ustawień prędkości jest 16) lub ręczny, gdzie pojedyncze impulsy zegarowe podawane są przeznaczonym do tego przyciskiem. Poza obrazowaniem na wyświetlaczach rejestrów przetwarzającego się algorytmu, tryb ten uruchamia jeszcze dodatkowo 16 wyświetlaczy, które dla odróżnienia są w kolorze zielonym (pozostałe „robocze” są czerwone). Wyświetlacze te pokazują następujące informacje: adres pamięci ROM i dane z tej pamięci w kodzie szesnastkowym, wartości dziesiętne trzech liczników specjalnych (licznik uniwersalny, licznik podstawowych operacji arytmetycznych, licznik ilości obliczonych liczb pierwiastka), wartości dziesiętne: licznika ilości multiplikacji, liczników powtarzanych się odejmowań dla dzielenia i pierwiastka).

Oprócz tego uaktywnia się również 36 diod LED „diagnostycznych”, które wyświetlają chwilowy stan obwodów zaangażowanych w przetwarzający się algorytm. Są to między innymi sygnały z sekwencera, sygnały uruchomionych bieżących wariantów, sygnały egzekwowania instrukcji, sygnały obsługujące pamięć, sygnały relacji między wartościami liczb rejestrów A i B oraz między ich punktami dziesiętnymi, sygnały z arytmometru oraz sygnały załączonych funkcji pomocniczych. Również w tym trybie uaktywnia się 240 diod LED w pięciu kolorach. Diody te sprzężone są bezpośrednio z kolumnami pamięci ROM, która jest wykonana na około 1100 diodach 1N4148. Posiada organizacje: 240 na 16 bitów, gdzie pierwsze osiem bitów, licząc od LSB, ustawia multipleksery punktów dziesiętnych, multipleksery rejestrów przesuwnych (w tym przypadku są pamięcią RAM), tryb pracy zespołów rejestrów przesuwnych, multipleksery arytmometru. W komórkach tych mogą się również znajdować 6 bitowe adresy funkcji warunkowych, 8 bitowe adresy skoków oraz dane w postaci BCD dla liczników specjalnych. Dane te są argumentami wejściowymi dla funkcji instrukcji wykonawczych. Kolejny obszar jest 6 bitowym kodem instrukcji warunkowej, natomiast ostatni 2 bitowy obszar, kończąc na bicie MSB, służy do warunkowania instrukcji wykonawczych.

Druga edycja konferencji Hardware Design Masterclasses odbędzie się 15 kwietnia 2024 roku we Wrocławiu – informacja i zapisy na stronie Druga edycja konferencji Hardware Design Masterclasses już w kwietniu

Rozmawiała i opracowała Agnieszka Kubasik

O autorze