eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaProblem z dekoderem adresówRe: Problem z dekoderem adresów
  • Data: 2025-04-17 13:39:25
    Temat: Re: Problem z dekoderem adresów
    Od: titanus <t...@g...kom> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    W dniu 17.04.2025 o 09:02, Atlantis pisze:
    > On 16.04.2025 14:18, titanus wrote:
    >
    >> Czyżby problem z odpowiednim zwalnianiem linii A14?
    >> Nie widzę co prawda schematu, ale ewidentnie sprawa programowa.
    >
    > Po wprowadzeniu przeróbek linia A14 (podobnie jak wszystkie inne linie)
    > jest sterowana bezpośrednio przez procesor. No, może nie tyle
    > bezpośrednio, co za pośrednictwem bufora 74HCT245. Obecnie w układzie
    > nie ma już żadnych mechanizmów przełączania banków i tymczasowego
    > ustawiania adresów, zostały zastąpione przez ROM shadowing.
    >
    > W każdym razie... Przyjrzałem się jeszcze raz kodowi z GAL-a, rzuciłem
    > okiem na dokumentację układów i przez chwilę byłem pewien, że już
    > znalazłem przyczynę. Mianowicie w oryginalnej wersji sygnał
    > zatrzaskujący wartość z magistrali danych w porcie 74HCT273 był
    > zdefiniowany następująco:
    >
    > /LOCPTCS = /LOCIOCS * /A4 * /WR
    >
    > Tymczasem zatrzaśnięcie wartości w 273 następuje na zboczu rosnącym.
    > Innymi słowy moment ten był opóźniany do samego końca operacji OUT. W
    > takim przypadku sygnał SHADOW_ROM byłby ustawiany tuż przed operacją
    > pobrania kolejnej instrukcji i mógłbym faktycznie mieć problem z
    > timingami na dekoderze adresów, prowadzący do konfliktu na magistrali.
    >
    > Spróbowałem więc najbardziej oczywistego rozwiązania:
    >
    > LOCPTCS = /LOCIOCS * /A4 * /WR
    >
    > Niestety, pudło - nie działa. Nie dosyć, że urządzenie nadal się
    > zawiesza, to jeszcze do rejestru trafia błedna wartość (widzę to, bo nie
    > świeci się jedna z diod podpiętych do tego rejestru, która powinna się
    > świecić).
    >
    > Kolejnym krokiem była próba zsynchronizowania sygnału zatrzaskującego
    > 74273 z zegarem systemowym. W GAL-u mogę to uzyskać w prosty sposób:
    >
    > LOCPTCS.R = /LOCIOCS * /A4 * /WR
    >
    > Teraz wartość nie trafia na wyjście bezpośrednio, ale przez flip-flopa
    > sterowanego zegarem systemowym. Niestety - też nie pomogło. Do portu
    > trafia błędna wartość, system się zawiesza.
    >
    > Jednak co ciekawe:
    >
    > /LOCPTCS.R = /LOCIOCS * /A4 * /WR
    >
    > Daje częściowy sukces. W tej wersji system nie zawiesza się po
    > ustawieniu SHADOW_ROM i przechodzi dalej. Co prawda bootowanie CP/M
    > wywala się nieco później, ale nie jestem pewien czy to nie jest jakiś
    > niezależny błąd...
    >
    > Co więcej - mam podobny projekt na Z80. Tam cała logika dekodera adresów
    > siedzi już w jednym GAL-u, jednak tam także przez pomyłkę użyłem
    > zanegowanej wartości sygnału LOCPTCS. Pomimo tego działał. Spróbowałem
    > też wersji niezanegowanej oraz zatrzaskiwanej - nie robiło mu to
    > najmniejszej różnicy, działał poprawnie w każdej wersji.
    >
    > Czekam jeszcze na paczki z układami 74*273 w wersjach HC i AC.
    > Zobaczymy, czy to w czymś pomoże.

    ...
    wygląda to tak, jakby Twój CS potrzebował więcej "czasu" na
    wygenerowanie swojego stanu względem RW...
    może "po drodze" wstaw jeszcze jakiś jeden lub dwa "noop'y" ?


Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: