Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
Vel, dette er kanskje ikke nyttig for alle, fordi de fleste av dere sannsynligvis ikke eier en ødelagt klassisk Mac. Imidlertid liker jeg virkelig visningen av den tingen, og jeg koblet den vellykket til en BBB -år siden. Imidlertid klarte jeg aldri å vise innholdet i rammebufferen. Men Raspberry Pi, og dens innebygde DPI, lar deg koble til praktisk talt hvilken som helst ekstern skjerm og bruke den til å enkelt vise videoutgangen.
Vær oppmerksom på at dette er en forenklet kopi av den originale artikkelen som ble publisert på mitt personlige nettsted. Den originale versjonen diskuterer noen flere tekniske detaljer og problemer jeg hadde under dette prosjektet.
Rekvisita
Du vil trenge:
- Et teknisk datablad for skjermen
- En 40-pins Raspberry Pi (2B+ eller nyere)
- Enhver (i det minste noe) standardmonitor
- Valgfritt: 3.3V til 5V logisk nivåomformer (avhenger av skjermen)
- Ledninger
Trinn 1: Finn informasjon om timing og signal
Dette er sannsynligvis det vanskeligste trinnet i hele prosjektet fordi brukermanualer vanligvis ikke inneholder denne informasjonen. Jeg tror det er best hvis du begynner med å søke etter tekniske manualer eller reparasjonsmanualer for skjermen. Hvis skjermen er en standard VGA -skjerm, kan du slå opp tidsinformasjonen online.
Uansett, timediagrammet for Macintosh Classic's interne CRT vises. Heldigvis har noen lastet opp de gamle utviklernotatene, som inneholder alle slags tekniske detaljer for den datamaskinen. Jeg vil diskutere de nøyaktige tidspunktene i et senere trinn i denne instruksen.
Hvis du ikke vet hvordan VGA -signaler (eller dette Mac -skjermsignalet) fungerer, kan du ta en titt på disse ressursene:
- VGA -signaler
- Macintosh Classic's CRT
Trinn 2: Om DPI -modus
Du har kanskje sett noen Raspberry Pi -skjermhatter som bare kobles til via GPIO -grensesnittet. De bruker DPI-modusen til 40-pinners GPIO Raspberry Pi, som er en av de alternative funksjonene til GPIO.
I så fall endres pinout av GPIO -banken. Resultatet kan sees på bildet (bildekilde).
Denne konfigurasjonen gjør at parallelle RGB -skjermer kan festes til Raspberry Pi GPIO. Dette betyr imidlertid også at de fleste GPIO -pinnene ikke kan brukes til andre oppgaver mens Pi fungerer i DPI -modus.
Dette grensesnittet styres av GPU -fastvaren og kan konfigureres med spesielle config.txt -parametere. Videre må du også laste inn og aktivere riktig Linux Device Tree -overlegg.
Trinn 3: Aktivering av DPI -modus
Som nevnt aktiveres modusen ved å laste inn riktig Linux Device Tree -overlegg. Men først må du deaktivere I2C og SPI, fordi de vil komme i konflikt med noen av videopinnene. For å gjøre det, rediger config.txt -filen:
sudo nano /boot/config.txt
Kommenter følgende to linjer i den filen:
dtparam = i2c_arm = ondtparam = spi = on
Når det er gjort, setter du GPIO i Alt2 -modus ved å laste DTO:
# 24-biters modedtoverlay = dpi24# 18-biters modus# dtoverlay = dpi18
Modusen avhenger av skjermen. Jeg brukte 8-biters modus, hvor hver farge (rød, grønn og blå) har åtte separate biter som overfører fargeinformasjonen til skjermen. Vær oppmerksom på at begge DTO -er allerede er installert som standard.
Trinn 4: Konfigurere videomaskinvaren
DPI -modusen kan konfigureres ved å plassere spesielle attributter i filen config.txt. Jeg skrev dette lille Java -programmet som lar deg raskt legge inn all nødvendig informasjon. Det vil da generere attributtene for deg, og du trenger bare å legge dem til config.txt -filen.
Dette verktøyet er universelt og kan også brukes til å lage konfigurasjonsegenskapene for andre skjermer. De forskjellige feltene og parameterne er forklart på appens nedlastingsside. Jeg brukte følgende to attributter for Macintosh Classic CRT:
dpi_output_format = 0x76017 dpi_timings = 512 0 14178 0342 0 0 4 24 0 0 0 60 0 15667200 1
Trinn 5: Konfigurer Framebuffer og konfigurer en tilpasset videomodus
Du kan enten bruke en forhåndskonfigurert timemodus, eller definere en tilpasset. I dette tilfellet kan ingen standard videomodus brukes til å koble skjermen. Derfor måtte jeg definere en tilpasset videomodus, som kan gjøres ved å sette følgende to flagg i config.txt -filen:
dpi_group = 2dpi_mode = 87
Dette vil sikre at parameteren dpi_timings, beskrevet ovenfor, brukes av driveren når Raspberry Pi starter opp.
Deretter må rammebufferen konfigureres. Jeg brukte følgende innstillinger for Mac Classic CRT:
overscan_left = 0overscan_right = 0overscan_top = 0overscan_bottom = 0framebuffer_width = 512framebuffer_height = 342enable_dpi_lcd = 1display_default_lcd = 1
De to siste linjene vil sørge for at videosignalene blir generert og at DPI brukes til å sende inn innholdet i rammebufferen.
Overskanningsverdiene kan brukes til å sentrere bildet hvis det skulle være utenfor sentrum. Min var imidlertid fin med en gang, så jeg brukte ikke disse verdiene.
Trinn 6: Koble til alt
Dette trinnet er ganske enkelt. Bare koble HSYNC -linjen til Raspberry Pi (GPIO 5) og VSYNC -linjen til Pi (GPIO 3) til HSYNC- og VSYNC -linjene på skjermen. Ikke glem å koble en jordledning på displayet til en GND -pinne på Pi. Deretter kobler du fargelinjene til Raspberry Pi til skjermen. Dette trinnet varierer, avhengig av konfigurasjon og skjerm.
Mac Classic-skjermen er en en-bits monokrom skjerm, så jeg brukte ganske enkelt en fargelinje for å koble datalinjen på skjermen. Det er en rask og skitten løsning, og jeg skal koble skjermen ordentlig til i en annen artikkel.
Trinn 7: Oppsummering
Og det er alt du trenger å gjøre! Dette gjorde min gamle ødelagte Macintosh Classic til et kult og nyttig display. Heldigvis er det veldig enkelt å sette opp DPI-modus og konfigurere den til å fungere med nesten hvilken som helst skjerm, til og med 30 år gamle CRT-er. Denne metoden lar meg gjengi skrivebordet og konsollen uten kompliserte programmer og maskinvareendringer.
Merk: Noen detaljer ble utelatt fra denne instruksjonsboken for å holde den kort og lettere å forstå. Hele artikkelen kan leses på nerdhut.de!