Część I : Część II : Część III : Artykuł: Muddler/The Coders

Port użytkownika.

Port B układu U2 (PB0 - PB7) jest dostępny jako port użytkownika, umożliwiając bardzo łatwe przesyłanie danych w postaci równoległej. Linie SP2 i SP1 podłączone są do dwukierunkowych portów szeregowych. Sygnały synchronizacji dla portów szeregowych przesyłane są na dwukierunkowych liniach CNT1 i CNT2.

Opis końcówek mikroprocesora 6510 (8500).

1. Ø1
Wejście zegara Ø1. Zegar Ø1 jest używany przez mikroprocesor do wytworzenia, przesuniętego w fazie, zegara Ø2 o częstotliwości 1 MHz.
2. RDY
Wejście pracy krokowej. Procesor zatrzymuje się, gdy linia przechodzi w stan niski. Na szynie adresowej utrzymany jest adres ostatnio pobranego rozkazu. Wejście to umożliwia współpracę mikroprocesora z urządzeniami wolniejszymi.
3. IRQ
Wejście żądania przerwania. Stan niski tej linii powoduje, że procesor wykonuje skok do adresu określonego przez zawartość komórek pamięci o adresach $FFFE i $FFFF. W związku z tym, że jest to przerwanie maskowalne, skok do podprogramu obsługi przerwania odbędzie się tylko wtedy, gdy przerwanie nie jest zamaskowane.
4. NMI
Wejście przerwania niemaskowalnego. Przejście linii w stan niski powoduje, że procesor wykonuje skok do adresu podprogramu obsługi przerwania, określonego przez zawartość komórek pamięci o adresach $FFFA i $FFFB.
5. AEC
Wejście sterujące uaktywnieniem szyny adresowej. Stan niski na tej linii powoduje, że szyna adresowa mikroprocesora przechodzi w stan wysokiej impedancji, umożliwiając innym urządzeniom przejęcie kontroli nad szyną adresową.
6. VCC
Zasilanie +5V
7 - 20. A0 - 15
Wyjścia adresowe. Jest to jednokierunkowa szyna umożliwiająca adresowanie pamięci i urządzeń we/wy.
22, 23
Szyna adresowa może być wprowadzona w stan wysokiej impedancji przez odpowiednie sterowanie wejścia AEC.
21. GND
Masa.
24 - 29. P0 - P5
Dwukierunkowy port we/wy, który może być sterowany przez komórki pamięci o adresie $0000 i $0001, gdzie:
$0000 - rejestr wyjściowy,
$0001 - rejestr sterujący kierunkiem przepływu danych.
30 - 37. DB0 - BB7
Dwukierunkowa szyna danych. Przesyła dane do lub z urządzeń we/wy i pamięci.
38. R/W
Sygnał wyjściowy czytaj/pisz (read/write). Podczas operacji zapisu procesor ustawia na linii R/W poziom niski, a podczas odczytu poziom wysoki. Sygnał ten jest zwykle używany przy operacjach zapisu i odczytu do uaktywnienia pamięci lub urządzeń we/wy.
39. Ø2
Wyjście zegara Ø2. Procesor generuje zegar Ø2 z sygnału zegarowego Ø1. Sygnały te są przesunięte w fazie o 180o. Współpraca z urządzeniami we/wy i pamięcią odbywa się, gdy zegar Ø2 jest w stanie wysokim.
40. RES
Wejście zerowania. Przejście linii w stan niski powoduje, że procesor przechodzi do wykonywania programu, którego adres jest określony przez zawartość komórek pamięci o adresach $FFFC i $FFFD. Po włączeniu zasilania, gdy generowany jest sygnał zerowania, inicjowane są wszystkie układy sterowane przez mikroprocesor.

Opis końcówek układu WE/WY 6526 CIA.

