Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Mikrokomputer Cosmac Elf

hvman 05 Cze 2012 22:30 19550 26
  • Mikrokomputer Cosmac Elf

    Witam.

    Przedstawiam Wam "replikę" mikrokomputera Cosmac Elf. Konstrukcja ta została przedstawiona w sierpniu 1976 na łamach amerykańskiego czasopisma Popular Electronics, tego samego, w którym ponad półtora roku wcześniej był zaprezentowany Altair 8800, a więc w czasach, w których dopiero rodziła się idea komputera osobistego. "Skany" artykułu dostępne są pod adresem: http://incolor.inebraska.com/bill_r/elf/html/elf-1-33.htm

    Cosmac Elf jest stosunkowo prostą konstrukcją opartą o mikroprocesor RCA CDP1802. Brak tutaj pamięci ROM z monitorem, więc wprowadzanie programu odbywa się przy pomocy wbudowanego w procesor układu DMA wprost do pamięci RAM. Jej pojemność wynosi tylko 256 bajtów. Wprowadzanie danych odbywa się to za pomocą 8 przełączników zadających pojedynczy bajt w kodzie binarnym. Nie ma możliwości skoku pod określony adres, więc w razie pomyłki trzeba też odpowiednio ustawić przełączniki sterujące LOAD i MP (memory protect) i "wyklikać" odpowiednią ilość przyciskiem IN. Wyświetlacz heksadecymalny pracuje w trybie zatrzaskowym, więc nie wyświetla na bieżąco stanu przełączników, a jedynie po wprowadzeniu danej do pamięci. Służy również wyświetlaniu zawartości pamięci w czasie jej przeglądania oraz dostępny jest z poziomu programu. Do dyspozycji programisty jest też dioda LED.

    Sam mikroprocesor jest konstrukcją z początku roku 1976 i jest pierwszym, jaki powstał w technologii CMOS. Z tego względu był chętnie używany w przemyśle kosmicznym, gdzie oferował mały pobór prądu, a jego specjalne wersje zapewniały odporność na promieniowanie kosmiczne. Ciekawostką jest fakt, że znalazł się na sondzie Galileo i był na wyposażeniu części instrumentów. Jego architektura jest dość odmienna od współczesnych mikroprocesorów, większość instrukcji stosuje tylko pośredni tryb adresowania i to głównie z użyciem pamięci. Ma kilka wejść, które mogą być testowane przez odpowiednie instrukcje warunkowe, kilka wyjść wybierających urządzenia We/Wy oraz jedno bistabilne sterowane przez własne dwie instrukcje (włącz/wyłącz). Szyna adresowa jest multipleksowana. Programowanie w języku maszynowym jest bardzo wygodne, gdyż wystarczy zazwyczaj podać nr rejestru, daną czy adres obok numeru instrukcji (typu 5N, 30 NN itp) i nie trzeba nic kodować binarnie, a następnie zamieniać na liczby szesnastkowe.

    Pomysł na budowę Cosmac Elfa zrodził się niemal 4 lata temu. Z początku połączenia miały być wykonane za pomocą lutowania kynaru do odpowiednich pinów, jednak płytka perforowana (strip board), jaką kupiłem miała paski miedziane nie w tym kierunku co trzeba i lutować by trzeba bezpośrednio do pinów podstawek, wcześniej pozbywając się miedzi. Wpadłem wtedy na pomysł użycia techniki połączeń owijanych (wire wrap), jednak ceny odpowiednich podstawek odłożyły budowę aż do teraz, kiedy to udało mi się zdobyć je niskim kosztem. Dwa dni nawijania, grubo ponad 300 połączeń i robota skończona.

    Panel z przełącznikami wykonany jest z aluminium. Napisy to produkt uboczny trawienia w NaOH po szczotkowaniu - płytka pokryła się ciemnozielonym nalotem. Pomyślałem, że można to wykorzystać i po naniesieniu suchej kalkomanii w odpowiednich miejscach, nalot wytrawiłem w kwasie fosforowym. Niestety kalkomania nie była zbyt trwała, a powierzchnia płytki mocno chropowata, więc napisy są jakie są. Listewki są wykonane z bejcowanego i woskowanego drewna sosnowego.

    Jedyne zmiany, jakie dokonałem w stosunku do oryginalnej konstrukcji to dodanie rezystora podciągającego do linii /MWR, zastosowanie stabilizatora 7805 zamiast LM309K oraz wyświetlacza TIL311 zamiast HP 5082-7340.

    Nie jestem w stanie podać dokładnego kosztorysu, ale jeśli chodzi o same części i koszt ich wysyłki, to wyniosło mnie to trochę ponad 300zł.

    Całość ruszyła od razu, jedyny problem to działanie przełącznika MP, który przełączany zbyt wolno przez chwilę utrzymywał linię /MWR wiszącą w powietrzu, co doprowadzało do niezamierzonego wprowadzenia danej (działanie podobne do przycisku IN, tylko dana była wprowadzana do aktualnie wyświetlanej komórki, a nie następującej). Rozwiązaniem problemu było podciągnięcie linii rezystorem do zasilania. Komputer działa idealnie, wprowadzanie programu wymaga cierpliwości i precyzji, a nieco nietypowa architektura CDP1802 wymaga przyzwyczajenia. Jednak obcowanie z ponad 35-letnią konstrukcją z czasów początku komputeryzacji w pełni rekompensuje jego wady, a nawet zmienia w zalety oferując ówczesny klimat ;)

    Mikrokomputer Cosmac Elf Mikrokomputer Cosmac Elf Mikrokomputer Cosmac Elf

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
  • #2
    zygfryd.W
    Poziom 20  
    No kolego mnie wpadł wykrywacz metali, swoją drogą solidna i sprawdzona konstrukcja ale w środku same niebieskie przewody i zbaraniałem, a tutaj takie poświęcenie i samo zaparcie:) tylko po gratulować:) Wielki szacunek dla ciebie:)
  • #3
    hvman
    Poziom 18  
    Nie było tak źle, o ile samo nawijanie to tylko kwestia wykonania połączenia i zaznaczeniu go na schemacie to problem pojawił by się przy debugowaniu. Do tego zgodnie ze sztuką nie należy robić połączeń w łańcuchu a poziomowo, u mnie było z tym różnie. No ale na szczęście wszystko działa (jeszcze) : )
  • #4
    tplewa
    Poziom 38  
    Fajna konstrukcja. Trzeba miec zapal do sprzetu retro i cierpliwosc w zbieraniu elementow :)
  • #5
    Exploboy
    Poziom 15  
    No dobra, a teraz pytanie podstawowe - co można za jego pomocą zrobić? Do czego się przyda? Jakie ma zastosowanie? Jeśli tylko do klikania i patrzenie na mrugający wyświetlacz to moim zdaniem, nie było warto, nawet dla zyskanego doświadczenia. Poza tym, konstrukcja bardzo ciekawa i wykonana estetycznie i w duchu 'tamtych' lat.
  • #6
    hvman
    Poziom 18  
    Wszystko co robię hobbystycznie ( i nie tylko) robię dla samej przyjemności tworzenia i uruchamiania. Oczywiście można podać zastosowania, a te są niemal nieograniczone, wszak mamy tu mikroprocesor ale ja właśnie zbudowałem dla tego mrugającego wyświetlacza i tych przełączników : )
  • #7
    tplewa
    Poziom 38  
    Exploboy napisał:
    Jeśli tylko do klikania i patrzenie na mrugający wyświetlacz to moim zdaniem, nie było warto, nawet dla zyskanego doświadczenia.


    A czy wszystko co sie robi to musi byc warto ? Nie mozna czegos zrobic bo sie chce, bo sie ma frajde z tego co sie zrobilo - mimo ze jest to nieoplacalne.

    Zreszta na tym polega hobby - zazwyczaj bardziej skomplikowane uklady wychodza wiecej niz by sie kupilo gotowca w sklepie...
  • #8
    leonow32

    Poziom 30  
    Wygląda bardzo ciekawie ale też mnie zastanawia funkcjonalność tego komputerka. Co na tym można zrobić? Jakiś zegarek albo coś?

    Tak czy inaczej szacuneczek :)
  • #9
    LechU
    Poziom 13  
    Czy mógłby Kolega podzielić się informacją gdzie i za ile nabył CDP1802?

    Odnośnie zarzutów czy się opłaca robić tego typu urządzenia moja odpowiedź brzmi: zdecydowanie się nie opłaca ale jeszcze bardziej ZDECYDOWANIE WARTO takie coś zmajstrować gdyż choćby własna satysfakcja jest bezcenna.
  • #10
    hvman
    Poziom 18  
    uP kupowałem za ok 65zł z wysyłką na eBay, ale to było 4 lata temu. Dzisiaj można kupić za 10zł plus 15zł wysyłka od firmy utsource, czy to na ebay czy na http://www.utsource.net/ Ogólnie ciekawy sklep, maja kupę rzadkich i dawno nie produkowanych układów scalonych za dość rozsądne ceny.
  • #11
    Urgon
    Poziom 36  
    AVE...

    Mikroprocesory RCA 1802 były używane gęsto i często w sondzie Gallieo, oraz w satelitach aż do lat dziewięćdziesiątych, głównie ze względu na posiadanie wersji robionej na szafirowym podłożu, odporniejszej na promieniowanie kosmiczne, oraz bardzo energooszczędnej, jak na tamte czasy. Konsola RCA Studio II też była na tym układzie. Ponadto stworzono dla samego Cosmac ELF i ELF II kompilatory TinyBASIC, Forth i paru innych języków...

    Moim zdaniem projekt ciekawy, i wartościowy. ELF jest komputerem jak najbardziej użytecznym i o znacznych walorach edukacyjnych. Wielki plus za odtworzenie oryginalnej konstrukcji w tym zapomnianym przez większość stylu. Przydałoby się jeszcze dodanie oryginalnego generatora obrazu w formacie NTSC...
  • #12
    Tommy82
    Poziom 39  
    Jestem na tak. Podoba mnie się to.

    leonow32 to nie o funkcjonalność chodziło wtedy w tym urządzeniu a o to ze jest i "mryga" ;)
    I to jest na swój sposób piękne. Dziś komputer to jest N warstw abstrakcji po drodze.
    Dziś nawet nieźli specjaliści w swoich dziedzinach nie wiedza jak działa komputer bo nie muszą, no może z grubsza.
    To jest sprzęt jeszcze z przed ery gdy prawdziwi mężczyźni sami pisali sterowniki.
    Ale w gruncie rzeczy nie zależnie od tego co mamy na biurku to gdzieś tam na dole w najniższej warstwie działa tak samo
  • #13
    Pablo2015
    Poziom 18  
    Czy nie lepiej zamiast tych przełączników dźwigniowych zastosować jakieś uSwitch'e albo przełączniki krańcowe? Chyba byłoby wygodniej;p

    Pzdr
  • #14
    mungo
    Poziom 19  
    Tak bardziej przypomina konstrukcje z artukułu
  • #16
    lechoo
    Poziom 39  
    Moim skromnym zdaniem 8-przyciskowa klawiatura binarna byłaby tu idealnym rozwiazaniem (w końcu mamy 10 palców), do tego dziewiaty przycisk (IN) naciskany kciukiem. Przyspieszyłoby to znacznie wprowadzanie kodu maszynowego.

    Przy okazji - czy pamięta ktoś z Was rodzimy komputerek CA80?
  • #17
    tplewa
    Poziom 38  
    W sumie CA80 pamiętam nawet zmajstrowałem coś podobnego...

    Choć jak już ułatwiać wprowadzanie kodu to dorobić jakiś interfejs do PC, ale wtedy układ straci trochę na swoim klimacie. Jakimś rozwiązaniem było by może dodanie czytnika taśmy perforowanej ;> - ale to też już nie oryginał.
  • #19
    Gigantor
    Poziom 18  
    Piękna rzecz. Bardzo lubię stare/nowe konstrukcje i widać, że przyłożyłeś się, by wyglądało jak "z epoki".

    Mam pytanie. Napisałeś:

    hvman napisał:
    [...] ceny odpowiednich podstawek odłożyły budowę aż do teraz [...]


    Czy chodzi o jakieś specjalne podstawki do połączeń owijanych? Bo na oko wyglądają na zwykłe precyzyjne.

    Pozdrawiam!
  • #20
    hvman
    Poziom 18  
    Oryginalne podstawki do połączeń owijanych właściwie wyglądają identycznie jak te precyzyjne. A co do podstawek, one w rzeczywistości są przerobionymi precyzyjnymi, ponieważ te do owijania jakie miałem były 64 pinowe, więc musiałem podmienić piny.

    Co do klawiatury, te na przełącznikach zapewniają informację zwrotną i nie wymagają diod LED i dodatkowych układów. Przełączniki były również stosowane w mikrokomputerach jak i mainframe. Jedyny sens klawiatury to tylko szesnastkowa (której budowa zresztą była opisana w kolejnych wydaniach magazynu), do tego warto mieć jeszcze program monitora. Przy jeszcze bardziej rozbudowanym systemie oczywiście można by już dodać alfanumeryczną, wyświetlacz czy inny terminal itd, ale nie o to tu chodzi.
  • #21
    Użytkownik usunął konto
    Użytkownik usunął konto  
  • #22
    LechU
    Poziom 13  
    R-MIK napisał:
    Najlepszy procek jaki znam do programowania w asemblerze, to rodzina 68k. Zrobiłem zestaw edukacyjny na 68000 12Mhz, fajnie się go programuje, jest szybki, opracowany w 1979 roku (jak dobrze pamiętam) a już wtedy był 32bitowy, tyle, że szynę danych miał 16 bit. Był też procek 68008 z szyną 8 bit, no i później 68020 i nowsze z szyną 32 bit.

    Ja do tej pory mam gdzieś zamelinowany systemik z :sm3: 6809 :sm3: i ten dopiero był fajny. Mimo, że tylko 2 MHz, bił na głowę 6-io MHz :bad-words: Ziloga Z80 :bad-words: - zaleta praktycznie ortogonalnej listy rozkazów. Przy odrobinie przymrużonym oku można go było porównywać do 68000, a 68008 to łykał sobie na śniadanie.

    Oczywiście są to moje BARDZO SUBIEKTYWNE odczucia więc bardzo proszę o brak polemiki :lol:
  • #23
    pipałosia
    Poziom 26  
    Odpowiedzi na pytania które chciałem zadać już padły, ale małe ale. Napisałeś że odpalił od razu. Pelen podziwu jestem ,pytanie mam takie czy aby napewno choć raz się nie pomyliłeś przy łączeniu tylu przewodzików. Uwielbiam takie wskszeszenia urządzeń z tamtych lat. Sam niestety tyle wiedzy nie mam więc zwłaszcza miło poczytać, popatrzeć.
  • #24
    hvman
    Poziom 18  
    Tylko raz w czasie nawijania. Zauważyłem że mam dwa połączone ze sobą piny, które powinny być jeszcze dołączone do masy a nie były. Przed uruchomieniem sprawdziłem tylko czy jest zasilanie w odpowiednich miejscach, miałem jeszcze sprawdzić wszystkie pozostałe połączenia ale mi się nie chciało i poszedłem na żywioł ; )
  • #25
    tomek_programista
    Poziom 19  
    Witam.
    Gratuluje Projektu. :D
    Czy mógł bym prosić o filmik z działania tego "komputerka"?
  • #26
    hvman
    Poziom 18  
    Oto film:


    Link


    Na początku przeglądam zawartość pamięci RAM, a następnie wprowadzam prosty program który zapala diodę LED gdy zostanie wciśnięty przycisk IN. W trakcie wprowadzania programu celowo popełniam błąd, który potem poprawiam.

    Przy okazji widać zmieniony kwarc, tym razem jest w obudowie HC6/U.