Byłem na etapie wykonywania przejściówki Pegasus->Sega i troche się zdenerwowałem. Chodziło o wykonanie prostego adaptera, który umożliwi obsługę konsol z rodziny Sega (Geme Gear, Master System) za pomocą pada od Pegasusa.
9 przewodów wystarczyłoby w sam raz do równoległego przesyłu stanu 8 przycisków (+ masa). Niestety każda z konsol ma swój, odmienny protokół przesyłu stanu joypada, więc konieczny był jakiś układ "tłumaczący". Najprostszym i najtańszym sposobem okazało się zaprzęgnięcie Atmegi8 do tego celu.
O ile w przypadku Pegasusa dane przesyłane są szeregowo w ciągu 8 cykli, to w Sedze na 4 liniach multipleksowane są stany przycisków (decyduje o tym linia Select). Mikroprocesor odpytuje cyklicznie joypad pegasusa o stan klawiszy i wystawia dane w odpowiednim formacie dla Segi.
Widok na gniazdo w konsoli Sega:
+---------------------+
\ (1) (2) (3) (4) (5) /
\ (6) (7) (8) (9) /
+-----------------+
1 = UP
2 = DOWN
3 = Select=1:LEFT, 1:GND
4 = Select=1:RIGHT, 0:GND
5 = +5V
6 = Select=1:BTNB, 0:BTNA
7 = Select
8 = GND
9 = Select=1:BTNC, 0:Start
Powstała więc taka fajna płytka:
Niestety z uwagi na błąd w schemacie z pierwszego postu oraz to, że Atmega napędzana nawet wewnętrznym kwarcem 8 MHz jest zbyt wolna do tego celu, płytka poszła do kosza.
Kolejnym naturalnym pomysłem było wykorzystanie multipleksera 74157. Atmega wystawia stan wszystkich 8 przycisków równolegle, a zewnętrzny multiplekser zajmuje się ich przełączeniem.
Pomysł okazał się trafiony i wszystko śmiga, a przy okacji scalak z polskiej fabryki znalazł swój sens życia i już nie "nudzi się" leżąc w pudełku.