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

Mikrokomputer COBRA 1

coberr 24 Kwi 2020 16:49 157893 669
  • #631
    andrzejlisek
    Poziom 28  
    sq2bvn napisał:
    Podmieniłem pliki. Po uruchomieniu Cobra1.exe robię F2. Tam wybieram Wsad 29F040 v5M monitor Cobra1.bin no i mam okno błędu. Nie rozumiem czemu takie coś teraz się dzieje...


    Klawisz F2 służy do szybkiego wprowadzania treści do pamięci RAM, głównie w celach testowych, jako na przykład zamiennik wczytywania z magnetofonu. bądź w celu przetestowania jakiegoś kodu maszynowego. Nie służy to do zmiany pamięci ROM.

    Wciśnij klawisz F9 i tam będę 4 pola, w nich wybierz pliki ROM, LST i generatora znaków, pole z nazwą pliku pamięci RAM pozostaw puste, potem wyzeruj maszynę klawiszem F8 i uruchom klawiszem F5.
  • BotlandBotland
  • #632
    sq2bvn
    Poziom 11  
    OK, teraz zadziałało. Dzięki.

    No to teraz czas na jakiś "Helo world" w sdcc.
    Ciekawe czy ktoś już zdefiniował rejestry specjalne SFR?
  • BotlandBotland
  • #634
    sq2bvn
    Poziom 11  
    Dziękuję kolegom za wymiary. Mam projekt obudowy z płytką v2.0.
    Materiał: blacha nierdzewna grubości 1,5mm.


    Mikrokomputer COBRA 1

    Mikrokomputer COBRA 1

    Mikrokomputer COBRA 1
  • #635
    sq2bvn
    Poziom 11  
    Czy ktoś może rozpatrywał tranzystor w bloku generowania obrazu?
    Na płytce v2.0 mam tranzystor T1 w odwróconym kierunku inaczej jak to jest w schemacie z gazet. Jaki kierunek montażu tego tranzystora jest prawidłowy?

    Mikrokomputer COBRA 1 Mikrokomputer COBRA 1 Mikrokomputer COBRA 1
  • #636
    coberr
    Poziom 19  
    wyglada na to , że jest to bład na schemacie (i PCB) u Zdziśka.
    Emiter powinien "iść" do wejścia bramki; kolektor - do masy.
    tranzystor ten (PNP) wraz z jedną bramką NAND tworzą maly przerzutnik monostabilny. Na oryginalnym schemacie z AV jest wszystko w porządku.
  • #637
    sq2bvn
    Poziom 11  
    Generator obrazu generalnie działa.

    Problem polegał na tym, że obraz na OTVC jest stabilny gdy zasilam COBRA1 napięciem około 4,5V.

    Kiedy zasilę COBRA1 napięciem 5V są problemy z synchronizacją poziomą.


    Początkowo sądziłem, że to kwestia amplitudy sygnału wizji. Ale po stłumieniu sygnału problem wciąż był. Dopiero oscyloskop ujawnił, iż w sygnale wizji jest dodatkowy impuls synchronizacji. Co ciekawe powstający jeszcze przed diodą D3!
    Tym samym dotarłem do tranzystora T1, gdzie ewidentnie powstaje mi dodatkowy impuls po przekroczeniu napięcia 4,5V...

    Jak dotrę do chaty może załączę parę obrazków.
  • #638
    coberr
    Poziom 19  
    jeśli kolega da radę - proponuję załączyć oscylogramy (i opisać z których punktow zostały pobrane).
    Prosze również załączyć oscylogram bezpośrednio z wyjścia TV (x=5...10us/dz ; y = 0,2...0,5V/dz) ; ew. również dla synchr. pionowej (parametry w ms.)
    Przy układach TTL-1 V/dz.
  • #639
    sq2bvn
    Poziom 11  
    Odwrócony tranzystor dawał prawidłowy obraz przy napięciach zasilania poniżej 4,7V.

    Na filmie można zobaczyć jak to wyglądało:

    Link

    Na wyjściu wizji przebieg wyglądał tak:
    Mikrokomputer COBRA 1 Mikrokomputer COBRA 1Mikrokomputer COBRA 1

    Powyżej napięcia zasilającego 4,7V było takie zjawisko jak na filmie:

    Link

    Na wyjściu wizji przebieg wyglądał tak:
    Mikrokomputer COBRA 1 Mikrokomputer COBRA 1

    Odwrócenie tranzystora spowodowało, że obraz stał się stabilny przy zmianach napięcia zasilania. Przy ustawionym potencjometrze na wartość około 680Ω zauważyć można przyciemnianie się i rozjaśnianie obrazu w czasie zmieniania napięcia zasilania, ale nie następują problemy z synchronizacją.

    W czasie testów zauważyłem inny problem. Większość programów uruchamia się i nie zawiesza komputera.

    Natomiast COBRA1 zawiesza się w czasie odtwarzania przez katarynkę utworu MAŁGOŚKA. Co ciekawe, inne dostępne utwory nie zawieszają się i są odtwarzane w pętli. Tak jak jest to na filmie:

    Link

    dla porównania inny utwór katarynki, który się nie zawiesza:

    Link


    Doraźnie sprawdziłem zawartość EEPROM i jest OK. Dodatkowo zastosowałem inny egzemplarz EEPROM i również nie ma poprawy.
    MAŁGOŚKA nie zawiesza się z emulatorze - sprawdziłem to.

    Czy ktoś może miał podobny problem? Czy jest jakaś metoda alternatywna do pracy krokowej by znaleźć błąd?



    PS.
    Kolega Beny zrobił film o COBRA1. Można go również zobaczyć:

    Link
  • #640
    coberr
    Poziom 19  
    rzeczywiscie - problem był z synchronizacją pionową. ciekawe ze wczesniej nie udało sie tego błedu wychwycic na schemacie Zdziska :)

    Zastanawiające są te szpilki na oscylogramie (ponizej poziomu czerni) -zwłaszcza w fazie wybierania. (ale też widoczne na impuslie synchronizacji) czy naoscyloskopie ustawione było sprzężenie AC - zamiast DC?

    co do katatrynki sie nie wypowiem - wygląda to na jakis chyba bląd instrukcji i byc moze program idzie w pole?
  • #641
    sq2bvn
    Poziom 11  
    Cytat:
    Zastanawiające są te szpilki na oscylogramie (ponizej poziomu czerni) -zwłaszcza w fazie wybierania. (ale też widoczne na impuslie synchronizacji) czy naoscyloskopie ustawione było sprzężenie AC - zamiast DC?

    DC

    Cytat:
    co do katatrynki sie nie wypowiem - wygląda to na jakis chyba bląd instrukcji i byc moze program idzie w pole?

    Zachowanie jest deterministyczne. Na dzień dzisiejszy nie mam koncepcji do czego się przyczepić. Wsad EEPROMu zachowuje się prawidłowo w emulatorze na PC. Inny egzemplarz EEPROMu nie powoduje zmian. Raczej sam EEPROM i jego zawartość będą OK. A może to problem z kością RAM? Nie wiadomo czy katarynka przepisuje dane do RAM i tam jest uruchamia, czy wykonywanie kodu jest w przestrzeni adresów EEPROM. Nie mam wglądu do źródeł. Możliwe, że któraś podstawka nie ma stylu lub jest zimny lut. Póki co nie ma koncepcji co podejrzewać najbardziej :(
  • #643
    sq2bvn
    Poziom 11  
    To, że procesor od pewnego momentu wykonuje coś złego jest oczywiste, ale chyba w locie się tego nie znajdzie - potrzebna będzie praca krokowa i aplikacja testowa... nie znam szczegółów tej katarynki, ciężko ocenić gdzie to wyskakuje. Kiedy robię program w 99% wiem gdzie był program kiedy wyskoczył w wyjątek - choć zdarzają się niespodzianki.

    A może jest dostępne gdzieś to źródło - wówczas można wyciągnąć jakieś wnioski.

    Czy ktoś uruchamiał magnetofon? Zauważyłem, że w instrukcji jest:
    Mikrokomputer COBRA 1

    Chodzi o wyjście sygnału do magnetofonu 4(26) oraz wejście z magnetofonu 12(26).

    Układ U26 jest w bloku wizji.
    Końcówka 4 układu U26 to wyjście Q1.
    Końcówka 12 układu U26 to MR.

    Mikrokomputer COBRA 1

    Jakoś mi to nie pasuje.

    Czy nie powinno być że sprawdzać należy odpowiednio na okładzie U23.
    Końcówka 4 układu U23 to wyjście !Q1
    Końcówka 12 układu U23 to wyjście !Q2

    Mikrokomputer COBRA 1
  • #644
    coberr
    Poziom 19  
    No i slusznie , że nie pasuje - ponieważ posiłkujesz sie projektem Zdziska :)
    A tam numeracja układów została zmieniona. przy uruchamianiu tej wersji nalezy uzywac instrukcji z AV i porównywac ją z projektem Zdziska.
    Dodatkowo u ZDziska drozszy 74121 został zastąpiony znacznie tańszym i latwiej obecnie dostepnym 74123 - przekonfigurowanym jako NIERETRYGOWALNY.

    co do Z80 i jego wykonywania programu:
    1. jaki dokładnie masz z80? (mam nadzieje, ze nie U880)
    2. może warto wykonac jakiś test RAMu na jakim programatorze?
    3. może warto wykonać również test zawartoiści EPROMu (monitor) oraz - jesli masz - kardridza?
    4. byc moze warto by było zapisać do EPROMu same NOPy ; podłączyc go do magistrali zaby startował od zera (z pominięciem oszusta) i sprawdzić oscyloskopem sterowanie poszczególnych linii adresowych?
    Jest jeszcze jeden patent na to - wyjąć bufory linii danych i nogi od strony procka zewrzec do masy rezystorami np. 100 omów. Tak wysterowany procesor będzie pobierał same rozkazy nop - wystawiając adresy od zera do 65535. A to juz umozliwi obserwację linii adresowych A0-A15. Na każdej będzie przebiego o 2x nizszej czestotliwości (pomijając A0-A6(A7?)) - tam będzie dodatkowy śmietnik w postaci adresów odświeżania. Mysle , ze wiecej informacji na temat swojej konstrukcji udzielilby Zdzisiek - lącznie z testem na swoim egzemplarzu.
  • #645
    sajmosia
    Poziom 15  
    Hejka,

    Na chwile zmienie temat. Chcialem tylko nadmienic, ze Cobra zostala poruszona w ostatnim odcinku wirtualnych spotkan z muzeum historii komputerow i informatyki.

    https://youtu.be/V8yu5milyJ8?t=2677

    Pozdrawiam.
  • #646
    andrzejlisek
    Poziom 28  
    Nie wiem, czy to pomoże, ale pragnę zwrócić uwagę na rozkazy OUT i IN w kodzie źródłowym emulatora.

    Konkretnie to jest ten plik https://github.com/andrzejlisek/Cobra1/blob/master/src/cpumem.cpp
    Funkcja DoIN - linia 3815 - pobranie bajtu poprzez wykonanie rozkazu IN
    Funkcja DoOUT - linia 3866 - wysłanie bajtu poprzez wykonanie rozkazu OUT

    Jak widać, cała katarynka polega na tym, że jak pod adres 0x00 lub 0x08 (po wykonaniu AND b10011100 z mniej znaczącego bajtu) wyśle 0, to poziom sygnału ustawia się na niski, a ja się wyśle coś innego niz 0, to poziom sygnału ustawia się na wysoki. Poziom sygnału utrzymuje swój stan aż do wysłania wartości zmieniającej ten poziom. Dźwięk powstaje poprzez odpowiednio szybkie zmiany poziomu sygnału kształtując sygnał prostokątny.

    Ja to implementowałem trochę metoda prób i błędów, ale jak widać, katarynka gra, czyli wydaje się działać poprawnie. Nie znam działania IN i OUT w Z80 od strony sprzętowej, ale myślę, że wiedza, jak steruje się katarynką ułatwi znalezienie problemów z jej działaniem.
  • #647
    sq2bvn
    Poziom 11  
    Cytat:
    Chcialem tylko nadmienic, ze Cobra zostala poruszona w ostatnim odcinku wirtualnych spotkan z muzeum historii komputerow i informatyki.


    Osobiście wolę bawić się w COBRA1 zamiast w Arduino. COBRA1 powinna być do zaprojektowania PCB i uruchomienia dla każdego ucznia Technikum Elektronicznego jako praca zaliczeniowa rok.
  • #649
    zdzis_ek
    Poziom 14  
    Program Katarynki przepisałem z czasopisma Mikroklan nr 1 z 1986 r.
    Oto treść artykułu.
    Mikrokomputer COBRA 1 Mikrokomputer COBRA 1
    Sprawdzałem u siebie Małgośkę i również zawiesza program.
    Z opisu wynika, że na końcu danych melodii musi być umieszczona wartość "0" aby program działał w pętli.
    Wszystkie programy z moich wsadów przenoszone są z ROM do RAM i w Ram uruchamiane.
    Widać za mało danych Małgośki przenoszonych jest do RAM (brakuje tego zera) i program nie chce się zapętlić.

    Ja obecnie bawię się trochę układem AY3-8912 i wątpię bym kiedyś wrócił do poprawy tej melodyjki.
    Moje mierne wyniki przygody z AY3 prezentuje poniższy filmik.

    Przerobiłem nieco adresowanie AY3-8912 by mieć dostęp do układu z poziomu Basic.
    Może uda mi się kiedyś napisać jakąś gierkę wykorzystując kilka efektów akustycznych uzyskanych z tego układu.

    Pozdrawiam.
  • #650
    zdzis_ek
    Poziom 14  
    Skoro wrócił temat Katarynki postanowiłem użyć jej we wsadzie 6ML.
    Przy starcie komputera oraz po każdym Resecie ukazuje się obrazek cobry.
    Dołożyłem do tego obrazka kilka nutek z Katarynki.
    Można tam umieścić inne nutki, te są w ramach próby.
    Wsad dodatkowo zawiera animację Balum Balum v2.
    Jak wygląda to na emulatorze pokazuje krótki filmik.


    W załącznikach umieściłem wsad do ROM monitora - 6ML, wsad semigrafiki oraz emulator z umieszczonymi już wsadami, wystarczy tylko go odpalić.
  • #651
    sq2bvn
    Poziom 11  
    Dzięki za info dotyczące katarynki.
    Na szczęście zajmowałem się robieniem obudowy i nie poorałem płytki.
    Wkrótce zaprezentuję mój egzemplarz COBRA1 w obudowie.

    Jeśli kod katarynki jest zbliżony do kodu z gazety to może poszukam iteratora i zwiększę wartość o 1 i wówczas to nieszczęsne 0 będzie ładowało się do RAM.
    Innym sposobem jest z poziomu monitora wypełnić RAM zerami i wówczas uruchomić Małgośkę.
    Kiedyś właśnie coś takiego zrobiłem i nie wiedziałem czemu tym razem się nie zawiesiło.
    Podejrzewałem, że może jakaś podstawka zgniła.

    Ewentualnie dodam deasembler do kodu i zobaczymy jak to wygląda. Gdzieś miałem gotowy deasembler na Z80 w jakiejś książce. Sprawdzony, kiedyś bawiłem się tym deasemblerem na CA80.

    Do czego służą diody LED JOY?
    Czy warto wyprowadzać te diody na obudowę?
  • #652
    zdzis_ek
    Poziom 14  
    Program Katarynki jest identyczny z tym z czasopisma i ładuje się w te same adresy.
    Sprawdziłem w HexEditorze i faktycznie brakuje tego zera.
    Problem może stanowić brak miejsca na umieszczenie w ROM, zaraz po Małgoś-ce
    jest następna melodia.
    Ale jest też pauza przed zapętleniem.
    Naprawię swój błąd i poprawiony wsad umieszczę na forum.
  • #653
    sq2bvn
    Poziom 11  
    W jaki sposób uruchamiać program umieszczony w cartridge?
    Wkrótce biorę się za płytkę cartridge i popróbować z SDCC.
  • #654
    zdzis_ek
    Poziom 14  
    Cały ROM monitora podzielony jest na bloki po 16kB.
    Z każdego bloku przenoszone do RAM-u może być max 12400 bajtów.
    Pozostała część bloku to adresy do przeniesienia i programy sterujące, ile i z którego bloku ma być przeniesione do RAM.

    Diody LED JOY w zasadzie są wizualnym pokazaniem, który z klawiszy funkcyjnych F1 - F5 jest wybrany.
    Pod każdy z tych klawiszy przypisane są dla joysticka inne klawisze sterujące, dla róży wiatrów to może być np. QASZ lub AWSD.
    W zasadzie to taki bajer, czyli wodotrysk.
  • #655
    M.Klimowicz
    Poziom 10  
    Podziwiam Kolegę za wytrwałość. Zbudowałem komputerek COBRA 1 w czasach gdy były publikowane artykuły. Płytkę, EPROM, kasetę z BASIC-iem i coś tam jeszcze kupiłem od COBRESPU (stąd nazwa projektu) Centralny Ośrodek Badawczo Rozwojowy Elektronicznego Sprzętu Powszechnego Użytku. Jeździłem po targowiskach elektronicznych w całej Polsce, Ostatnie brakujące mi pamięci kupiłem w Łodzi i mogłem zacząć uruchamianie. Po trzech miesiącach mogłem wczytać BASIC. Potem pierwsze gry, potem sam zacząłem pisać proste programy typu biorytm, gra w tenisa etc. niestety niektóre kasety mi zaginęły inne nie nadawały się do odtwarzania. Postanowiłem maksymalnie dużo odzyskać z taśm i nagrałem je w wersji wav. i mp3. Dziś taśmy nie nadają się do odczytu, skruszały po 30 latach. Mam już 67 lat i nie podejrzewam by moje dorosłe dzieci lub wnuki były by zainteresowane takim zabytkiem. Mogę go odsprzedać. Zaginął mi kabel zasilający łączący zasilacz z komputerem ale nie powinno to stanowić problemu dla nowego właściciela.
  • #658
    Atlantis86
    Poziom 19  
    Co to za obudowa? Można taką kupić? :)
  • #659
    sq2bvn
    Poziom 11  
    Cytat:
    Co to za obudowa? Można taką kupić?

    Obudowa to własny wyrób.
  • #660
    zdzis_ek
    Poziom 14  
    Super obudowa :D

    Zrobiłem krótką animację pokazującą w jaki sposób przenoszone są programy z pamięci ROM do pamięci RAM z wykorzystaniem przełącznika banków pamięci.