forum speccy.pl
Komputery z Z80 => CP/M - kompatybilne => Wątek zaczęty przez: Atlantis w 2021.10.24, 20:54:39
-
Jakiś czas temu naszła mnie ochota, żeby złożyć sobie jakiś komputerek kompatybilny z CP/M oraz standardem RC2014. Wybór padł na Easy Z80 wg projektu Sergey'a Kiseleva (https://github.com/skiselev/easy_z80). Udało mi się kupić płytkę, jednak montaż trwał opornie z uwagi na obecne problemy z zakupem części. Kilka dni temu w końcu dotarła do mnie przesyłka z ostatnim układem scalonym, więc zabrałem się za uruchamianie. Niestety, po podłączeniu zasilania nic się nie dzieje - terminal podłączony do pierwszego złącza RS232 nie pokazuje niczego.
Sytuacja wygląda następująco:
- Układ jest taktowany generatorem kwarcowym 10 MHz
- Wszystkie układy z serii Z80 są w wersji CMOS, na 10 MHz
- Wszystkie układy logiczne 74 są w wersji HC
- Do ROM-u wgrany RomWBW-v3.0.1 pobrany z GitHuba i skompilowany. Konkretnie plik EZZ80_std.rom
- Układ logiczny ATF16V8B zaprogramowany wsadem easy_z80_wdog.jed, próbowałem też easy_z80_no_wdog.jed
- Niestety nie udało mi się kupić układu MAX693. Zastąpiłem go MAX691ACPE, który miałem w swoich zapasach. Lista elementów wymienia MAX691 jako "possible alternative". Jednak czy te ukłdy są bezpośrednio wymienne?
Jak to dalej debugować? Wydaje mi się, że cokolwiek powinno się pojawić na interfejsie szeregowym po podłączeniu zasilania. Niestety nigdzie nie mogę znaleźć bardziej szczegółowej instrukcji uruchamiania tego komputerka...
Docelowo płytka ma stanowić bazę do większego projektu. Planuję wykonać backplane w stylu RC2014 i umieścić na nim dodatkowo kartę CF, układ graficzny TMS9918 oraz kontroler klawiatury 8242. Te dwa ostatnie będą zapewne wymagały modyfikacji firmware'u...
-
Ja bym zaczął od wyciągnięcia sondy logicznej, lub oscyloskopu...
-
Mam niejasne podejrzenia, że JP1 i JP2 nie zostały użyte...
-
Mam niejasne podejrzenia, że JP1 i JP2 nie zostały użyte...
Te zworki przecież są domyślnie ustawione w pozycji 1-2 za pomocą ścieżki. W przypadku ustawienia 2-3 trzeba by ją najpierw przeciąć.
-
Ok, to ostatnia rzecz jaką możesz bez przyrządów zrobić, to wyjmij MAX232 dla drugiego portu SIO. Jak to nie pomoże, to tylko sonda logiczna lub oscyloskop.
-
Nie pomogło. Upewniłem się także czy potencjometr przy MAX691 jest ustawiony tak, aby na NMI był stan wysoki.
Co w pierwszej kolejności powinienem sprawdzić, poza sygnałami zegarowymi CPU i UART?
I jeszcze jedno: zauważyłem, że na schemacie i w spisie elementów zaznaczone są układy MAX232A. Ja miałem pod ręką jedynie zwykłe MAX232. Czy to możliwe, że tu może leżeć przyczyna? To znaczy zwykły MAX232 (bez "A" na końcu) przy prędkości 115200 i kondensatorach 100nF nie przepuści niczego?
-
Nie pomogło. Upewniłem się także czy potencjometr przy MAX691 jest ustawiony tak, aby na NMI był stan wysoki.
Co w pierwszej kolejności powinienem sprawdzić, poza sygnałami zegarowymi CPU i UART?
Tak na dzieńdobry?
Napięcia zasilania.
Potem - czy CPU dostaje zegar. Jakie są stany /Reset, /Nmi, /Int, /Busrq, /Wait. Czy CPU adresuje pamięć (zmienia się A0, A1, Aktórykolwiek, /Rd, /Wr, /Mreq, /M1) Czy CPU dostaje program (zmieniają się D0, D1 .. D7)
-
Tam oryginalnie nie powinien siedzieć GAL 16v8 od Lattice ?
-
BOM mówi AF16V8B15PU (https://www.mouser.com/ProductDetail/556-AF16V8B15PU)
-
A próbowałeś rom EZZ80_std.rom w wersji v2.9.1 ?
-
W wolnej chwili spróbuję innej wersji ROM-u i posprawdzam sygnały na magistrali analizatorem logicznym.
W międzyczasie ktoś mógłby powiedzieć jak zachowuje się MAX232 w przypadku zastosowania za małych kondensatorów w stosunku do wersji i wybranej prędkości. Żeby korzystać z kondensatorów 100nF i pracować powyżej 60 kpbs potrzebuję wersji MAX232A. Ja mam MAX232 (bez "A"), kondensatory 100nF, a układ domyślnie pracuje na 115200 bps.
W takim przypadku możliwe jest, że nic nie będzie przechodziło przez port, czy jednak powinienem się raczej spodziewać "krzaczków"?
-
Wyjmij U3 z podstawki, zewrzyj RXDA z TXDA (max 232 pin 9 i 10), odpal terminal na 115200 i sprawdź czy masz echo jak piszesz na klawiaturze. Będziesz wiedział czy max232 działa na 115200.
-
Rom w wersji v2.9.1 też nie wyświetla niczego w terminalu.
Po wyjęciu U3 oraz zwarciu pinów 9 i 10 MAX232 mam echo w terminalu, a więc najwyraźniej działa prawidłowo z kondensatorami 100 nF przy prędkości 115200.
No cóż... Będę musiał sprawdzić sygnały na magistrali...
-
Ok, znalazłem trochę czasu i posługując się tanim, chińskim analizatorem stanów logicznych (na USB) sprawdziłem aktywność na poszczególnych liniach.
- Na UART_CLK jest prawidłowy sygnał zegarowy 1.84 MHz.
- Na CPU_CLK jest jakiś sygnał zegarowy, jednak albo jest niestabilny, albo mój analizator nie jest już w stanie prawidłowo go odczytać. Stawiam na to drugie. Sygnał jest nieregularny i waha się pomiędzy 8 i 12 MHz.
- Na A0-A15 widać aktywność. Sygnały mają cykliczny, powtarzający się charaktery.
- Widać również sygnały na WR, RD, IOREQ i MREQ.
- Linia RESET reaguje na wciskanie przycisku RESET. Aktywowanie linii reset wpływa na system, co widać np. po liniach adresowych.
- Na liniach TX zupełny brak aktywności
Jakieś hipotezy? Co mogę jeszcze sprawdzić?
-
Możesz sprawdzić, czy SIO_CS i CTC_CS bywają aktywne, ie. czy CPU w ogóle z tymi układami chce/może gadać.
Możesz też np. wrzucić do flasha program, który zablokuje przerwania i co 100 (przykładowo) cykli zegara będzie wyrzucał na dowolny port IO dowolną daną.
Albo zrobi OTIR/OTDR
Jeśli IORQ będzie pulsował regularnie, to będziesz wiedział że CPU Działa, że zegar jest stabilny i będziesz mógł wyliczyć częstotliwość. 3-in-1 ;)
-
- Linia RESET reaguje na wciskanie przycisku RESET. Aktywowanie linii reset wpływa na system, co widać np. po liniach adresowych.
Jak to rozumieć? W trakcie RESET nic się nie zmienia na szynach?! Sprawdź podciąganie na RN1, czy na pewno wszystkie z podłączone tam linie są w stanie wysokim. Tym analizatorem podepnij się pod wyjścia GAL, tam jest sporo ważnych sygnałów, jak jest ok, to sprawdź wyjścia 74HC670. Kolejna sprawa, ROMWBW na adresie I/O 00h wysyła dane diagnostyczne, warto sklecić sobie zatrzask i sprawdzić czy system żyje.
-
Zaintrygowany problemami naszego kolegi zaopatrzyłem się w PCB EasyZ80, poskładałem z tego co miałem pod ręką i uruchomiłem. Zegary są inne, ale można będzie porównać przebiegi i dociec w czym tkwi problem, bo mnie odpalił od strzała (tz. prawie, bo zapomniałem że z oscylatora 1,843MHz ni jak nie uzyskam transmisji 38400, którą używam we wszystkich swoich komputerach, więc przez chwilę miałem śmieci na terminalu nim załapałem że oczekiwane 38400 to jest rzeczywiste 28800). Jak coś to pytać co i gdzie się pojawia.
-
Spojrzałem na płytkę z pierwszego postu i na tą fotkę przesłaną wczoraj.
Różnica jest w zasadzie w częstotliwości kwarcu 10 MHz vs. 3.6864MHz.
Czy w przypadku Easy Z80 również powinien być odpowiednio przygotowany wsad RomWBW do Flash ROM? Może tu jest problem ?
-
Nie sugeruj się moim zdjęciem, ja spreparowałem RomWBW pod swoje potrzeby, gdyż nie dotarły jeszcze do mnie Z80-SIO/0 na 10MHz, a nie chciałem przetaktować posiadanego NMOS-a Sharpa który może pracować z zegarem max. 6.144MHz (a takowy oscylator gdzieś zapodziałem, więc użyłem 3.6864MHz). Docelowo zegar portu szeregowego też będzie taktowany innym oscylatorem (2.4576MHz) by uzyskać oczekiwaną transmisję 38400 bps. Domyślny config ROMWBW pod EasyZ80 jest przygotowany zgodnie z projektem, tak jak na pierwszym zdjęciu, więc jeśli nie dokonano przeróbek to powinien on działać.
-
A ja teraz zauważyłem, że Easy Z80 ma piny do szyny RC2014 ;)
-
W zasadzie to się podłącze do tego wątku. Przyszły mi z AliExpress zakupione układy, m.inn. zamówiony Z84C3008PEC czyli Z80 CTC.
Na układzie, co prawda jest symbol Z84C3008PEC ale zamiast Z80 CTC, jest Z80 CPC. Czyżby pomyłka w nadruku przez sprzedających w Chinach ? ;)
Załączam fotkę. Korzystając z wyszukiwarki nie znalazłem czegoś takiego jak Z80 CPC, a jeśli już to znajduję odnośniki ale do Amstrada.
-
Pytanie, na czym tak naprawdę to nadrukowali... :)
-
Jak im się to opłaca... niby Chińczycy to pragmatyczny naród, a tu się okazuje że drzemią w nich ambicje artystów malarzy. Może ten licznik jest dedykowany dla Amstradów, stąd to CPC ;)
Nawet nie musisz sprawdzać górnej powierzchni acetonem, to są piękne pisanki... wystaw 1 gwiazdkę i miej nadzieję że są tym, czego oczekujesz.
-
Z doświadczenia wiem że nadrukowują często na tym co im podejdzie pi*drzwi na podobnych obudowach układów scalonych, jednak czasem trafia się działający przedruk z zamiennika innej firmy danego układu.
Może nie akurat w tym przypadku ;)
Kulturowo to podobno akceptowalne w ich przypadku, zysk za wszelką cenę a strata w wyniku wykrycia oszustwa jest wliczona w koszty operacyjne, interes sprzedawcy jest tu priorytetem.
Sam posiadam kilkanaście układów tam kupionych w ciągu kilku ostatnich lat jakich jeszcze nie sprawdziłem :o