Reset do C64 i stacji dysków

Muddler/The Coders

Tak, czas na kwas, to jest na pierwszy układ. Na początku biorąc pod uwagę, iż chcesz poważnie rozszerzać swoją komodę, zrobimy sobie reset do C64, ale taki z prawdziwego zdarzenia. Bynajmniej nie chodzi mi o reset w stylu Action'a czy innego kartridża. Taki reset nie robi nic innego, jak po prostu zwiera linię reset do masy, przez co wszystkie układy komody z wejściem reset ulegają zresetowaniu. Czy zatem można powiedzieć, że "chamski" reset spełnia swoją funkcję ? I tak, i nie. Tak, bo resetuje. Co prawda, powiedzmy, raz na 100 razy, kiedy wciskamy reset w Action'ie zdarza się, iż komoda potrafi się zawiesić i w tym momencie trzeba nacisnąć reset ponownie. Nie spełnia swojej funkcji, ponieważ długość sygnału reset nigdy nie jest taka, jaka być powinna (to nie stanowi zbyt dużego problemu), poza tym dochodzi jeszcze skutek uboczny, jakim są drgania występujące przy wciskaniu mikroprzełącznika. Najlepiej zobrazuje to poniższy rysunek.

Postaramy się wyeliminować te niedogodności. Bystrzy użytkownicy C64 zapytają pewnie, dlaczego komoda po załączeniu bez kartridża włącza się z chwilowym opóźnieniem? Dzieje się tak dlatego, iż układ zerowania C64 ustawia linię reset w stan niski na czas około 0,5 s. Jest to czas wymagany do rozpoczęcia poprawnej pracy przez system. Poza tym kernal sprawdza, czy do portu expansion jest podpięty jakiś kartridż i, jeśli stwierdzi obecność takowego, oddaje mu kontrolę nad systemem (dlatego z wciśniętym Action'em komoda startuje błyskawicznie). Jeśli natomiast kernal nie stwierdzi obecności kartridża, przeprowadza wtedy szereg inicjalizacji urządzeń we/wy, czyści ekran, drukuje komunikaty startowe i oddaje kontrolę Basic'owi (opisane w skrócie, w rzeczywistości dzieje się o wiele więcej i trochę to trwa).

Układy logiczne komodorka zaczynają poprawnie pracować przy napięciu około 4,75 V. W związku z tym linia reset jest utrzymywana w stanie niskim (a z tym samym system nie pracuje), aż do czasu, kiedy napięcie zasilania się ustali, oraz kiedy wszystkie bloki C64 (zegar systemowy, układ video itp.) będą zdolne do pracy.

Reset, który wykonamy, będzie ustawiał linię reset C64 w stan niski na czas 0,517 s (tyle wystarczy do poprawnego zresetowania logiki komody), a przy okazji będzie pozbawiony drgań występujących przy zmianie sygnałów.

Już wiemy, co mamy zrobić. Czas zobaczyć, jak to teraz wykonać. Mój układ polega na zbudowaniu podobnego układu zerowania, jakie były stosowane w starszych wersjach C64, oraz w C+4 i C16. Zachęcam do tej wersji, z tego względu, iż będzie można samemu dostosować długość sygnału reset według własnego uznania (mam nadzieję, że nikomu nie przyjdzie do głowy ustawienia sygnału reset na czas trwania np. 1 minuty?). Oczywiście, gdyby ktoś się uparł, to mógłby zrezygnować z budowy niniejszego układu i zbudować układ reset w oparciu o systemowy układ reset, i poprzez zmianę elementów RC na płycie C64 regulować długość sygnału reset, bowiem każdy komodorek (niezależnie od wersji) posiada na swojej płycie układ zerowania, który z powodzeniem można wykorzystać do zbudowania resetu. Nie zmieniając elementów RC, mamy czas trwania resetu ustalony na wspomniane wcześniej 517 ms. Jednak My jesteśmy ambitni i zbudujemy swój własny układ reset, ponieważ poza resetem komody ma możliwość zresetowania stacji dysków bez resetowania komody. Demomaniacy na pewno wiedzą jak irytujące jest, kiedy to po obejrzeniu jakiegoś trackma okazuje się, iż koder nie zresetował stacji, która po prostu wisi. Trzeba wtedy wyłączać i włączać komodę, aby ta z kolei zresetowała nam stację. Schemat poniżej.

Powiększ 14 KB
Rys. Schemat układu HARD RESET

Dla bardziej dociekliwych pobieżny opis układu. Zaczniemy od bramki NAND. Na wejście nr 13 układu IC2 jest podany na stałe poziom wysoki. Przełącznikiem SW1 możemy podać na nóżkę nr 12 poprzez opornik R3 sygnał wysoki. Elementy R3 i C5 służą do wyeliminowania drgań sygnału powstałych na przełączniku. Jak wiemy bramka NAND realizuje funkcję NAND (jestem bardzo spostrzegawczy) . Tak więc, dopóki przełącznik SW1 jest rozwarty, to zgodnie z tabelą prawdy na wyjściu bramki (nóżka nr 11) jest sygnał wysoki. Po wciśnięciu przełącznika sygnał ten zmieni się na niski. To natomiast spowoduje wyzwolenie układu NE555, który jest uniwersalnym układem czasowym, umożliwiającym generowanie monostabilne impulsów o czasach od mikrosekund do minut oraz generowanie astabilne ciągu impulsów o częstotliwościach aż do 200 kHz. Nie będę się tu rozpisywał na temat tego układu, bowiem w Internecie jest na jego temat bardzo dużo informacji. Warto jednak napisać, iż na długość generowanego impulsu ma wartość elementów R1 i C2. Czas trwania tego impulsu (długość sygnału reset) można wyliczyć według wzoru: 1.1 * R1 * C2 (w naszym przypadku: 1.1 * 47 * 10 = 517 ms). Na nóżce nr 3 układu IC1 uzyskamy sygnał wyjściowy, który jest aktywny stanem wysokim, a ponieważ do zresetowania komody potrzebny jest sygnał niski, to nasz sygnał wyjściowy należy przepuścić przez inwerter. Można by w tym celu użyć bramki NAND (w układzie 7400 są wolne jeszcze 2), jednak nie ma sensu bardziej gmatwać tego układu. Na płycie komody jest układ oznaczony symbolem U22 (7406 - sześć inwerterów), do którego końcówki nr 1 doprowadzony jest sygnał reset generowany przez układ 7414 (sześć inwerterów z układami Schmitta na wejściach). Właśnie do tej końcówki trzeba podlutować wyjście z naszego układu opisane jako RESET SIGNAL.

Pozostałe elementy to: C4, C1 - kondensatory bramkujące zasilanie, R4, R8, R2, R7, R5 - rezystory podciągające linie do określonych poziomów logicznych, D1 - odseparowanie układu od komody, D2 - odseparowanie układu od stacji...

Jeżeli chodzi o montaż, to całość proponuję zmontować na samodzielnie (zadanie domowe) zaprojektowanej i wytrawionej płytce. Jeśli się jednak ktoś uprze, to może zmontować prezentowany układ na płytce uniwersalnej (znam takich, co zrobili to w wersji typu "pająk" - ja! - prototyp). Wyjście oznaczone na schemacie jako Reset signal, jak już wcześniej wspominałem, lutujemy do nóżki nr 1 układu U22 (7406). Wyjście 1541 reset signal należy doprowadzić do nóżki nr 6 serial portu na płycie C64. Poza tym należy jeszcze doprowadzić zasilanie do układu. Układ nie wymaga żadnego strojenia. I to chyba wszystko, co można napisać na temat tego układu. Gorące pozdrowienia (podgrzane lutownicą) i do zobaczenia w kolejnym odcinku elektrospawacza.

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

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