RTV forum PL | NewsGroups PL

EasyZ80 - ciąg dalszy walki z retro komputerkiem

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - EasyZ80 - ciąg dalszy walki z retro komputerkiem

Atlantis
Guest

Wed Dec 28, 2022 5:18 pm   



Na początku roku pisałem o swoich próbach uruchomienia retro komputerka,
pracującego pod kontrolą CP/M. Zapis tej dyskusji jest dostępny tutaj:

https://groups.google.com/g/pl.misc.elektronika/c/jdOUkAPOeP0/m/gh2BBjLoAQAJ

Dokumentację można znaleźć na GitHubie:
https://github.com/skiselev/easy_z80


Tytułem przypomnienia:
1. Płytka została złożona z elementów pochodzących ze źródeł godnych
zaufania. Ma to znaczenie o tyle, że obecnie można natknąć się na sporo
chipów retro, których oznaczenia zostały zmienione przez chińskich
sprzedawców i nigdy nie ma pewności czy to faktycznie wersja CMOS pod
daną częstotliwość taktowania. Układy z serii Z80 zostały kupione
bodajże w Mouserze, a układy logiczne (przynajmniej te, które się dało)
przetestowałem TL868.
2. Po podłączeniu zasilania widać jakąś aktywność na szynie danych,
szynie adresowej i liniach sterujących. Linia reset reaguje na
naciskanie przycisku, a jego wciśnięcie jest widoczne na magistrali.
3. Widać także sygnały taktujące UART i procesor. Jednak na oscyloskopie
zegar CPU wyglądał podejrzanie - nie był to prawidłowy przebieg
prostokątny, ale z powodu mocno nachylonych zboczy bliżej mu było do
trójkąta albo sinusoidy.

Najważniejsze jednak jest to, że za nic nie mogłem zmusić tej
konstrukcji do prawidłowego działania. Po włączeniu zasilania (albo
kolejnym przyciśnięciu resetu) w terminalu szeregowym nie pojawiała się
żadna treść. Tymczasem powinno się wyświetlić menu startowe.

Dzisiaj wyciągnąłem tę płytkę z szuflady i postanowiłem jej dać jeszcze
jedną szansę. Właściwie jedyną zmianą jaką wprowadziłem było dodanie
rezystora pull-up 2k na linii zegara CPU (oryginalnie go brakowało,
chociaż widzę go w wielu konstrukcjach na Z80).

Nie wiem czy pomogła akurat ta zmiana, czy dzisiaj zwyczajnie miałem
więcej szczęścia, jednak za którymś podłączeniem zasilania/resetem udało
mi się już coś uzyskać w terminalu. Początkowo były jakieś szczątki
właściwych komunikatów:
https://ibb.co/N2pYkt9
https://ibb.co/4Yn3SPc

Za którymś razem udało mi się jednak uzyskać wspomniane menu:
https://ibb.co/7z5b68T

Niestety nie dało się wybrać żadnej z opcji - prawdopodobnie po
wyświetleniu tej zawartości komputer zawiesił się.

Mamy jednak dowód, że hardware nie jest zupełnie martwy, jednak jest
problem ze stabilnością. Czy ktoś ma pomysł jak to debugować? Przychodzi
mi teraz jeszcze do głowy pomysł wymiany generatora kwarcowego, którym
jest taktowany CPU. Coś jeszcze mogę zrobić/sprawdzić?

Jacek
Guest

Wed Dec 28, 2022 5:18 pm   



