Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Cóż, może to nie być przydatne dla wszystkich, ponieważ większość z was prawdopodobnie nie posiada zepsutego klasycznego Maca. Jednak bardzo podoba mi się wyświetlanie tej rzeczy i lata temu z powodzeniem podłączyłem ją do BBB. Jednak nigdy nie byłem w stanie wyświetlić zawartości bufora ramki. Ale Raspberry Pi i jego wbudowane DPI pozwalają podłączyć praktycznie każdy zewnętrzny monitor i używać go do wygodnego wyświetlania wyjścia wideo.
Zauważ, że jest to uproszczona kopia oryginalnego artykułu opublikowanego na mojej osobistej stronie internetowej. Oryginalna wersja omawia kilka dodatkowych szczegółów technicznych i problemów, które miałem podczas tego projektu.
Kieszonkowe dzieci
Będziesz potrzebował:
- Karta techniczna twojego wyświetlacza
- 40-pinowe Raspberry Pi (2B+ lub nowsze)
- Dowolny (przynajmniej trochę) standardowy monitor
- Opcjonalnie: konwerter poziomów logicznych 3,3 V na 5 V (w zależności od monitora)
- Przewody
Krok 1: Znajdź informacje o czasie i sygnale
Jest to prawdopodobnie najtrudniejszy krok w całym projekcie, ponieważ podręczniki użytkownika zwykle nie zawierają tych informacji. Myślę, że najlepiej zacząć od wyszukania instrukcji technicznych lub instrukcji naprawy monitora. Jeśli monitor jest standardowym wyświetlaczem VGA, informacje o taktowaniu można wyszukać w Internecie.
W każdym razie, wyświetlany jest diagram taktowania wewnętrznego monitora CRT Macintosh Classic. Na szczęście ktoś przesłał stare notatki programisty, które zawierają wszelkiego rodzaju szczegóły techniczne dotyczące tego komputera. Dokładne czasy omówię w późniejszym kroku tej instrukcji.
Jeśli nie wiesz, jak działają sygnały VGA (lub sygnał wyświetlacza tego komputera Mac), możesz zapoznać się z tymi zasobami:
- Sygnały VGA
- CRT Macintosha Classic
Krok 2: O trybie DPI
Być może widziałeś niektóre nakładki na wyświetlacze Raspberry Pi, które łączą się tylko przez interfejs GPIO. Wykorzystują one tryb DPI 40-pinowego GPIO Raspberry Pi, który jest jedną z alternatywnych funkcji GPIO.
W takim przypadku zmienia się pinout banku GPIO. Wynik można zobaczyć na obrazie (źródło obrazu).
Ta konfiguracja umożliwia podłączenie równoległych wyświetlaczy RGB do GPIO Raspberry Pi. Oznacza to jednak również, że większość pinów GPIO nie może być wykorzystana do innych zadań, gdy Pi działa w trybie DPI.
Ten interfejs jest kontrolowany przez oprogramowanie układowe GPU i można go skonfigurować za pomocą specjalnych parametrów config.txt. Co więcej, będziesz musiał również załadować i włączyć odpowiednią nakładkę drzewa urządzeń systemu Linux.
Krok 3: Włączenie trybu DPI
Jak wspomniano, tryb jest włączany przez załadowanie odpowiedniej nakładki drzewa urządzeń systemu Linux. Ale najpierw musisz wyłączyć I2C i SPI, ponieważ będą one kolidować z niektórymi pinami wideo. Aby to zrobić, edytuj plik config.txt:
sudo nano /boot/config.txt
W tym pliku zakomentuj następujące dwie linie:
dtparam=i2c_arm=ondtparam=spi=włączone
Gdy to zrobisz, przełącz GPIO w tryb Alt2, ładując DTO:
# Tryb 24-bitowy modedtoverlay=dpi24# Tryb 18-bitowy# dtoverlay=dpi18
Tryb zależy od monitora. Użyłem trybu 8-bitowego, w którym każdy kolor (czerwony, zielony i niebieski) ma osiem oddzielnych bitów, które przesyłają informacje o kolorze do monitora. Zauważ, że oba DTO są już domyślnie zainstalowane.
Krok 4: Konfiguracja sprzętu wideo
Tryb DPI można skonfigurować, umieszczając specjalne atrybuty w pliku config.txt. Napisałem tę małą aplikację Java, która pozwoli Ci szybko wprowadzić wszystkie potrzebne informacje. Następnie wygeneruje dla Ciebie atrybuty i wystarczy je dodać do pliku config.txt.
To narzędzie jest uniwersalne i może być również używane do tworzenia właściwości konfiguracyjnych dla innych wyświetlaczy. Różne pola i parametry są wyjaśnione na stronie pobierania aplikacji. Użyłem następujących dwóch atrybutów dla Macintosh Classic CRT:
dpi_output_format=0x76017dpi_timings=512 0 14 178 0 342 0 0 4 24 0 0 0 60 0 15667200 1
Krok 5: Skonfiguruj bufor ramki i skonfiguruj niestandardowy tryb wideo
Możesz użyć wstępnie skonfigurowanego trybu pomiaru czasu lub zdefiniować własny. W takim przypadku do interfejsu wyświetlacza nie można użyć żadnego standardowego trybu wideo. Dlatego musiałem zdefiniować niestandardowy tryb wideo, co można zrobić, ustawiając następujące dwie flagi w pliku config.txt:
dpi_group=2dpi_mode=87
Zapewni to, że parametr dpi_timings, opisany powyżej, jest używany przez sterownik podczas uruchamiania Raspberry Pi.
Następnie należy skonfigurować bufor ramki. Użyłem następujących ustawień dla Mac Classic CRT:
overscan_left=0overscan_right=0overscan_top=0overscan_bottom=0framebuffer_width=512framebuffer_height=342enable_dpi_lcd=1display_default_lcd=1
Ostatnie dwie linie zapewnią, że sygnały wideo zostaną wygenerowane i że DPI zostanie użyte do wyprowadzenia zawartości bufora ramki.
Wartości overscan mogą być użyte do wyśrodkowania obrazu, jeśli nie powinien być wyśrodkowany. Jednak mój od razu był w porządku, więc nie użyłem tych wartości.
Krok 6: Podłączanie wszystkiego
Ten krok jest dość prosty. Wystarczy podłączyć linię HSYNC Raspberry Pi (GPIO 5) i linię VSYNC Pi (GPIO 3) do linii HSYNC i VSYNC wyświetlacza. Nie zapomnij podłączyć przewodu uziemiającego wyświetlacza do pinu GND na Pi. Następnie podłącz kolorowe linie Raspberry Pi do wyświetlacza. Ten krok różni się w zależności od konfiguracji i wyświetlacza.
Wyświetlacz komputera Mac Classic jest jednobitowym wyświetlaczem monochromatycznym, więc po prostu użyłem pojedynczej kolorowej linii do połączenia linii danych ekranu. To szybkie i brudne rozwiązanie, a ekran porządnie podepnę w innym artykule.
Krok 7: Podsumowanie
I to wszystko, co musisz zrobić! To zmieniło mój stary, zepsuty Macintosh Classic w fajny i użyteczny element wystawowy. Na szczęście bardzo łatwo jest ustawić tryb DPI i skonfigurować go do pracy z prawie każdym wyświetlaczem, nawet 30-letnimi CRT. Ta metoda pozwala mi renderować dane wyjściowe pulpitu i konsoli bez żadnych skomplikowanych programów i modyfikacji sprzętowych.
Uwaga: w tej instrukcji pominięto kilka szczegółów, aby była krótka i łatwiejsza do zrozumienia. Cały artykuł można przeczytać na nerdhut.de!