Eget grafikkort med 512 x 384 pixel

Berätta om dina pågående projekt.
Användarvisningsbild
YD1150
Inlägg: 1945
Blev medlem: 29 oktober 2010, 22:41:10

Eget grafikkort med 512 x 384 pixel

Inlägg av YD1150 »

Fick igång ett eget "grafikkort" med upplösning 512 x 384 pixlar
endast svart / vit ( 1-bit per pixel alltså! )

Går bra att använda med en datorskärm, H-synk ligger inte
på 31,5kHz utan på 31,25kHz men det utgör inga problem.

Pixlarna klockas ut med 20MHz med hjälp av ett 8-bitars skiftregister
(74LS166) men bildminnet går endast med en 1/8-dels hastighet (2,5MHz)

Övervägande delen är uppbyggd av (gamla) 74XX TTL-kretsar så den har
inga specialkretsar som är svåra att få tag på.

40-pin IC:n är en PIC18F4520 som skriver till bildminnet
på 32kB (cacheminne från skrotad 486:a )
PIC:en är inte inblandad i själva bildgenereringen, det
gör resten av kretsarna.
Grafikkortet_512x384_pixel.jpg
Prototypen är virad, därav röran :)
Maskbo.jpg
En bild från datorskärmen, skärpan är mycket bättre i verkligheten.
Skärmbild.jpg
Det tar ett tag att göra alla "fonter", allt får göras för hand.
Använde mig av 8 x 8 pixlar.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Dennis_F
Inlägg: 383
Blev medlem: 8 januari 2007, 19:30:52
Ort: Piteå

Re: Eget grafikkort med 512 x 384 pixel

Inlägg av Dennis_F »

Riktigt häftigt :)

:tumupp:
Användarvisningsbild
Walle
Moderator
Inlägg: 7660
Blev medlem: 14 december 2004, 10:32:18
Ort: Stockholm

Re: Eget grafikkort med 512 x 384 pixel

Inlägg av Walle »

Häftigt!

Vad har du för input?
Användarvisningsbild
Fagge
Inlägg: 3930
Blev medlem: 27 maj 2003, 13:59:51
Ort: Blekinge

Re: Eget grafikkort med 512 x 384 pixel

Inlägg av Fagge »

Snyggt jobbat!. :bravo:
En ritning eller block-schema hade varit kul å se på bygget.
Ritar du 8 pixlar i höjd eller brädd per RAM-adress?.
Användarvisningsbild
grym
EF Sponsor
Inlägg: 16891
Blev medlem: 16 november 2003, 12:22:57
Ort: i det mörka småland

Re: Eget grafikkort med 512 x 384 pixel

Inlägg av grym »

:tumupp: :)
Användarvisningsbild
nablaman
Inlägg: 480
Blev medlem: 30 juli 2010, 17:43:07
Ort: Lund
Kontakt:

Re: Eget grafikkort med 512 x 384 pixel

Inlägg av nablaman »

Snyggt! Virning och allt, helt i min smak! :D :tumupp:
Tycker oxå ett schema vore kul!
Användarvisningsbild
jesper
Inlägg: 722
Blev medlem: 12 juni 2006, 16:04:08
Ort: Laem Mae Phim, Thailand

Re: Eget grafikkort med 512 x 384 pixel

Inlägg av jesper »

Kul, påminner lite om mitt goda gamla grafikkort från '84 med MC6845, fast det hanterade endast text format.
Sitter också en '163 och spottar ut pixlar.

Bild
Användarvisningsbild
Mizzarrogh
Inlägg: 20513
Blev medlem: 10 september 2006, 12:32:49
Ort: Somewhere over the rainbow... (Hälsingeskogen)

Re: Eget grafikkort med 512 x 384 pixel

Inlägg av Mizzarrogh »

8) :tumupp:
Användarvisningsbild
bachler
EF Sponsor
Inlägg: 189
Blev medlem: 23 december 2003, 13:58:24
Skype: alexander.bachler.jansson
Ort: Sala
Kontakt:

Re: Eget grafikkort med 512 x 384 pixel

Inlägg av bachler »

Fasen va ballt!
Synd eller tur att man inte har tid att pyssla så mycket så man ger sig på sånthära.

Djupt imponerad.
Användarvisningsbild
Electricguy
Inlägg: 12307
Blev medlem: 15 augusti 2007, 16:52:14
Ort: Kälmä' typ..

Re: Eget grafikkort med 512 x 384 pixel