1. GND
Masa.
2 - 9. PA0 - PA7
Dwukierunkowy port równoległy A.
10 - 17. PB0 - PB7
Dwukierunkowy port równoległy B.
18. PC
Wyjście sterujące. Niski poziom tego wyjścia jest ustawiany po odczycie lub zapisie portu B.
19. TOD
Wejście taktujące zegara, programowane na 50 lub 60 Hz.
20. VCC
Zasilanie +5V.
21. IRQ
Wyjście przerwania podłączone do wejścia IRQ mikroprocesora.
22. R/W
Wejście CZYTAJ/PISZ sterowane sygnałem R/W z mikroprocesora.
23. CS
Wejście wybierające układ. Stan niski tego wejścia powoduje uaktywnienie układu CIA.
24. FLAG
Wejście przerwania, aktywne na opadające zbocze sygnału
25. Ø2
Wejście zegara Ø2, podłączone do zegara Ø2 procesora.
26 - 33. DB0 - DB7
Dwukierunkowa szyna danych, podłączona do szyny danych mikroprocesora.
34. RES
Wejście zerujące, aktywne na stan niski. Inicjuje układ CIA
35 - 38. RS0 - RS3
Wejścia wybierające rejestry. Używane są do wyboru wszystkich wewnętrznych rejestrów układu, któree sterują pracą portów równoległych, układem zegara i portem szeregowym (SP).
39. SP
Dwukierunkowy port szeregowy. Wewnętrzny rejestr układu zamienia dane przesyłane przez mikroprocesor w postaci równoległej na dane szeregowe i odwrotnie.
40. CNT
Wejście licznika. Impulsy w sygnale podłączonym do tego wejścia mogą być zliczane przez wewnętrzny licznik. Właściwość ta może być wykorzystana w przypadku potrzeby określenia częstotliwości występowania pewnych zjawisk.

Opis końcówek generatora dźwięku 6581 SID.

1, 2. CAP1A, 1B
Podłączenie filtrów pojemnościowych.
3, 4. CAP2A, 2B
5. RES
Wejście zerujące, aktywne na stan niski. Inicjuje układ SID.
6. Ø2
Wejście sygnału zegara Ø2.
7. R/W
Wejście sygnału zapis/odczyt.
8. CS
Wejście uaktywniające układ.
9 - 13. A0 - A4
Wejście linii adresowych z procesora.
14. GND
Masa.
15 - 22. D0 - D7
Podłączenie szyny danych.
23. POT Y
Wejście przetwornika analogowo-cyfrowego (A/D), do którego można podłączyć regulowaną rezystancję. Z reguły wykorzystywane do podłączenia manipulatora analogowego ("wiosełka").
24. POT X
Spełnia taką samą funkcję jak POT Y.
25. VCC
Zasilanie +5VDC.
26. EXT IN
Wejście fonii zewnętrznej.
27. AUDIO OUT
Wyjście fonii.
28. VDD
Zasilanie 12VDC.

Schematy różnych typów C64.

251469-1 - 269 KB
251469-2 - 225 KB
251138-1 - 280 KB
251138-2 - 276 KB
326106-1 - 250 KB
326106-2 - 266 KB

252278-1 - 252 KB
252278-2 - 218 KB
252312-1 - 406 KB
252312-2 - 380 KB
250469-1 - 162 KB
250469-2 - 131 KB

Opis i sposoby naprawy ważniejszych uszkodzeń.