Atlantis <marekw1986NOSPAM_at_wp.pl> Wrote in message:r
Quote:
Na początku roku pisałem o swoich próbach uruchomienia retro komputerka, pracującego pod kontrolą CP/M. Zapis tej dyskusji jest dostępny tutaj:https://groups.google.com/g/pl.misc.elektronika/c/jdOUkAPOeP0/m/gh2BBjLoAQAJDokumentację można znaleźć na GitHubie:https://github.com/skiselev/easy_z80Tytułem przypomnienia:1. Płytka została złożona z elementów pochodzących ze źródeł godnych zaufania. Ma to znaczenie o tyle, że obecnie można natknąć się na sporo chipów retro, których oznaczenia zostały zmienione przez chińskich sprzedawców i nigdy nie ma pewności czy to faktycznie wersja CMOS pod daną częstotliwość taktowania. Układy z serii Z80 zostały kupione bodajże w Mouserze, a układy logiczne (przynajmniej te, które się dało) przetestowałem TL868.2. Po podłączeniu zasilania widać jakąś aktywność na szynie danych, szynie adresowej i liniach sterujących. Linia reset reaguje na naciskanie przycisku, a jego wciśnięcie jest widoczne na magistrali.3. Widać także sygnały taktujące UART i procesor. Jednak na oscyloskopie zegar CPU wyglądał podejrzanie - nie był to prawidłowy przebieg prostokątny, ale z powodu mocno nachylonych zb
oczy bliżej mu było do trójkąta albo sinusoidy.Najważniejsze jednak jest to, że za nic nie mogłem zmusić tej konstrukcji do prawidłowego działania. Po włączeniu zasilania (albo kolejnym przyciśnięciu resetu) w terminalu szeregowym nie pojawiała się żadna treść. Tymczasem powinno się wyświetlić menu startowe.Dzisiaj wyciągnąłem tę płytkę z szuflady i postanowiłem jej dać jeszcze jedną szansę. Właściwie jedyną zmianą jaką wprowadziłem było dodanie rezystora pull-up 2k na linii zegara CPU (oryginalnie go brakowało, chociaż widzę go w wielu konstrukcjach na Z80).Nie wiem czy pomogła akurat ta zmiana, czy dzisiaj zwyczajnie miałem więcej szczęścia, jednak za którymś podłączeniem zasilania/resetem udało mi się już coś uzyskać w terminalu. Początkowo były jakieś szczątki właściwych komunikatów:https://ibb.co/N2pYkt9https://ibb.co/4Yn3SPcZa którymś razem udało mi się jednak uzyskać wspomniane menu:https://ibb.co/7z5b68TNiestety nie dało się wybrać żadnej z opcji - prawdopodobnie po wyświetleniu tej zawartości komputer zawiesił się.Mamy jednak dowód, że hardware nie jest zupełnie martwy, jednak jest problem ze s

tabilnością. Czy ktoś ma pomysł jak to debugować? Przychodzi mi teraz jeszcze do głowy pomysł wymiany generatora kwarcowego, którym jest taktowany CPU. Coś jeszcze mogę zrobić/sprawdzić?

Ten pull-up to 470R miał, oidp.
Masz pamięci dynamiczne? Szeregowe rezystory 33R na adresach.

jp
--
jp


----Android NewsGroup Reader----
https://piaohong.s3-us-west-2.amazonaws.com/usenet/index.html

Jacek Maciejewski
Guest

Wed Dec 28, 2022 5:43 pm   



Dnia Wed, 28 Dec 2022 17:18:19 +0100, Atlantis napisał(a):

Quote:
Czy ktoś ma pomysł jak to debugować?
Ja bym zaczął od przylutowania wielu różnych kondensatorów blokujących

zasilanie do masy w różnych miejscach, uzupełniając te które już są.

Quote:
Przychodzi mi teraz jeszcze do głowy pomysł wymiany generatora kwarcowego, którym
jest taktowany CPU
Co prawda, nie wiadomo czym i jak mierzysz ten przebieg ale jeśli masz

możliwość to wymień, nie zaszkodzi a pomóc może.

--
Jacek
I hate haters.

J.F
Guest

Wed Dec 28, 2022 6:03 pm   



On Wed, 28 Dec 2022 17:18:19 +0100, Atlantis wrote:
Quote:
Na początku roku pisałem o swoich próbach uruchomienia retro komputerka,
pracującego pod kontrolą CP/M. Zapis tej dyskusji jest dostępny tutaj:

https://groups.google.com/g/pl.misc.elektronika/c/jdOUkAPOeP0/m/gh2BBjLoAQAJ

Dokumentację można znaleźć na GitHubie:
https://github.com/skiselev/easy_z80