Inlägg av Electricguy »

RIKTIGT häftigt! snyggt jobbat!! :)
Användarvisningsbild
gOry
Inlägg: 4844
Blev medlem: 6 juni 2003, 22:41:25
Ort: Stockholm
Kontakt:

Re: Eget grafikkort med 512 x 384 pixel

Inlägg av gOry »

Får du 100fps i CS med det där eller? :bravo:
Användarvisningsbild
jesse
Inlägg: 9235
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Eget grafikkort med 512 x 384 pixel

Inlägg av jesse »

Det där var roligt att se. Respekt! :bravo:
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: Eget grafikkort med 512 x 384 pixel

Inlägg av blueint »

Skithäftigt :tumupp: :tumupp:

Antar att den inte stödjer 3D-acceleration då? :vissla:
Användarvisningsbild
YD1150
Inlägg: 1945
Blev medlem: 29 oktober 2010, 22:41:10

Re: Eget grafikkort med 512 x 384 pixel

Inlägg av YD1150 »

Var visst många som hade kommenterat bygget över natten :shock:

Blockschemat ser ungefär ut så här:
Blockschema.pdf
Om det är någon som tänker bygga något liknande så använd
i så fall antalet horisontella pixlar i multiplar om två, typ 256, 512 eller kanske 1024
det sista kräver rätt hög frekvens på pixelklockan.

Blir enklast då med minnesadresseringen, allt ligger "efter varandra" i minnet.
Väljer man något mer udda som t.ex 403 pixel så blir det "oanvända luckor"
i "adressrymden", räkna själva :!:

I fallet med 512 horisontella pixlar, blir det då 512 / 8 = 64 bytes per rad.
Har man då 384 linjer vertikalt så blir det 64 x 384 = 24576 bytes totalt
ett 32kB statiskt RAM har 32768 bytes så det räcker mer än väl.

24kB för att visa en bild är överkomligt. Skulle man ta bort skiftregistret
och sätta en 8-bit (video) D/A så får man 256 gråtoner i stället men då måste
man höja klockfrekvensen 8ggr till räknarna + mer minne förstås
( typ 200kB RAM för 512 x 384 med 256 gråtoner ! )

Genom mindre modifieringar kan man köra grafikkortet på en TV i stället.

Serieporten plus några av RA-X ingångarna är lediga på PIC:en.
Kan ha ett seriellt interface mellan grafikkortet och resterande "mätinstrument"
som ger data som man vill visa på en datorskärm.

3 bytes bör räcka via serieporten om man ger horisontell koordinat ( X = 0-63 )
vertikalt (Y = 0-383 ) och 8-bitar data = 8-pixlar i rad om man packar datan
väl som sänds till PIC:en.

X: 0-63 = 7-bitar krävs
Y: 0-383 = 9-bitar
data: 8-bitar

så flyttar man över en bit från Y till X så blir det 8-bitar i varje "datapaket"

------------------------------------------------------------------------

Klockan är på 20,0MHz, division med 8 ger 2,5MHz till Horisontal-räknarna (Column)
2,5MHz delat med 80 ger 31,250kHz -> ger H-synk så småningom samt
klocksignal till Vertikal-räknarna (Row)

31,250kHz delat med 480 ger ~65.1Hz i V-synk vilket datorskärmen klarar av bra.

Båda räknarna nollställs m.h.a. några grindar. De ger samtidigt ut signal för
blanking så det "skräpet" som hamnar utanför de pixlar man vill visa, släcks ner

Synkpulserna kan man också ta fram genom att koda av räknarna med ett gäng logiska grindar
men jag valde en smidigare lösning genom att använda blanking-signalen
och fördröja den med två "MMV" typ 4528, den ena fördröjer och den andra ger synkpulsens
bredd. (allt detta gånger 2 för H och V )
Gav färre delar att använda MMV än koda av räknarna med logik.

Strömförbrukningen ligger på ca 260mA vid 5V. Byter man ut kretsarna mot 74HC/HCT
så drar den nog mindre med ström.

Hoppas detta gav några ideer för framtida byggen....... :wink:
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: Eget grafikkort med 512 x 384 pixel

Inlägg av blueint »

Man kan deaktivera klocksignalen till addressräknaren under synkperioder mm. Så kan man ha vilken X-Y storlek som man vill. En separat räknare får dock mäta upp när linjen är "klar". Under vertikalsynken nollställer man alltihop.
Skriv svar