Kontynuuję swoją zabawę z antycznym procesorem. Wytrawiłem i złożyłem płytkę zawierającą CPU, pamięci i parę innych układów. W dekoderze adresów i układzie przełączania banków pracują układy z serii HCT i LS. Szyna adresowa jest podłączona bezpośrednio do pamięci i wejść dekodera - bufory (74HCT245) dałem dopiero przed złączem, do którego w przyszłości zamierzam podłączyć inne moduły. Płytka jest jednostronna, więc sporo sygnałów musiałem puścić mostkami, gdzieniegdzie masa i zasilanie zostały puszczone w ten sam sposób.
Wszystkie połączenia sprawdziłem wiele razy. Wygląda jednak na to, że urządzenie nie działa prawidłowo. To znaczy działa wybitnie niestabilnie.
Odpaliłem prosty program migający dwiema diodami podłączonymi do
74LS373. Działał on jako tako w momencie, gdy program był prostą pętlą, niekorzystającą z żadnych wywołań funkcji (taka zmiana skutkowała zupełnie chaotycznym zachowaniem LED-ów). Jedyne co zaobserwowałem, to zauważalne zwalnianie tempa migani po położeniu palca na jednym z układów 74HCT00 (układ generujący sygnały WR i RD + jedna bramka w roli inwertera wykorzystywanego w dekoderze adresów).Wylutowałem ten układ i zastąpiłem go gniazdkiem. Próbowałem podmienić go na inne egzemplarze. Na wersji LS i zwykłym UCY7400 w ogóle nie działa (diody nie migają).
Dziwne jest jednak to, że po włożeniu w podstawkę 74HCT00 układ nie zaczął się zachowywać tak, jak na początku. Diody co prawda migają, ale dużo wolniej i nieregularnie, nieraz "przeskakując" swoją kolejkę.
Sytuacja znacznie poprawia się po dotknięciu masy palcem albo podłączeniu oscyloskopu do masy.
Ktoś orientuje się co może odpowiadać za takie zachowanie? Jak to zdebugować?
Próbowałem już poprawić "podejrzane" mostki masy, zastępując je izolowanymi przewodami, podłączonymi bliżej gniazdka zasilana.
Może mieć znaczenie fakt, że pole masy tworzy "pierścień na obrzeżu płytki?