1. Po włączeniu zasilania ekran monitora pozostaje wygaszony.
Sprawdź: zasilacz zewnętrzny, Kernal ROM, PLA, CPU 6510, Basic ROM, U8 (7406), VIC II, U9 - U12 (4164 RAM), U21 - U24 (4164 RAM), VR2, CR4, VR1.
2. Po włączeniu zasilania pojawia się komunikat "OUT OF MEMORY ERROR".
Sprawdź: U9 - U12 (4164 RAM), U21 - U24 (4164 RAM), Użyj testu diagnostycznego zapisanego na dysku.
3. Brak kursora.
Sprawdź: 6526 CIA, U15 (74LS139), CPU 6510.
4. Migotanie ciemnego ekranu.
Sprawdź: 6526 CIA, CPU 6510.
5. Po włączeniu - ekran jest w trybie graficznym i migający kursor.
Sprawdź: U14 (74LS258).
6. Po włączeniu wyświetlane są wszystkie znaki.
Sprawdź: U26 (74LS373)
7. Przerywane wyświetlanie.
Sprawdź: C88 (prawdopodobnie zły kontakt).
8. Po włączeniu pojawia się komunikat - "PRESS PLAY ON TAPE" i ekran pozostaje ciemny.
Sprawdź: CPU 6510, R1 (prawdopodobnie brak kontaktu).
9. Po włączeniu kursor jest zablokowany.
Sprawdź: CPU 6510, U20 (556).
10. Kursor wraca do pozycji spoczynkowej po przyciśnięciu RETURN dla komendy RUN.
Sprawdź: Basic ROM.
11. Nie działa komenda POKE.
Sprawdź: Basic ROM.
12. Niepoprawna praca joysticka.
Sprawdź: 6526 CIA, U28 (4066).
13. Nieodpowiednia częstotliwość.
Sprawdź: C70.
14. Brak wyświetlania liter.
Sprawdź: Basic ROM, 6526 CIA.
15. Zamiast liter wyświetlane są znaki graficzne.
Sprawdź: VIC II.
16. Po włączeniu pojawia się komunikat, ale brak kursora.
Sprawdź: 6526 CIA, U15 (74LS139), CPU 6510, Kernal ROM.
17. Kursor "skacze" do pozycji spoczynkowej.
Sprawdź: CPU 6510.
18. W literach pojawiają się niewłaściwe kolory.
Sprawdź: U6 (2114 RAM), U16 (4066).
19. Podczas włączania i wyłączania wyświetlane są różne znaki, kursor jest zablokowany.
Sprawdź: RAM.
20. System nie zeruje się i nie działa klawisz RESTORE.
Sprawdź: U20 (556).
21. W dół ekranu przesuwają się białe pasy.
Sprawdź: zasilacz zewnętrzny, VR2 (stabilizator +5V).
22. Po nagrzaniu znika kursor.
Sprawdź: 6526 CIA.
23. Po nagrzaniu pojawia się komunikat "SYNATAX ERROR".
Sprawdź: RAM, Basic ROM.
24. Po nagrzaniu zaczyna falować obraz na monitorze.
Sprawdź: zasilacz zewnętrzny, U31 (74LS629), U30 (74LS193).
25. Po nagrzaniu mikrokomputer zeruje się, nie można załadować długich programów.
Sprawdź: CPU 6510, Basic ROM.
26. Po nagrzaniu klawiatura działa niepoprawnie.
Sprawdź: 6526 CIA, Basic ROM.
27. Po nagrzaniu przez ekran przesuwają się ciemne pasy.
Sprawdź: zasilacz zewnętrzny, C90, C88, CR4, VR2 (stabilizator +5V).
28. Nie wyłącza się silnik pamięci kasetowej.
Sprawdź: CPU 6510.
29. Silnik pamięci kasetowej obraca się po załadowaniu programu. Tranzystor TIP29 staje się bardzo gorący, istnieje możliwość przepalenia bezpiecznika.
Sprawdź: zwarcie na porcie pamięci kasetowej, R4 (prawdopodobnie rozwarty).
30. Po podłączeniu pamięci kasetowej znika kursor.
Sprawdź: CPU 6510.
31. Pamięć kasetowa obraca się bardzo wolno. Program pozornie ładuje się, ale nie startuje.
Sprawdź: CPU 6510.
32. Podczas ładowania programu z kasety pojawia się komunikat "SYNTAX ERROR".
Sprawdź: U20 (556).
33. Przy używaniu dysku pojawia się komunikat "DEVICE NOT PRESENT ERROR".
Sprawdź: 6526 CIA, CPU 6510, R28, R29, R30.
34. Po próbie załadowania programu dysk kontynuuje przeszukiwanie.
Sprawdź: 6526 CIA.
35. Po przyciśnięciu dowolnego klawisza czwartego wiersza klawiatury, podczas ładowania z dysku, kursor przechodzi do pozycji spoczynkowej.
Sprawdź: U20 (556), R35 (prawdopodobnie brak kontaktu).
36. Podczas ładowania z dysku wyświetlany jest komunikat "FILE NOT FOUND ERROR".
Sprawdź: Kernal ROM, 6526 CIA.
37. Podczas używania dysku wyświetlany jest komunikat "OUT OF MEMORY ERROR".
Sprawdź: U20 (556).

Przed końcem.

I to by było na tyle, jeśli chodzi o pobieżne spojrzenie na wnętrze komodiusza. Muszę tutaj wspomnieć iż powyższy materiał został opracowany na bazie schematu serwisowego komputera Commodore 64 w wersji NTSC. Jednakże wszystkie układy jakie w przyszłości zaprezentuję w tym cyklu będą przystosowane i opisywane pod kątem współpracy z płytą bazową C64 o symbolu 250469. W związku z tym może niekiedy okazać się iż czytelnik posiadający inną płytę bazową będzie zmuszony do wprowadzenia drobnych poprawek w moich układach . Mimo to zachęcam do wnikliwej analizy artykułu i zrozumienia pracy jakże wspaniałej maszynki jaką jest Commodore 64. Przedstawiony powyżej materiał będzie nam pomocny w budowie własnych urządzeń do C64 oraz niezastąpiony w razie awarii komputera.

Zgodnie z obietnicą czas na listę najpotrzebniejszych nam narzędzi i podstawowych części. Oczywiście na dzień dzisiejszy nie jestem w stanie przedstawić spisu wszystkiego co będzie nam potrzebne w przyszłości. Nie należy od razu zaopatrywać się w wszystkie niżej wymienione układy scalone. Dobrym sposobem na pozyskiwanie układów z serii TTL jest demontaż. W dzisiejszych czasach można kupić za grosze płyty główne np. 286, 386... Z nich można wylutować sporo układów (również pamięci statyczne). Jeśli chodzi o pamięci DRAM, to pozyskuję je ze starych kart VGA (te po 512 KB przeważnie posiadają po 8 układów 41464). Natomiast układy z serii 65xx pozyskuje z tanio zakupionych komputerów Commodore (np. C64, C+4, C16, C128 itp.).

Narzędzia:
Lutownica 60 - 100W, wkrętaki, odsysacz do cyny, pęseta, cążki boczne, ostry nóż, wiertarka, wiertła Ø0.75 do Ø6,
Materiały:
Cyna z kalafonią, drut srebrzony na zwory, kalafonia rozpuszczona w spirytusie, laminat do trawienia, roztwór do trawienia płytek, podstawki DIL pod układy, przewód izolowany w formie taśmy itp...
Części elektroniczne:
Układy scalone z serii TTL - 7400, 7402, 7406, 7407, 7408, 7410, 7411, 7442, 7447, 7490, 7492, 7493, 74121, 74138, 74139, 74150, 74151, 74152, 74153, 74154, 74174, 74175, 74240,74244, 74245, 74373, 74374.
Układy scalone z rodziny 65XX: 6502, 6510 (8500), 6520, 6522, 6525, 6526, 6551 (jeśli ktoś myśli o poważnym rozbudowaniu komcia, to te układy będą potrzebne).
Inne układy: 41464 (DRAM), 62256 (SRAM), 8255,
Poza tym rezystory, kondensatory, diody (przede wszystkim 1N4148), tranzystory itp...
Literatura:
1. "Mikroprocesor 6502 i jego rodzina" - Henryk Kruszyński, Krzysztof Kulpa.
2. "Elektronika łatwiejsza niż przypuszczasz - technika cyfrowa" - Dieter Nuhrmann.
3. "Mapa pamięci C64" - autor nieznany.
4. "Schemat Serwisowy Commodore 64" - autor nieznany.

P.S. Jeśli ktoś ma jakieś pytania, to może pisać. W miarę możliwości postaram się odpowiedzieć na zapytania. Jednak niech zainteresowani wezmą pod uwagę iż preferuję pocztę elektroniczną i w przypadku pytań przesłanych pocztą tradycyjną, odpowiem tylko na naprawdę ważne tematy.

Muddler/The Coders
Marcin Żórawski
Nowakowskiego 55/44
87 - 800 Włocławek
tel. 606 - 448 - 045

Część I : Część II : Część III : Artykuł: Muddler/The Coders

 © 1999-2020 Wszystkie prawa zastrzeżone
 Webmaster: Mariusz "Flooder" Młynek