Tytułem przypomnienia:
1. Płytka została złożona z elementów pochodzących ze źródeł godnych
zaufania. Ma to znaczenie o tyle, że obecnie można natknąć się na sporo
chipów retro, których oznaczenia zostały zmienione przez chińskich
sprzedawców i nigdy nie ma pewności czy to faktycznie wersja CMOS pod
daną częstotliwość taktowania. Układy z serii Z80 zostały kupione
bodajże w Mouserze, a układy logiczne (przynajmniej te, które się dało)
przetestowałem TL868.
2. Po podłączeniu zasilania widać jakąś aktywność na szynie danych,
szynie adresowej i liniach sterujących. Linia reset reaguje na
naciskanie przycisku, a jego wciśnięcie jest widoczne na magistrali.
3. Widać także sygnały taktujące UART i procesor. Jednak na oscyloskopie
zegar CPU wyglądał podejrzanie - nie był to prawidłowy przebieg
prostokątny, ale z powodu mocno nachylonych zboczy bliżej mu było do
trójkąta albo sinusoidy.

To potrafi byc efekt oscyloskopu - obciazenia przez niego, lub na
koncu kabla.

Quote:
Najważniejsze jednak jest to, że za nic nie mogłem zmusić tej
konstrukcji do prawidłowego działania. Po włączeniu zasilania (albo
kolejnym przyciśnięciu resetu) w terminalu szeregowym nie pojawiała się
żadna treść. Tymczasem powinno się wyświetlić menu startowe.

Dzisiaj wyciągnąłem tę płytkę z szuflady i postanowiłem jej dać jeszcze
jedną szansę. Właściwie jedyną zmianą jaką wprowadziłem było dodanie
rezystora pull-up 2k na linii zegara CPU (oryginalnie go brakowało,
chociaż widzę go w wielu konstrukcjach na Z80).

Nie wiem czy pomogła akurat ta zmiana, czy dzisiaj zwyczajnie miałem
więcej szczęścia, jednak za którymś podłączeniem zasilania/resetem udało
mi się już coś uzyskać w terminalu. Początkowo były jakieś szczątki
właściwych komunikatów:
https://ibb.co/N2pYkt9

To nie wyglada tak zle

Quote:
Za którymś razem udało mi się jednak uzyskać wspomniane menu:
https://ibb.co/7z5b68T

Niestety nie dało się wybrać żadnej z opcji - prawdopodobnie po
wyświetleniu tej zawartości komputer zawiesił się.

A moze zawartosc dysku zła?
te inne opcje to tez z dysku, czy z ROM?

Quote:
Mamy jednak dowód, że hardware nie jest zupełnie martwy, jednak jest
problem ze stabilnością. Czy ktoś ma pomysł jak to debugować? Przychodzi
mi teraz jeszcze do głowy pomysł wymiany generatora kwarcowego, którym
jest taktowany CPU. Coś jeszcze mogę zrobić/sprawdzić?

Spowolnic zegar dwukrotnie, to bym sprobował.
Jesli to problem predkosci - zaraz wyjdzie.

A jakis analizator, chocby ten Saleae masz?

Choc tu juz raczej nie pomoze - za duzo działa, za trudno bedzie
sledzic co sie dalej dzieje.

Podlacz oscyl do linii adresu, danych - ladniejsze tam przebiegi?

J.

Atlantis
Guest

Wed Dec 28, 2022 8:18 pm   



On 28.12.2022 17:43, Jacek Maciejewski wrote:

Quote:
Ja bym zaczął od przylutowania wielu różnych kondensatorów blokujących
zasilanie do masy w różnych miejscach, uzupełniając te które już są.

Pod tym względem płytka akurat wydaje się być zaprojektowana poprawnie -
kondensatorów blokujących zasilanie jest na niej sporo i są one
poumieszczane chyba przy wszystkich pinach VDD.

Atlantis
Guest

Wed Dec 28, 2022 8:31 pm   



On 28.12.2022 18:03, J.F wrote:

Quote:
To potrafi byc efekt oscyloskopu - obciazenia przez niego, lub na
koncu kabla.

Pomiary były robione na przyzwoitym i względnie współczesnym Siglencie.
Wydaje mi się, że powinien sobie poradzić z sygnałem 10 MHz...


Quote:
A moze zawartosc dysku zła?
te inne opcje to tez z dysku, czy z ROM?

