Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
No, to nemusí být užitečné pro každého, protože většina z vás pravděpodobně nevlastní rozbitý klasický Mac. Ale opravdu se mi líbí zobrazení té věci a před lety jsem ji úspěšně připojil k BBB. Nikdy se mi však nepodařilo zobrazit obsah framebufferu. Ale Raspberry Pi a jeho vestavěné DPI vám umožňují připojit prakticky jakýkoli externí monitor a použít jej k pohodlnému zobrazení video výstupu.
Všimněte si, že toto je zjednodušená kopie původního článku zveřejněného na mých osobních webových stránkách. Původní verze pojednává o několika dalších technických podrobnostech a problémech, které jsem měl během tohoto projektu.
Zásoby
Budeš potřebovat:
- Technický list vašeho displeje
- 40pinový Raspberry Pi (2B+ nebo novější)
- Jakýkoli (alespoň trochu) standardní monitor
- Volitelně: převodník logické úrovně 3,3 V na 5 V (závisí na vašem monitoru)
- Dráty
Krok 1: Najděte informace o načasování a signálu
Toto je pravděpodobně nejtěžší krok celého projektu, protože uživatelské příručky tyto informace obvykle neobsahují. Myslím, že je nejlepší, když začnete hledáním technických příruček nebo opravárenských příruček svého monitoru. Pokud je váš monitor standardním VGA displejem, můžete informace o časování vyhledat online.
Každopádně je zobrazen časový diagram interního CRT počítače Macintosh Classic. Naštěstí někdo nahrál staré poznámky pro vývojáře, které obsahují všechny druhy technických podrobností pro tento počítač. Přesné načasování proberu v pozdějším kroku tohoto pokynu.
Pokud nevíte, jak fungují signály VGA (nebo signál displeje tohoto počítače Mac), můžete se podívat na tyto zdroje:
- VGA signály
- CRT počítače Macintosh Classic
Krok 2: O režimu DPI
Možná jste viděli některé Raspberry Pi displeje HAT, které se připojují pouze přes rozhraní GPIO. Používají režim DPI 40pinové GPIO Raspberry Pi, což je jedna z alternativních funkcí GPIO.
V takovém případě se změní pinout banky GPIO. Výsledek je vidět na obrázku (zdroj obrázku).
Tato konfigurace umožňuje připojení paralelních RGB displejů k Raspberry Pi GPIO. To však také znamená, že většinu pinů GPIO nelze použít pro jiné úkoly, zatímco Pi pracuje v režimu DPI.
Toto rozhraní je řízeno firmwarem GPU a lze jej konfigurovat pomocí speciálních parametrů config.txt. Kromě toho budete muset také načíst a povolit správné překrytí stromu zařízení Linux.
Krok 3: Povolení režimu DPI
Jak již bylo zmíněno, režim je povolen načtením správného překrytí stromu zařízení Linux. Nejprve však budete muset deaktivovat I2C a SPI, protože ty budou v konfliktu s některými video piny. Chcete -li to provést, upravte soubor config.txt:
sudo nano /boot/config.txt
V tomto souboru okomentujte následující dva řádky:
dtparam = i2c_arm = ondtparam = spi = zapnuto
Jakmile to bude hotové, přepněte GPIO do režimu Alt2 načtením DTO:
# 24bitová modedtoverlay = dpi24# 18-bitový režim# dtoverlay = dpi18
Režim závisí na vašem monitoru. Použil jsem 8bitový režim, kde každá barva (červená, zelená a modrá) má osm samostatných bitů, které přenášejí informace o barvách na monitor. Všimněte si, že oba DTO jsou již ve výchozím nastavení nainstalovány.
Krok 4: Konfigurace hardwaru videa
Režim DPI lze konfigurovat vložením speciálních atributů do souboru config.txt. Napsal jsem tuto malou aplikaci Java, která vám umožní rychle zadat všechny potřebné informace. Poté vám vygeneruje atributy a stačí je přidat do souboru config.txt.
Tento nástroj je univerzální a lze jej také použít k vytvoření konfiguračních vlastností pro jiné displeje. Různá pole a parametry jsou vysvětleny na stránce pro stažení aplikace. Pro Macintosh Classic CRT jsem použil následující dva atributy:
dpi_output_format = 0x76017dpi_timings = 512 0 14 178 0 342 0 0 4 24 0 0 0 60 0 15667200 1
Krok 5: Konfigurujte Framebuffer a nastavte vlastní režim videa
Můžete použít buď předem nakonfigurovaný režim časování, nebo definovat vlastní. V tomto případě nelze k rozhraní displeje použít žádný standardní režim videa. Proto jsem musel definovat vlastní režim videa, což lze provést nastavením následujících dvou příznaků v souboru config.txt:
dpi_group = 2dpi_mode = 87
Tím zajistíte, že ovladač dpi_timings, popsaný výše, použije ovladač při spuštění Raspberry Pi.
Dále je třeba nakonfigurovat framebuffer. Pro Mac Classic CRT jsem použil následující nastavení:
overscan_left = 0overscan_right = 0overscan_top = 0overscan_bottom = 0framebuffer_width = 512framebuffer_height = 342enable_dpi_lcd = 1display_default_lcd = 1
Poslední dva řádky zajistí, že se vygenerují videosignály a že DPI se použije k výstupu obsahu vyrovnávací paměti rámců.
Hodnoty přeskenování lze použít k vycentrování obrazu, pokud by měl být mimo střed. Můj byl však hned v pořádku, takže jsem tyto hodnoty nepoužil.
Krok 6: Zapojení všeho
Tento krok je poměrně jednoduchý. Stačí připojit řadu HSYNC Raspberry Pi (GPIO 5) a VSYNC řadu Pi (GPIO 3) k řádkům HSYNC a VSYNC displeje. Nezapomeňte připojit zemnicí vodič displeje ke kolíku GND na Pi. Poté připojte barevné čáry Raspberry Pi k vašemu displeji. Tento krok se liší v závislosti na vaší konfiguraci a zobrazení.
Displej Mac Classic je jednobitový monochromatický displej, takže jsem jednoduše použil jednobarevnou čáru pro připojení datové řady obrazovky. To je rychlé a špinavé řešení a pořádně připojím obrazovku v jiném článku.
Krok 7: Shrnutí
A to je vše, co musíte udělat! Tím se můj starý zlomený Macintosh Classic stal skvělým a užitečným zobrazovacím kusem. Naštěstí je velmi snadné nastavit režim DPI a nakonfigurovat jej tak, aby fungoval téměř s jakýmkoli displejem, dokonce i s 30letými CRT. Tato metoda mi umožňuje vykreslit výstup plochy a konzoly bez jakýchkoli komplikovaných programů a hardwarových úprav.
Poznámka: V tomto pokynu bylo vynecháno několik podrobností, aby byl stručný a srozumitelnější. Celý článek si můžete přečíst na nerdhut.de!