Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Przenośna konsola do gier wideo

Kubald 04 Lut 2013 20:18 11448 0
  • Przenośna konsola do gier wideo

    Swego czasu autor wpadł na pomysł zbudowania od zera swojej przenośnej konsoli do gier wideo. Autor nie jest elektronikiem, bliższe są mu komputery, ale w wolnych chwilach lubi tworzyć własne urządzenia. Dlatego należy pamiętać, że poniższy projekt nie jest rozwiązaniem komercyjnym, a jedynie stworzoną dla zabawy wersją konsoli do gier. Z powodu ograniczenia czasu, projekt powstawał przez kilka miesięcy. W poniższym opisie zostaną przedstawione główne aspekty projektu konsoli. Autor udostępnia też dokumentację niezbędną do stworzenia własnej wersji konsoli do gier. Zachęca także do kontaktu w razie jakichkolwiek wątpliwości itd.

    Przygotowanie projektu zostało rozpoczęte od zaprojektowania architektury całego urządzenia, a następnie od prototypowania każdego elementu składowego tak, aby uzyskać jak najlepszy rezultat. Poniższa grafika prezentuje architekturę konsoli:

    Przenośna konsola do gier wideo

    Główne moduły to:
    - CPU – wykorzystano 32-bitowy mikrokontroler Parallax Propeller taktowany zegarem 80 MHz i pamięć 32 kB.
    - Wideo – generowanie obrazu realizowane sprzętowo z wykorzystaniem mikrokontrolera, obraz o 16-bitowej głębi koloru wyświetlany jest na LCD o przekątnej 3,2”. Urządzenie wyposażono też w pamięć VRAM o pojemności 16 MB.
    - Konwerter szeregowo-równoległy – 8-bitowy port szeregowy umożliwiający podłączanie joysticka.
    - Zegar – układ zegara czasu rzeczywistego (RTC).
    - Dźwięk – w całości generowany programowo.
    - Karta pamięci SD.
    - Sieć – konsola wykorzystuje komunikację bezprzewodową Bluetooth.
    - Ekran – rezystancyjna nakładka dotykowa.

    Zastosowany procesor jest układem 32-bitowym i taktowany jest zegarem 80 MHz, pozwala na wykorzystanie 8 niezależnych podjednostek obliczeniowych do wykonywania operacji. Każda jednostka pracuje z wydajnością 20 MIPS (przy taktowaniu 80 MHz), co zapewnia całkowitą wydajność procesora rzędu 160 MIPSów, przy równoległym połączeniu jednostek. Dokładną architekturę procesora Parallax można zobaczyć poniżej:

    Przenośna konsola do gier wideo

    Jako wyświetlacz pracuje gotowy moduł LCD 3,2” o 16-bitowej głębi koloru, z wbudowanym sterownikiem. Moduł wyświetlacza wyposażony jest w gniazdo karty pamięci (SD), pamięć VRAM o pojemności 16 MB i rezystancyjną nakładkę dotykową.

    Jako konwerter szeregowo-równoległy wykorzystano układ 74HC165; pozwala to na stworzenie portu uniwersalnego we/wy, do którego podczas testów przyłączany był joystick Atari. Jako zegar czasu rzeczywistego pracuje układ DS1338, który pozwala m.in. na właściwe kontrolowanie daty i czasu zapisu plików na karcie pamięci.

    Dwa piny mikrokontrolera zostały zarezerwowane do generowania dźwięków stereo. W tym celu nie wykorzystano żadnego dedykowanego układu – dźwięk jest generowany wyłącznie programowo. Procesor może generować rozmaite przebiegi: prostokątny, sinusoidalny, trójkątny, szum itd.

    Moduł LCD wyposażono również w gniazdo kart SD, sterowanych przy pomocą protokołu SPI. W konsoli może pracować dowolna karta SD z systemem plików FAT16.

    Aby można było grać w gry w trybie multiplayer, konsola została wyposażona w moduł Bluetooth, który pozwala na połączenie dwu bądź więcej konsol. Komunikacja wykorzystuje szeregowe przesyłanie danych.

    Interakcja z urządzeniem zachodzi głównie za pomocą nakładki dotykowej.

    Schemat całości można zobaczyć poniżej:

    Przenośna konsola do gier wideo

    1. Układ reset – resetujący główne układy konsoli.
    2. Moduł Bluetooth.
    3. Zegar czasu rzeczywistego.
    4. Port we/wy – na przykład do podłączania joysticka.
    5. Pamięć EEPROM o pojemności 32 kB, zbudowana w oparciu o układ 24LC256, służąca do przechowywania firmware’u konsoli.
    6. Interfejs do programowania.
    7. Zespół multiplekserów, służących do programowego podłączania peryferii.
    8. Moduł LCD i mikrokontroler.
    9. Wyjście audio – gniazdo jack i zespół filtrów.
    10. Układ zasilania.

    Ponieważ zastosowany procesor został wyposażony jedynie w 32 wyprowadzenia, trudnością było podłączenie aż 7 obwodów peryferyjnych do wyprowadzeń układu, zwłaszcza, że jeszcze spora część z nich musi być zajęta przez moduł wyświetlacza. W sumie, do podłączania pozostałych pięciu obwodów pozostaje jedynie 11 wyprowadzeń, więc konieczne było użycie multiplekserów czterokanałowych. Rozkład wyprowadzeń i konfigurację wewnętrznych „przełączników” multipleksera PO3B20A firmy Potato Semi. można zobaczyć poniżej.

    Przenośna konsola do gier wideo

    Po co stosować zewnętrzny układ resetu, jeśli procesor posiada wbudowany tego typu obwód? Tutaj znów istotna staje się kwestia małej ilości wyprowadzeń. Każdy z multiplekserów wymaga podawania sygnału na wejście SEL, aby móc go kontrolować. Także mikroprocesor używa jedynie dwu wyprowadzeń do odczytu firmware’u z pamięci EEPROM podczas resetu, po tym pamięć EEPROM nie jest używana. Dlatego zaprojektowany układ resetu uaktywnia multiplekser, przyłączając pamięć EEPROM do wyprowadzeń mikrokontrolera tylko podczas jego resetu.

    Autor stworzył też oprogramowanie dla każdego modułu konsoli, korzystając też z kodu napisanego przez osoby trzecie, np. do obsługi kart SD. Oprogramowanie zostało napisane w języku assemblera.

    Autor podsumowuje, że projekt był dla niego dużym wyzwaniem, które pozwoliło lepiej zrozumieć wiele aspektów konstrukcji i programowania takich urządzeń. Całość projektu oparta jest na licencji Creative Commons.

    Poniżej można zobaczyć nagrania pokazujące działanie urządzenia. Więcej materiałów wideo można znaleźć na stronie źródłowej.

    Link


    Link


    Link


    Na stronie źródłowej autor udostępnia karty katalogowe ważniejszych elementów konsoli oraz kody dla procesora, a także dokładny opis funkcji i działania poszczególnych wyprowadzeń mikrokontrolera.

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    Kubald
    Poziom 15  
    Offline 
    Specjalizuje się w: spektroskopia exafs/xanes, uc, it
    Kubald napisał 192 postów o ocenie 65, pomógł 0 razy. Mieszka w mieście Kraków. Jest z nami od 2004 roku.