W tej chwili tam nie ma żadnego (fizycznego) dysku. EasyZ80 jest
komputerem zgodnym z magistralą RC2014. Został jednak zaprojektowany w
ten sposób, że może działać jako SBC, gdyż wszystkie podstawowe
komponenty są już na płytce. Podejrzewam, że to widoczne na screenie
IDE0 w tym wypadku oznacza opcjonalną kartę CF. Widać zresztą, że system
jej nie znajduje. Nie powinna być ona jednak wymagana do odpalenia
systemu, gdyż:
1. W ROM-ie mamy m.in. program monitora i dwa interpretery BASIC-a,
które do działania nie wymagają pamięci dyskowej.
2. W ROM-ie rezyduje także CP/M, który powinien ruszyć z wbudowanego ROM
dysku i móc korzystać z RAM dysku. Widać, że system rozpoznaje te nośniki.

Problem w tym, że nawet jeśli uda się wyświetlić to menu, to nie mogę
wybrać żadnej z tych opcji, bo system jest na tym etapie kompletnie
nieresponsywny,


Quote:
A jakis analizator, chocby ten Saleae masz?

Choc tu juz raczej nie pomoze - za duzo działa, za trudno bedzie
sledzic co sie dalej dzieje.

Właśnie od analizatora zaczynałem. Tak doszedłem do wniosków, o których
napisałem na początku (widać aktywność na magistrali, widać reakcję na
reset). Oscyloskopu potrzebowałem tak naprawdę aby upewnić się co do
kształtu przebiegu na linii zegara CPU, bo Saleae już sobie nie radził z
interpretacją (pokazywał nieregularny sygnał prostokątny o wahającej się
częstotliwości).

Trudno będzie mi w tej chwili ustalić w ten sposób coś więcej skoro
wiadomo, że system działa i wykonuje kod, tylko z jakiegoś powodu jest
niestabilny.

Atlantis
Guest

Wed Dec 28, 2022 8:33 pm   



On 28.12.2022 19:51, Jacek wrote:

Quote:
Ten pull-up to 470R miał, oidp.

Opierałem się na innym projekcie ze współczesną wersją CMOS procesora
Z80 - Sizif 512. Tam na linii zegara zastosowano rezystor 2k.


Quote:
Masz pamięci dynamiczne? Szeregowe rezystory 33R na adresach.

Nie ma tam żadnych pamięci dynamicznych. Cały RAM mieści się w jednej
kostce statycznej pamięci 512 kB. Smile

Jacek Maciejewski
Guest

Wed Dec 28, 2022 9:23 pm   



Dnia Wed, 28 Dec 2022 20:18:58 +0100, Atlantis napisał(a):

Quote:
On 28.12.2022 17:43, Jacek Maciejewski wrote:

Ja bym zaczął od przylutowania wielu różnych kondensatorów blokujących
zasilanie do masy w różnych miejscach, uzupełniając te które już są.

Pod tym względem płytka akurat wydaje się być zaprojektowana poprawnie -
kondensatorów blokujących zasilanie jest na niej sporo i są one
poumieszczane chyba przy wszystkich pinach VDD.

Nie żebym się upierał ale w projekcie na pewno były innego typu
kondensatory niż te co użyłeś Smile Jakaś doza nieufności pożądana.
--
Jacek
I hate haters.

Marek
Guest

Thu Dec 29, 2022 9:23 am   



On Wed, 28 Dec 2022 20:33:30 +0100, Atlantis <marekw1986NOSPAM_at_wp.pl>
wrote:
Quote:
Nie ma tam żadnych pamięci dynamicznych. Cały RAM mieści się w
jednej
kostce statycznej pamięci 512 kB. Smile

A co to za kość?

--
Marek

J.F
Guest

Thu Dec 29, 2022 2:41 pm   



On Wed, 28 Dec 2022 20:31:29 +0100, Atlantis wrote:
Quote:
On 28.12.2022 18:03, J.F wrote:
To potrafi byc efekt oscyloskopu - obciazenia przez niego, lub na
koncu kabla.

Pomiary były robione na przyzwoitym i względnie współczesnym Siglencie.
Wydaje mi się, że powinien sobie poradzić z sygnałem 10 MHz...

A kabel z sondą?

Patrze na schemat - tam jest jest gotowy generator QC1?
No to powinien miec mocne wyjscie i sobie z pojemnoscią kabla
poradzic.

Quote:
A moze zawartosc dysku zła?
te inne opcje to tez z dysku, czy z ROM?

W tej chwili tam nie ma żadnego (fizycznego) dysku. EasyZ80 jest
komputerem zgodnym z magistralą RC2014. Został jednak zaprojektowany w
ten sposób, że może działać jako SBC, gdyż wszystkie podstawowe
komponenty są już na płytce. Podejrzewam, że to widoczne na screenie
IDE0 w tym wypadku oznacza opcjonalną kartę CF. Widać zresztą, że system
jej nie znajduje. Nie powinna być ona jednak wymagana do odpalenia
systemu, gdyż:
1. W ROM-ie mamy m.in. program monitora i dwa interpretery BASIC-a,
które do działania nie wymagają pamięci dyskowej.

Tak sie jakos spodziewałem.

Quote:
2. W ROM-ie rezyduje także CP/M, który powinien ruszyć z wbudowanego ROM
dysku i móc korzystać z RAM dysku. Widać, że system rozpoznaje te nośniki.

CP/M normalnie ładuje BDOS z dyskietki. BIOS jest w ROM, ale BDOS nie.
Ale tu moze jakos inaczej.

Quote:
Problem w tym, że nawet jeśli uda się wyświetlić to menu, to nie mogę
wybrać żadnej z tych opcji, bo system jest na tym etapie kompletnie
nieresponsywny,

Jesli chodzi o te monitory i basic, to moze byc jakis problem ze
stronnicowaniem ROM. Ale program schemat i program jak rozumiem -
sprawdzony.

Quote:
A jakis analizator, chocby ten Saleae masz?

Choc tu juz raczej nie pomoze - za duzo działa, za trudno bedzie
sledzic co sie dalej dzieje.

Właśnie od analizatora zaczynałem. Tak doszedłem do wniosków, o których
napisałem na początku (widać aktywność na magistrali, widać reakcję na
reset). Oscyloskopu potrzebowałem tak naprawdę aby upewnić się co do
kształtu przebiegu na linii zegara CPU, bo Saleae już sobie nie radził z
interpretacją (pokazywał nieregularny sygnał prostokątny o wahającej się
częstotliwości).

Trudno będzie mi w tej chwili ustalić w ten sposób coś więcej skoro
wiadomo, że system działa i wykonuje kod, tylko z jakiegoś powodu jest
niestabilny.

dalbym wolniejszy zegar, jak zadziala, to wiadomo gdzie szukac.

Te kondensatory od innego kolegi - tez dobry pomysl.

Jeszcze mozna lekko podgrzac suszarką - ale jak pomoże, to raczej
kwestia predkosci.

J.

alojzy nieborak
Guest

Mon Jan 02, 2023 9:21 pm   



Atlantis napisał(a):


Quote:
2. Po podłączeniu zasilania widać jakąś aktywność na szynie danych,
Przychodzi
mi teraz jeszcze do głowy pomysł wymiany generatora kwarcowego, którym
jest taktowany CPU. Coś jeszcze mogę zrobić/sprawdzić?


Sygnał 10MHz generatora jest wysyłany na pin wyjściowy przez rezystor dopasowujący
50 om. Obciążeniem dla generatora z tego co widzę są ścieżki + 3 czy 4 wejścia
zegarowe uP, na oko wyjdzie ze 35-40 pF. Wymiana generatora nic Ci nie da.. Jak chcesz coś poprawić
daj między generator a uP bramkę TTL coby taktować uP prostokątem.

Tu gościu ustawił sondę na 1:1, zdaje się błędnie, ale tu jest obciążenie 35pF i u Ciebie też pi x oko 35pF)
Bardzo możliwe że uP dostaje takie coś na wejście:
https://youtu.be/XcxqfOrZtmA?t=208

I nie wiadomo na ile twoje MOS`y są tolerancyjne na niesymetryczny sygnał zegarowy,
tym bardziej że wykorzystujesz full możliwą częstotliwość.

Atlantis
Guest

Mon Jan 09, 2023 9:58 pm   



On 2.01.2023 20:21, alojzy nieborak wrote:

Quote:
Sygnał 10MHz generatora jest wysyłany na pin wyjściowy przez
rezystor dopasowujący 50 om.

Mówimy o jakimś rezystorze wewnątrz generatora? Na schemacie go nie widzę...


Quote:
Obciążeniem dla generatora z tego co widzę są ścieżki + 3 czy 4
wejścia zegarowe uP, na oko wyjdzie ze 35-40 pF.

Z tego co widzę wyjście zegarowe jest podłączone do:
- Pinu 6 mikroprocesora Z80
- Pinu 15 układu UART Z84C30
- Pinu 20 układu Z84C40
Wychodzą więc trzy piny. Dodatkowo sygnał ten jest wyprowadzony na
złącze magistrali systemowej. Więc jeśli faktycznie tutaj leży
przyczyna, to sytuacja pogorszy się jeszcze bardziej po wpięciu płytki w
płytę główną i podłączeniu dodatkowych modułów.

Quote:
Wymiana generatora nic Ci nie da. Jak chcesz coś poprawić daj między
generator a uP bramkę TTL coby taktować uP prostokątem.

Aż tak źle wygląda sytuacja z tymi generatorami? Nie ma dostępnej
wersji, która posiadałaby już wbudowany bufor o odpowiedniej wydajności
prądowej? Jeśli nie, to po prostu spróbuję sobie cos takiego zbudować w
formie modułu na elementach SMD, który można by wcisnąć w podstawkę na
miejscu obecnego generatora.
Zastanawia mnie fakt, że to przecież nie jest mój własny projekt
istniejący w jednym prototypie - to dość popularna konstrukcja,
zbudowana przez człowieka znanego w Internecie z tworzenia takich
konstrukcji retro i zreplikowana przez innych konstruktorów. Na
zdjęciach w internecie widać, że ludzie stosują generatory podobne do
mojego, w metalowych obudowach.

Lista elementów podaje, że tym oscylatorem powinien być "10 MHz, CMOS
oscillator, Half Can". Na Mouserze:
https://www.mouser.pl/ProductDetail/774-MXO45HS-3C-10.0

Możliwe, że to czego ja użyłem ma po prostu nieodpowiednią
charakterystykę wyjścia?



Quote:
Tu gościu ustawił sondę na 1:1, zdaje się błędnie, ale tu jest
obciążenie 35pF i u Ciebie też pi x oko 35pF) Bardzo możliwe że uP
dostaje takie coś na wejście: https://youtu.be/XcxqfOrZtmA?t=208

Faktycznie, wygląda to chyba dość podobnie do tego, co widziałem na
linii zegarowej sprawdzając układ oscyloskopem.
Znaczne zmniejszenie prędkości (np. 4 MHz lub nawet 1 MHz) przez wymianę
generatora da szansę na to, że układ testowo ruszy?

alojzy nieborak
Guest

Tue Jan 10, 2023 12:43 am   



Atlantis napisał(a):
Quote:
On 2.01.2023 20:21, alojzy nieborak wrote:

Sygnał 10MHz generatora jest wysyłany na pin wyjściowy przez
rezystor dopasowujący 50 om.

Mówimy o jakimś rezystorze wewnątrz generatora?


Zgadza się. Rezystor 50 om jest wewnątrz generatora.


Quote:
Dodatkowo sygnał ten jest wyprowadzony na
złącze magistrali systemowej.

To jeszcze gorzej.




Quote:
Wymiana generatora nic Ci nie da. Jak chcesz coś poprawić daj między
generator a uP bramkę TTL coby taktować uP prostokątem.

Aż tak źle wygląda sytuacja z tymi generatorami?

Takie są.

Quote:
Nie ma dostępnej
wersji, która posiadałaby już wbudowany bufor o odpowiedniej wydajności
prądowej?

Nie wiem. Ten który zapodałeś z mousera też ma max. I out 10mA
dla zasilania 5V.


Quote:
Jeśli nie, to po prostu spróbuję sobie cos takiego zbudować w
formie modułu na elementach SMD, który można by wcisnąć w podstawkę na
miejscu obecnego generatora.

Na piechotę od zera:
http://www.z80.info/uexosc.htm
lub jak klepałem wcześniej, przetnij linię zegara i wepnij bramkę.

elektroda NewsGroups Forum Index - Elektronika Polska - EasyZ80 - ciąg dalszy walki z retro komputerkiem

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map