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

Mikrokomputer COBRA 1

coberr 15 Sie 2017 23:25 137640 559
  • #421 15 Sie 2017 23:25
    coberr
    Poziom 19  

    co do uli spectrum - absolutnie nie - cobra ppowinna pozostac cobrą a nie jakas kopią zx spectrum...
    w tym cały jej urok - te 32 na 24 znaki :)
    zamierzam jedynie dołozyc kolor w trybie tekstowymi jeszcze da małe udogodnienia...
    ale a w zadnym razie z uli nie bede robil zx spectrum - nie ma to dla mnie sensu :)

    ew. wyjatek - uzgadniany z SAJMOSIA - byc moze dorzuci się dodatkowo jeszcze tryb nieco podobny do zx spectrum (ale bez tych wszystkich cyrków i zaleznosci,czasowych , ktore generowała ULA).W mojej cobra powinna pozostać cobrą a nie hybrydą czy totalnym frankensteinem :)
    Mozna i zalecane jest dodanie kilku funkcjonalnosci ale bez przesady :)

    a co do CPLD - podstawową cobre da sie zmiescić w XC95144 - niestety ta sreia juz nie jest kontynuowana a szkoda...
    jakos nie bardzo chce mnie sie przerzucac na coolrunnery II - z 1,8V/3,3V.

    a to z uwagi na fakt ze glownie grzebię sobie w starociach -a to wszystko nowe wiadomo w jakim kierunku idzie :)

  • Deimic Smart Home
  • #422 17 Sie 2017 11:24
    sajmosia
    Poziom 15  

    Mam zamiar zrobic tak:

    Zanim ktos zapyta po co -> Dla zabawy :)

    Karta Graficzna 2.0 bedzie miala cztery tryby graficzne, przelaczane wartoscia w lokacji w pamieci. Ogolnie obszar grafiki sie zmieni ale tylko do takiego stopnia, zeby to wciaz dzialalo z oryginalna Cobra, czyli bedzie zajmowal 8KB od $E000 do konca, co nie bedzie kolidowac z niczym w oryginale, bo w oryginale tam nic nie ma.

    MODE 0:

    Od $F800 do $FAFF semigrafika, $FF00 - Mode, a reszta generic RAM.

    MODE 1:

    Semigrafika od &F800 fo $FAFF, Kolory mapowane na ekran tak jak w zx of $FC00 do $FEFF,
    $FF00 - MODE, $FF01 <- jeszcze polemizuje czy na pewno ten adres -> kolor ramki.

    MODE 2:

    Od $E000 do $F7FF Pixelki mapowane na ekran jak w zx, Kolory mapowane na ekran tak jak w zx of $FC00 do $FEFF,
    $FF00 - MODE, $FF01 <- jeszcze polemizuje czy na pewno ten adres -> kolor ramki. Reszta Ram.

    MODE 3:

    Od $E000 do $F7FF Pixelki mapowane liniowo, Kolory mapowane tak jak w zx of $FC00 do $FEFF,
    $FF00 - MODE, $FF01 <- jeszcze polemizuje czy na pewno ten adres -> kolor ramki. Reszta Ram.

    Mode 2 i 3 celowo pomija obszar $F800 - $FAFF w celu latwego przelaczania Mode podczas programowania czy dzialania programu.

    Wszystko to da sie sprytnie osiagnac, przez sterownie grafika osobnym procesorem. W prawdzie nie bedzie to ULA, ale bedzie dzialac podobnie.

    Do tego, jesli wystarczy mi mocy, chcialbym zaimplementowac sprzetowego duszka albo dwa. Ale to juz dosc daleko wysiegajace poza te plany, i mozliwe ze ukaze sie dopiero w wersji 3.0

    Chcialbym tez nie tyle zmienic standard co przynajmniej wprowadzic mozliwosc podpiecia tego pod monitor VGA.

    Pozdro.

  • #423 19 Sie 2017 18:38
    jackfinch
    Poziom 15  

    Witam

    @sajmosia możesz coś napisać jak to będzie wyglądało od strony hardware_u?

    Pozdrawiam

  • #424 19 Sie 2017 19:43
    22053
    Użytkownik usunął konto  
  • Deimic Smart Home
  • #425 19 Sie 2017 20:45
    sajmosia
    Poziom 15  

    Witam,

    Jeszcze nie wiem dokladnie na czym bedzie opierala sie grafika 2.0, aczkolwiek jesztem dosc dobrze obcykany w Microchip PIC.

    Ogolnie buduje sobie Cobre Modulowo, gdzie kazdy element komputera to osobny modul.

    Do tej pory mam moduly:
    - Z80
    - ROM
    - RAM
    - Kontroler/mapper/dekoder Pamieci i I//O
    - Zegar z oszustem
    - Interfejs USB
    - Grafika v1.0

    Wlasnie pracuje nad modulem klawiatury i magnetofonu kasetowego albo walkmanana marki kajtek :) Jakikolwiek odtwarzacz mp3 tez powinien dzialac :)

    Grafike v1.0 zrobilem na PIC18F27K40.

    Do Grafiki v 2.0 przymierzam sie z PIC18F57K42, ktory jest mocniejszym bratem powyzszego, z wbudowanym DMA i czteroma komorkami, takimi jak montuja w CPLD. Jako druga opcje rozwazam Parallax Propeller, ale nie bardzo mi to pasuje z kilku powodow mimo, ze ma mozliwosc wyswietlania VGA natywnie. Po pierwsze to jest procesor 32-bitowy, co lekko profanuje cala Cobre. Po drugie dziala na 3.3v co lekko komplikuje sprawe i po trzecie jest inny. Sposob, i jezyk w jakim sie programuje te kostki jest nieco inny od wszystkiego z czym sie do tej pory spotkalem.

    PIC jest 8-bitowy, dziala na 5V i przychodzi w obudowie DIP, co jest z zasady duzo latwiejsze do zabawy niz SMD czu inne opakowania dla przecietnego amatora elektroniki.

    Chce ten uklad zrobic tak, zeby byl latwy do zrealizowania, skonfigurowania i dalszego rozszerzania o kolejna moduly jak np AY-3-8910/8912 etc...

    Poza tym ze wzgledu na bardzo elastyczny kontroler/mapper pamieci z powodzeniem uruchomilem na Cobrze system RC2014 tylko tym, ze wymienilem rom i lekko przeprogramowalem kontroler. Reszta, czyli Z80, RAM etc zostaja te same.

    Na pierwszej Fotce widac urzadzenie na samym koncu z duza iloscia pinow na zworki, wlasnie do konfiguracji kontrolera.

    Na drugiej fotce jest plytka, ktora zaprojektowalem pod Grafike v1.0

    Mikrokomputer COBRA 1IMAG00..jpg Download (3.07 MB)

    Mikrokomputer COBRA 1IMAG01..jpg Download (1.31 MB)

    Schematy i opisy modulow niebawem opublikuje, aczkolwiek na ta chwile musze sie jeszcze uporac z modulem klawiatury, ktory dziala tez na malym PIC i MT8808, co pozwala mi podpiac do Cobry klawiature PS/2.

    Coberr i Zdzis_ek bardzo mi pomagaja w budowaniu mojej Cobry, za co musz serdecznie jeszcze raz im Podziekowac :)

    Pozdrawiam.

  • #426 19 Sie 2017 21:02
    22053
    Użytkownik usunął konto  
  • #427 19 Sie 2017 21:08
    sajmosia
    Poziom 15  

    Cytat:
    Pomyśl o CPLD zamiast PIC


    Dla mnie CPLD to calkowicie nowy swiat, w ktorym nigdy sie wczesniej nie bawilem.
    Musialbym poswiecic kupe czasu, zeby nauczyc sie jak to programowac.
    Mysle, ze na ta chwile wykorzystam na razie tylko to, co potrafie.

    Kazdy z tych modulow zawsze mozna podmienic na lepszy albo nowszy.

    Jesli chodzi o grafike, to wlasnie tak zrobie, ze kiedy zmontuje, przetestuje i stwierdze, ze dziala, to po prostu wyjme modul v1.0, i wloze modul v2.0 zamiast, bez potrzeby przebudowy calej Cobry.

    Pozdro.

  • #428 19 Sie 2017 21:21
    22053
    Użytkownik usunął konto  
  • #429 19 Sie 2017 23:54
    sajmosia
    Poziom 15  

    Hejka,

    Probowalem sie wystartowac z CPLD, mam i kostki i programator. Kupilem tak z Chin o nazwie Xilinx, chyba nawet wrzucilem gdzies wczesniej fotke.

    To nie jest tak, ze sie boje, chociaz.... , ech nie, chyba sie nie boje :)

    Tylko kiedy siadam do kompa i mam wybor konczyc klawiature, co zakonczy projekt, z ktorym sie bawie juz kilka miesiecy, albo zaczac nowy, czyli uczenie sie CPLD to wybor robi sie jasny.

    Tak czy inaczej, Coberr juz obiecal mi zrobic sesje posiedzeniowa na temat CPLD, zeby mnie z tym wystartowac. Jedynie tylko zostaje znalezienie na to czasu :)

    Pozdrawiam.

    Dodano po 2 [godziny] 7 [minuty]:

    Tak jeszcze dorzuce, najwiekszy problem jaki mialem do tej pory, to sniezenie na ekranie, przy dzialaniu klawiatyry, ale to bylo glownie przez to, ze uzylem rozwiazania ze schematu pod nazwa Cobra 2015 gdzies z wczesniejszych postow, i kostki 74573.

    Coberr juz znalazl rozwiazanie na ten problem dla mnie, i nie tylko, jedynie sostaje implementacja.

    Tytaj jest krotki filmik, pokazujacy jaki byl efekt.

    Pozdrawiam.


    Link

  • #430 21 Sie 2017 11:12
    zipzap
    Poziom 15  

    R-MIK napisał:

    Umiesz rysować schematy = umiesz robić CPLD. Nie musisz znać Verilog, VHDL, AHDL, CUPL i innych. Rysujesz np układ wizyjny z TTL, przypisujesz wejścia wyjścia, naciskasz kompilacje i po robocie. Programator kosztuje ok 60zł, jak masz LPT to kilka rezystorów.



    A czy mógłbyś, może w osobnym wątku, pokazać w kilku krokach jak zaprogramować cpld w oparciu o schemat? Może to być nawet przerzutnik na dwóch bramkach. Ważne, żeby była informacja w czym (xilinx) to zrobić i jakie są kroki po kolei (gdzie rysować, jak przypisać piny, jak kompilować).

  • #431 21 Sie 2017 11:24
    22053
    Użytkownik usunął konto  
  • #433 21 Sie 2017 11:32
    22053
    Użytkownik usunął konto  
  • #435 21 Sie 2017 12:09
    22053
    Użytkownik usunął konto  
  • #436 22 Sie 2017 15:40
    22053
    Użytkownik usunął konto  
  • #437 10 Wrz 2017 19:47
    zdzis_ek
    Poziom 13  

    Cytat:
    kolega sajmosia napisał:

    Tak jeszcze dorzuce, najwiekszy problem jaki mialem do tej pory, to sniezenie na ekranie, przy dzialaniu klawiatyry, ale to bylo glownie przez to, ze uzylem rozwiazania ze schematu pod nazwa Cobra 2015 gdzies z wczesniejszych postow, i kostki 74573.

    coberr juz znalazl rozwiazanie na ten problem dla mnie, i nie tylko, jedynie sostaje implementacja.


    Tą drugą osobą jestem ja.
    Ja również w swoim projekcie PCB użyłem do komunikacji zewnętrznej układu 74LS573.
    Układ działa, ale śmieci, oto jak to wyglądało:


    Tutaj prezentuję schematy na podstawie których zaprojektowałem PCB.
    Mikrokomputer COBRA 1Mikrokomputer COBRA 1 Mikrokomputer COBRA 1

    Kolega coberr rozwiązał ten problem sugerując mi wykorzystanie wolnych bramek, które mi zostały na tym PCB.
    Zrobił dużo więcej, tak zmodyfikował program "monitor", że ustawił moje MPU Z80180 w tryb pracy Z80 i sprezentował mi
    napis przy starcie systemu, ja tylko dołożyłem do ROM-u Basic.


    Następnym problemem było taktowanie tego mojego "wynalazku" i część audio, ale o tym w innym poście.
    Tutaj przedstawiam schematy poprawione o dokonane zmiany.
    Mikrokomputer COBRA 1 Mikrokomputer COBRA 1

  • #438 10 Wrz 2017 23:30
    tzok
    Moderator Samochody

    Tak tylko zapytam - dlaczego 74LS, a nie 74HCT? I tak jest to wersja współczesna (SMD), więc czemu nie użyć układów CMOS?

  • #439 10 Wrz 2017 23:56
    wieswas
    Poziom 33  

    Do Kol. Zdzis-ek
    Drobne zakłócenia jednak jeszcze pozostały.
    Walczyłem z tym ćwierć wieku temu i udało mi się zlikwidować je całkowicie z minimalnym jedynie spowolnieniem zapisu.
    Niestety nie mam już schematu przeróbki, ale pamiętam 3 warunki jakie musiał spełniać układ:
    1-zapis do pamięci statycznej video jest możliwy bez ograniczeń w czasie trwania impulsu wygaszania ramki
    2-W czasie trwania linii zapis jest blokowany w czasie impulsu odczytu znaku.
    3-Blokada zapisu nie jest całkiem skuteczna, gdy korzystamy ze zbocza narastającego impulsu odczytu znaku, ze względu na czas propagacji bramek wykonujących iloczyn i blokowanie zapisu.
    Ja korzystałem ze zbocza opadającego odczytu znaku poprzedzającego, który opóźniałem o nieco mniej niż czas odczytu jednego znaku. Wówczas otrzymałem impuls blokujący lekko wyprzedzający impuls odczytu.
    Nie podałeś na ile spowolniłeś listowanie pamięci. Jeżeli odblokowujesz możliwość zapisu do pamięci tylko w trakcie impulsu wygaszania ramki, to prędkość listingu zmniejszyła się dwukrotnie. Dostosowując układ blokady do powyższych 3 warunków spowolnienie listingu jest praktycznie niezmierzalne.
    Spowolnienie najłatwiej poznać po listingu całej pamięci RAM, a nie przy wyświetleniu pojedynczych linijek tekstu.
    A może blokadę zakłóceń zrealizowałeś jeszcze inaczej ?
    A wogóle szacunek za elegancki i profesjonalny hardware i precyzyjne schematy.
    Kiedyś to było niemal niemożliwe. (bez PC, bez drukarki, bez dostępu do podzespołów i precyzyjnych narzędzi)

  • #440 11 Wrz 2017 09:49
    22053
    Użytkownik usunął konto  
  • #441 11 Wrz 2017 14:54
    zdzis_ek
    Poziom 13  

    Uważam, ze w tym całym swoim projekcie popełniłem kilka błędów.
    Moim zamiarem było przeniesienie technologii DIP na SMD bez zmian oryginalnego projektu.
    Niestety nie wszystkie układy DIP mają swoje odpowiedniki SMD.
    Czy bufory są potrzebne? tego nie wiem, ja starałem się przenieś wiernie pierwotny projekt.
    Dużo problemów miałem z tym MPU z80180.
    Wydaje mi się, że jest je łatwiej kupić w obudowie PLCC68 niż Z80 w obudowie PLCC42.
    Z racji tej, że Z80180 to MPU to miałem problemy z uzyskaniem zegara 3,25 MHz na samym Z80.
    Metodą "prób i błędów" doszedłem do tego, że całe MPU Z80180 jest taktowane kwarcem 11MHz
    a sam Z80 jest taktowany 3,25 MHz.
    I przy takim kwarcu uzyskałem dopiero możliwość wgrywania programów z wav, czy mp3,
    bez jakiejkolwiek zmiany rezystorów przy 74123.
    Nie pytajcie się mnie czemu 11 MHz, bo nie wiem.
    Ja do uruchomienia pierwszej płytki użyłem MPU o oznaczeniu Z8018020VEC.

    Dodano 12 09 2017 r.

    Do określenia częstotliwości pracy Z80 użyłem metody pośredniej.
    Wygrałem z emulatora Cobry1 plik wav z zawartością pamięci od 0000h do 4000h.
    Zmierzyłem czas trwania tego wav, wyszło mi 102 sekundy.
    Później wygrywałem plik wav ze swojej Cobry SMD i porównywałem wyniki.
    Obecnie mam umieszczony kwarc o częstotliwości 11,165 MHz (taki tylko podobny miałem w swoich zasobach).
    Czas wygranego pliku wynosi 99 sekund, to już bardzo blisko.
    Mimo tych różnic Cobra bez żadnych błędów wczytuje pliki wav i mp3.

  • #443 19 Wrz 2017 00:56
    22053
    Użytkownik usunął konto  
  • #444 19 Wrz 2017 01:03
    coberr
    Poziom 19  

    żyją - jak najbardziej - przynajmniej pan Andrzej Sirko.
    A co do drugiego pytania - wiesz jak to jest - zakonczysz projekt i juz w zasadzie do niego nie wracasz... (zwłaszcza po 30 latach :))

  • #445 19 Wrz 2017 01:22
    22053
    Użytkownik usunął konto  
  • #446 19 Wrz 2017 22:37
    angielskia
    Poziom 10  

    R-MIK napisał:
    ... Podobnie jest z CA-80.


    czołem,

    Co do CA-80: Pan Stanisław Gardynik odzywał się na elektrodzie (albo może innym portalu - nie pamiętam).
    Ale pamiętam że pozwolił na zamieszczenie skanów swojej dokumentacji CA-80 (książeczek MIK).
    Odezwał się ok. 3 razy. Raczej w kontekście: "powodzenia dla budujących, ale dla mnie to już rozdział zamknięty".

    pozdrowienia dla budujących Cobra 1 ode mnie - naprawdę niesamowite rzeczy tu wyprawiacie :)
    Artur

  • #447 19 Wrz 2017 22:52
    22053
    Użytkownik usunął konto  
  • #448 24 Wrz 2017 11:27
    pan_kotek
    Poziom 20  

    Witam wszystkich Cobromaniaków,
    Zastanawiam się nad zrobieniem repliki, warunkiem byłoby zastosowanie jej do jakiegoś konkretnego celu, np pomiar napięcia, pomiar temperatury, sterowanie roletami itp.
    Nasuwa mi się kilka pytań, w z80 nie ma portów tak jak w AVR, ale mamy szynę adresową 16 bitową, czyli można zaadresować 64kb ,
    1) jeśli zabiorę jeden adres na sterowanie urządzeniami IO, to zmniejsza mi się dostępna pamięć do 32kb?
    2) to 32 kb jest do podziału na ROM i RAM?

  • #449 24 Wrz 2017 13:35
    wieswas
    Poziom 33  

    Na adresowanie nie będzie miało wpływu korzystanie z portów.
    W oryginalnej COBRZE instrukcja Z-80 wysyła zawartość akumulatora do hardwarowo stworzonego wyjścia na głośniczek (BEEP) lub na magnetofon i mimo, że wykorzystujemy tylko 1 bit to mamy do dyspozycji cały bajt wysłany na dany numer portu. Procesor przez kombinację wyjść MREQ/WR/RD informuje czy wysyła/czyta informację do pamięci czy urządzenia zewnętrznego określonego przez OUT(nr.PORTU),A lub IN A,(nr.PORTU). Korzystając z instrukcji OUT i IN nie ma kolizji z pamięcią RAM.

  • #450 25 Wrz 2017 11:54
    22053
    Użytkownik usunął konto