Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Proszę, dodaj wyjątek 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 18776 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!
  • #2 06 Cze 2012 01:17
    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 06 Cze 2012 01:31
    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 06 Cze 2012 09:49
    tplewa
    Poziom 36  

    Fajna konstrukcja. Trzeba miec zapal do sprzetu retro i cierpliwosc w zbieraniu elementow :)

  • #5 06 Cze 2012 10:03
    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 06 Cze 2012 11:43
    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 06 Cze 2012 12:14
    tplewa
    Poziom 36  

    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...

  • #9 06 Cze 2012 15:15
    LechU
    Poziom 12  

    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 06 Cze 2012 15:23
    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 06 Cze 2012 15:39
    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 06 Cze 2012 22:42
    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 07 Cze 2012 12:37
    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 07 Cze 2012 17:51
    mungo
    Poziom 18  

    Tak bardziej przypomina konstrukcje z artukułu

  • #15 07 Cze 2012 17:54
    Urgon
    Poziom 36  

    AVE...

    Z przyciskami nie zadziała. Muszą być przełączniki, bo układ odczytuje stan z nich w chwili naciśnięcia przycisku IN...

  • #16 07 Cze 2012 18:35
    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 07 Cze 2012 18:42
    tplewa
    Poziom 36  

    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ł.

  • #18 07 Cze 2012 18:44
    Urgon
    Poziom 36  

    AVE...

    Po wprowadzeniu krótkiego programu można podłączyć klawiaturę matrycową by ułatwić sobie życie. Ponadto możnaby dodać jakiś równoległy FRAM albo układ EEPROM...

  • #19 07 Cze 2012 19:44
    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 07 Cze 2012 20:55
    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 08 Cze 2012 07:54
    R-MIK
    Poziom 37  

    lechoo napisał:
    Przy okazji - czy pamięta ktoś z Was rodzimy komputerek CA80?

    Nie tylko pamiętam, ale jeszcze mam w piwnicy, wraz z programatorem eprom i pozytywka do niego.
    Zrobiłem też coś w stylu CA80 ale na 6502 (procki stosowane w Commodore, Atari), niestety firma dla której to zrobiłem padła i nigdy nie ruszyła produkcja, a szkoda.

    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.

    To były czasy.

  • #22 08 Cze 2012 12:54
    LechU
    Poziom 12  

    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 08 Cze 2012 19:40
    pipałosia
    Poziom 25  

    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 08 Cze 2012 19:46
    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 13 Cze 2012 20:10
    tomek_programista
    Poziom 19  

    Witam.
    Gratuluje Projektu. :D
    Czy mógł bym prosić o filmik z działania tego "komputerka"?

  • #26 13 Cze 2012 21:06
    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.

 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME