Autor Wątek: Karabas-128 - ZX Spectrum 128k clone  (Przeczytany 30360 razy)

Atlantis

  • **
  • Wiadomości: 98
  • Miejsce pobytu:
    Kraków
Odp: Karabas-128 - ZX Spectrum 128k clone
« Odpowiedź #210 dnia: 2021.06.20, 11:36:52 »
Mój Karabas działa poprawnie z procesorami CMOS, jednak głupieje wtedy z niektórymi interface np DivMMC.

Jestem tym zaskoczony o tyle, że przecież procesory CMOS powinny dużo bardziej pasować do układów 74HC, względnie współczesnego CPLD oraz tego czegoś, co siedzi w DivMMC, cokolwiek to jest. ;)

zaxon

  • *****
  • Wiadomości: 4421
Odp: Karabas-128 - ZX Spectrum 128k clone
« Odpowiedź #211 dnia: 2021.06.20, 11:45:44 »
Bo w Karabasie  wyjście zegara na krawędziówkę sobie trzeba poprawić ....A każde MMC jest na to bardzo wrażliwe.
Siedem kilo smalcu,gesich jajek kopa,zeby moc to polknac tegiego trza chlopa. GG 3456993

Klaud

  • *****
  • Wiadomości: 6155
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • KL
Odp: Karabas-128 - ZX Spectrum 128k clone
« Odpowiedź #212 dnia: 2021.06.20, 13:29:17 »
CPLD są zgodne z poziomami TTL, ale niekoniecznie z CMOS. Altera MAX7000S nie jest wyjątkiem, ponieważ jej wyjścia są typu „open drain”, a wewnętrzne podciągnie do Vccio jest odcinane, jeśli napięcie przekroczy ok 3.8V. Można poprawić zgodność Karabasa z procesorami CMOS poprzez dodanie pull-upa 4k7 do linii CPU_CLK.

Cytuj
When VCCIO is 5.0 V, setting the output drain option is not necessary because the pull-up transistor will already turn off when the pin exceeds approximately 3.8 V, allowing the external pull-up resistor to pull the output high enough to meet 5.0-V CMOS input voltages.
KL
-----
R Tape loading error 0:1

damik

  • Rosin sniffer
  • *****
  • Wiadomości: 1522
  • Miejsce pobytu:
    Bytom
  • ZX Everyday
Odp: Karabas-128 - ZX Spectrum 128k clone
« Odpowiedź #213 dnia: 2021.06.20, 22:38:15 »
Bo w Karabasie  wyjście zegara na krawędziówkę sobie trzeba poprawić ....A każde MMC jest na to bardzo wrażliwe.

Z kilkoma procesorami CMOS dziwnie się zachowuje nawet oryginalny ZX Spectrum issue 3, jak się go potrzyma trochę dłużej do pełnego nagrzania w zamkniętej obudowie, gdzie ta sama płyta ale z prockiem NMOS działa z tym MMC idealnie.  :o

Natomiast z DivIDE nie miałem nigdy podobnych problemów z procesorami CMOS.

Już kiedyś chyba opisywałem ten przypadek na forum...
Wszystkiego po trochu: schwarz, mydło i powidło...

Maryjan

  • *****
  • Wiadomości: 5861
  • Miejsce pobytu:
    Skarżysko-Kam.
  • Scotch whiskey and West Highland Terrier
Odp: Karabas-128 - ZX Spectrum 128k clone
« Odpowiedź #214 dnia: 2021.06.21, 09:24:11 »
Jeśli chodzi o DivIDE, to ważne jest, co mamy w GAL-ach, które tam siedzą.
"... podobno są dwie szkoły, Falenicka i Otwocka."

Atlantis

  • **
  • Wiadomości: 98
  • Miejsce pobytu:
    Kraków
Odp: Karabas-128 - ZX Spectrum 128k clone
« Odpowiedź #215 dnia: 2021.06.21, 09:29:08 »
Bo w Karabasie  wyjście zegara na krawędziówkę sobie trzeba poprawić ....A każde MMC jest na to bardzo wrażliwe.

To już chyba zostało poprawione w rewizji B1. Chodziło o to, że sygnał na złączu krawędziowym powinien być zanegowany.

Klaud

  • *****
  • Wiadomości: 6155
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • KL
Odp: Karabas-128 - ZX Spectrum 128k clone
« Odpowiedź #216 dnia: 2021.06.21, 22:17:24 »
Zajrzałem do schematu wersji B1. Tak, jest tam dość silny pull-up 2k2 dla linii CPU_CLK. Ponad to sygnał zegarowy wyprowadzono na złącze krawędziowe przez bramkę NOT (74HC04). Na złączu sygnał zegara jest odwrócony i buforowany.

Pamiętaj, że Z80 ma ściśle określone wymagania co do jakości sygnału zegarowego. Bez oscyloskopu i podejrzenia, jak wyglądają oba sygnały zegarowe w Karabasie możemy sobie gdybać w nieskończoność.
KL
-----
R Tape loading error 0:1

Atlantis

  • **
  • Wiadomości: 98
  • Miejsce pobytu:
    Kraków
Odp: Karabas-128 - ZX Spectrum 128k clone
« Odpowiedź #217 dnia: 2021.06.21, 23:07:27 »
Zajrzałem do schematu wersji B1. Tak, jest tam dość silny pull-up 2k2 dla linii CPU_CLK.

Myślisz, że to przez niego procesor CMOS może mieć problem z działaniem w tym układzie? Rezystor powinien mieć większą wartość?

Klaud

  • *****
  • Wiadomości: 6155
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • KL
Odp: Karabas-128 - ZX Spectrum 128k clone
« Odpowiedź #218 dnia: 2021.06.23, 08:18:15 »
Myślę, że w większości klonów zastosowano uproszczenie, że z CPLD/ULA sygnał zegarowy będzie wprost podawany na wejście zegarowe Z80, a zegar na złączu krawędziowym będzie przez inwerte np. 74xx04. Ma to pewien sens, aby nie uszkodzić CPLD przez zewnętrzny interfejs, co przy układach SMD ma znaczenie. Niestety takie podejście skutkuje tym, że nie każda wersja Z80 działa poprawnie w samym klonie. Z80 (wszystkie wersje) są dość wymagające pod względem poziomów napięć oraz czasów narostu i opadania sygnału zegarowego. Dokumentacja Z80 (najlepiej f-my MOSTEK dla MK3880) dokładnie opisuje w jaki sposób powinien być formowany sygnał zegarowy. W samym ZX Spectrum (ZX81 i toastracku też) ULA podaje sygnał wprost na złącze krawędziowe, a zegar dla CPU przechodzi przez układ formujący na szybkim tranzystorze przełączającym (ZTX313). Oficjalne klony ZX Spectrum (czyt. Timexy) miały wyjścia zegarowe rozwiązane trochę inaczej, bliżej współczesnym klonom.

Tak na marginesie, sygnał zegarowy generowany przez ULA'e w toastracku jest kiepski, stąd jego "polepszacze" w różnych interfejsach.

Chcesz poprawić wyjście zegarowe z CPLD, to wylutuj pull-up do linii CPU_CLK, a zamiast niego zamontuj szeregowo połączony rezystor 220R i potencjometr precyzyjny 2k2. Metodą empiryczną dobierz taką wartość pull-upa, która będzie działała dla każdego typu procesora. Niestety takie rozwiązanie będzie półśrodkiem, ponieważ w zależności od typu zastosowanego procesora (NMOS/CMOS) zmienia się pojemność wejścia zegarowego (35pF dla NMOS i 15pF dla CMOS). Jeśli klon ma tryby turbo (x2, x4) sytuacja komplikuje się jeszcze bardziej, ponieważ czasy narostu i opadania sygnału zegarowego stają się jeszcze bardziej wyśrubowane wraz ze wzrostem prędkości zegara.
« Ostatnia zmiana: 2021.06.23, 09:05:56 wysłana przez Klaud »
KL
-----
R Tape loading error 0:1

Atlantis

  • **
  • Wiadomości: 98
  • Miejsce pobytu:
    Kraków
Odp: Karabas-128 - ZX Spectrum 128k clone
« Odpowiedź #219 dnia: 2021.07.06, 11:36:18 »
Jeszcze jedno pytanie. Czy w Karabasie 128 mogę użyć układu AY-3-8912 (bez "A" na końcu)? Pytam, ponieważ udało mi się kupić układ w takiej wersji, a dopiero potem zorientowałem się, że na schemacie i w BOM wymieniony jest AY-3-8912A. Czy jest jakaś znacząca różnica? I czy to normalne, że AY-3-8912 podczas pracy komputera robi się nieco ciepły? Generowania dźwięku jeszcze nie przetestowałem, bo nie mam ani DivMMC ani klawiatury, żeby załadować jakieś demo lub grę. ;)

Maryjan

  • *****
  • Wiadomości: 5861
  • Miejsce pobytu:
    Skarżysko-Kam.
  • Scotch whiskey and West Highland Terrier
Odp: Karabas-128 - ZX Spectrum 128k clone
« Odpowiedź #220 dnia: 2021.07.06, 12:50:16 »
Tak, możesz.
Zezwalam :)
"... podobno są dwie szkoły, Falenicka i Otwocka."

zaxon

  • *****
  • Wiadomości: 4421
Odp: Karabas-128 - ZX Spectrum 128k clone
« Odpowiedź #221 dnia: 2021.07.06, 21:38:17 »
Napisałbym tu coś na ten temat ale regulamin mi niestety nie pozwala. Sorry.
Siedem kilo smalcu,gesich jajek kopa,zeby moc to polknac tegiego trza chlopa. GG 3456993

tapy

  • ***
  • Wiadomości: 119
Odp: Karabas-128 - ZX Spectrum 128k clone
« Odpowiedź #222 dnia: 2021.07.07, 09:34:38 »
Przypadkiem nie jest tak, że te dość rygorystyczne parametry czasów narastania, poziomów napięć zegara nie są powiązane tylko i wyłącznie z technologią NMOS, która miała swoje ograniczenia? Jak dobrze pamiętam, dla każdego procesora NMOS miało to ogromne znaczenie. Technologia CMOS radykalnie to zmieniła. Z dostępnej literatury najlepiej ten problem opisany został w przypadku innego procesora firmy Zilog - Z8000, tam dobranie tranzystorów formujących sygnał zegarowy miało kluczowe znaczenie.

Klaud

  • *****
  • Wiadomości: 6155
  • Miejsce pobytu:
    trzecia planeta od Słońca
  • KL
Odp: Karabas-128 - ZX Spectrum 128k clone
« Odpowiedź #223 dnia: 2021.07.07, 09:55:31 »
Nie sądzę, ponieważ Zilog w karcie katalogowej Z80 w wersji CMOS z 2016 (http://www.zilog.com/docs/z80/UM0080.pdf) roku napisał:

Cytuj
CLK. Clock (input). Single-phase MOS-level clock.

Owszem zmieniła się pojemność wejścia zegarowego w zależności do technologi wykonania procesora. I tak dla NMOS jest ona do 35pF, a dla CMOS do 15pF. Dla CMOSa łatwiej sprostać czasom narastania i opadania sygnału, ale poziomy wymaganych napięć zostały niezmienne.
« Ostatnia zmiana: 2021.07.07, 10:12:15 wysłana przez Klaud »
KL
-----
R Tape loading error 0:1

tapy

  • ***
  • Wiadomości: 119
Odp: Karabas-128 - ZX Spectrum 128k clone
« Odpowiedź #224 dnia: 2021.07.07, 10:13:52 »
Takie poziomy napięć zapewnią dowolne układy z serii HC. W układach NMOS problemem była prędkość narastania i opadania sygnału zegarowego, dlatego w Spectrum stosowano tranzystory, które musiały spełniać wyśrubowane wymagania w kwestii Turn-On/Turn-Off Time.