-
1. Data: 2025-02-12 00:36:23
Temat: Dziwne zachowanie magistrali adresowej w 8085
Od: Atlantis <m...@w...com>
Od jakiegoś czasu pracuję nad projektem komputerka retro. Powstało już
kilka wersji sprzętu na procesorach 8080 i 8085. Ostatnio zabrałem się
za montaż nowej wersji płytki CPU, która wprowadza pewne zmiany w
stosunku do poprzedniej rewizji. Żeby nie wchodzić w zbędne szczegóły
powiem, że chodzi o dodanie ROM shadowingu, aby odpalony na tym CP/M
mógł mieć RAM w całej przestrzeni adresowej. W każdym razie jakieś 90%
projektu jest identyczne z poprzednią wersją.
Po resecie urządzenie powinno zacząć wykonywać kod z pamięci EPROM, od
adresu 0x0000. Wrzuciłem na EPROM prostego blinka, ten się jednak nie
wykonał. Wyciągnąłem z podstawek wszystkie pamięci, linie D0..D7
podciągnąłem rezystorami do masy (wymuszenie wykonywania rozkazu NOP) i
zacząłem się przyglądać temu, co się dzieje na magistrali.
Pierwsza rzecz, która zwróciła moją uwagę, to zachowanie linii CS_EPROM
i CS_RAM2. Impulsy na tych liniach powinny mieć taką samą długość,
wypełnienie 50% i znajdować się w przeciwfazie (EPROM aktywny gdy A15=0,
RAM gdy A15=1). Tak jednak nie jest - EPROM jest aktywny przez jakieś
25% czasu, RAM przez 75%.
Przyjrzałem się sytuacji na magistrali adresowej. O ile mniej znaczący
bajt (linie A0..A7, zatrzaskiwane w rejestrze 74574) wyglądają normalnie
(współczynnik wypełnienia 50%, impulsy na każdej kolejnej linii dwa razy
dłuższe niż na poprzedniej) to na liniach A8..A15 (dostępnych
bezpośrednio na pinach procesora) dzieje są coś dziwnego - mam tam
krótkie impulsy o częstotliwości 250-500 kHz, które nie są idealnie
stabilne (oscyloskop nie łapie idealnej synchronizacji, a odczyt
częstotliwości pływa).
Próbowałem kilku różnych egzemplarzy 8085 (od różnych producentów) -
nic. Próbowałem oglądać płytkę pod kątem błędu w montażu - nic nie
widzę. Najprawdopodobniej winę za taki stan rzeczy ponosi jakaś moja
pomyłka, ale za nic nie mogę jej zlokalizować.
Ktoś może ma pomysł jaki błąd (albo w jakiej części projektu) może być
odpowiedzialny za takie dziwne zachowanie górnego bajtu magistrali
adresowej?