Fórum témák

» Több friss téma
Fórum » PIC VGA vezérlés
Lapozás: OK   2 / 2
(#) pici válasza silent15 hozzászólására (») Feb 14, 2014 /
 
Rosszul tetted fel a kérdést, nem "Hogyan lehet megoldani?" hanem "Meg lehet-e oldani?"
PIC-el külső hardver nélkül nem oldod meg a 800x600 se a 640x480 VGA-t
Számoljunk:
I,
A linken amit írtál van egy táblázat VGA timing. Ebben benne van, hogy 800x600: 40MHz, de 640x480 is 25MHz a pixel clock. Ha csak clock utasítást adsz ki, akkor is ennek duplája kell PIC utasításórajelben.
És még sehol az adatátküldés, sor és oszlop pozició ellenőrzés.
Minimum 10 utasítás órajel a ramból kiszedni és kiküldeni a pixeleket, növelni a poziciót és órajeletadni (fel, le). Tehát minimum 250MHz utasításvégrehajtásra van szükség. Van ilyen PIC?

II, kisebbik felbontás 640x480 az 307.200 pixel. Ha RGB full colorban nyomnád az 3szor ennyi byte. De van-e 320Kb RAM-os PIC?

Ha lenne hasonló áttat PIC, akkor se maradna sok időd a program igazi futására.
Szóval érdemes-e pár ezer forintot spórolni a hardveren?
(#) silent15 válasza pici hozzászólására (») Feb 14, 2014 /
 
Ahogy utánaolvastam meglehet oldani, nemszeretnék komoly grafikai műveleteket elvégezni, csak pár pixel kiírása. A mai 32MX szériás picel tervezem megoldani a végleges verziót, az 50-100,000Mhz -es órajellel is megy. Tudom, iszonyatosan tömör program kell, de ez már csak későbbre tervezem. Alapból a problémám, hogy nem látom át, hogyan kell a szinkronjeleket kiküldeni, mennyi ideig kell magason/alacsonyon lennie stb. Ebben kérném a segítségeteket.
Köszönöm!
(#) killbill válasza silent15 hozzászólására (») Feb 14, 2014 /
 
Szia!

Szerintem pici-nek igaza van, ezt programbol keptelenseg megcsinalni egy 100MHz-ces mikrokontrollerrel. Ha esetleg nem nagyon akarsz hardware-t, van valami Propeller chip-es VGA megfejtes, bar emlekeim szerint az sem tud eleg magas frissitesi frekit, nem megy minden monitoron.

De itt a valasz a kerdesedre:

# 640x480 @ 60Hz (Industry standard) hsync: 31.5kHz
ModeLine "640x480" 25.2 640 656 752 800 480 490 492 525 -hsync -vsync

Ezek a szamok itt a kovetkezot jelentik: 25.2MHz a pixel clock. Ez az alap orajeled. Az aktiv reszben minden orajelnel ki kell tenni egy pixelnyi adatot. Mondjuk van egy szamlalod, ami 0-rol megy. Az elso 640 orajel az aktiv resz. A 656-odik orajelnel aktivalod a HSYNC-et, a 752-ig orajelnel lekapcsolod. Tehat 96 orajelnyi idore volt aktiv. Aztan meg varsz a 799-ik orajelig es nullazod a szamlalot. Igy egy sor 800 orajel ideig tart. Ha visszaszamolod ki is jon a 31.5kHz. (25.2 Mhz / 800).

A kovetkezo negy szam meg ugyanezt adja meg vizszintesen, csak nem orajelekben szamol, hanem sorokban. Tehat van 480 aktiv sor, aztan 10 sor semmi (fekete) majd ket sornyi VSYNC, aztan meg valamennyi fekete, es kezdodik minden elolrol. Osszesen 525 sor egy kep. 31.5kHz / 525 = 60.000Hz. Hat igy mukodik ez. A -hsync es -vsync azt jelentik, hogy mindket szinkronjel polaritasa negativ, de hogy a valosagban ez LOW vagy HIGH szintet jelent a kabelen, azt sajnos nem tudom. Ha megepited, akkor utananezek.

Udv,
Andor
(#) silent15 válasza killbill hozzászólására (») Feb 14, 2014 /
 
Szia, köszönöm, ezt emésztem Még olvastam olyat, hogy nem minden pixel 1 órajel, hanem 4 pixel 1 órajel, és így már ugyebár sokkal kissebb teljesítmén is elég, nemtudom erről a 'csalásról' mi a véleményetek ?
(#) silent15 válasza killbill hozzászólására (») Feb 14, 2014 /
 
Szia, értelmeztem amit írtál, programozási szempontból viszont még ez az nem tiszta.
delay_cycles(640); // ide jönne az aktív videórész
delay_cycles(16); itt nincs semmi, ez ahogy tudom a régi lassab monitorok miatt kell
delay_cycles(96); HSYNC aktiválása
delay_cycles(48); itt lekapcsolom a HSYNCet majd várok 800 ig, és kezdem előlről.

ez lenne a hsync, de a vsync hogyan kapcsolódik ehhez?
Köszönöm!
(#) killbill válasza silent15 hozzászólására (») Feb 15, 2014 /
 
A vsync ugy kapcsolodik ehhez, ahogy irtam. Ugyanez a moka van, csak sorokkal:


  1. void refresh(void)
  2. {
  3. int hor;
  4.  
  5.  for(;;){
  6.    for(ver = 0; ver < 480; ++ver)
  7.      horline(ver);
  8.  
  9.    for(;ver < 490; ++ver)
  10.      horline(-1);
  11.  
  12.    assert_vsync();
  13.  
  14.    for(; ver < 492; ++ver)
  15.      horline(-1);
  16.  
  17.    release_vsync();
  18.  
  19.    for(; ver < 525; ++ver)
  20.      horline(-1);
  21.   }
  22. }
  23.  
  24. void horline(int v)
  25. {
  26. int hor;
  27.  
  28.    if(v == -1)        // nem aktiv sor
  29.      put_black();
  30.  
  31.    for(hor = 0; hor < 640; ++hor){
  32.      if(v > -1)
  33.        put_active_pixel(v, hor);
  34.  
  35.      delay_clock(1);
  36.    }
  37.    put_black();
  38.    delay_clock(16);
  39.    assert_hsybc();
  40.    delay_clock(96);
  41.    release_hsync();
  42.    delay_clock(48);
  43. }
A hozzászólás módosítva: Feb 15, 2014
(#) killbill válasza killbill hozzászólására (») Feb 15, 2014 /
 
Bocsanat az elso hozzaszolasomban rosszul irtam. A masodik 4 szam a ModeLine-ban termeszetesen nem vizszintesen, hanem fuggolegesen ertendo. A legelso szam a dot clock MHz-ben, a kovetkezo negy szam vizszintesen ertendo pixelben, a kovetkezo negy meg fuggolegesen ertendo sorokban szamolva.
A hozzászólás módosítva: Feb 15, 2014
(#) benjami válasza silent15 hozzászólására (») Feb 15, 2014 /
 
Itt van egy minta 256x200-as felbontásra 48MHzes 8 bites PIC-el: Video game with PIC18. Forráskód is van hozzá, célszerű áttanulmányozni hogy csinálta. Mellékesen még 5 csatornás hang is van hozzá. nem néztem át nagyon a forrást, de gondolom hogy a hangot a sorszinkron jelek közben, a játék logikáját meg a képszinkron ideje alatt csinálja meg. A többi időben nem sok ideje maradhat a procinak a képalkotáson kívül mással törődnie.
(#) silent15 válasza benjami hozzászólására (») Feb 15, 2014 /
 
Köszönöm, ez nagyon jónak tűnik !
(#) silent15 válasza pici hozzászólására (») Feb 15, 2014 /
 
Szia, mellesleg milyen hardweres megoldások léteznek, hogy a picnek csak adatot keljen küldeni?
(#) bbalazs_ válasza silent15 hozzászólására (») Feb 16, 2014 /
 
Letezik kettos eleresu SRAM. Az egyik oldalon olvasod ki gyorsan es nyomod bele a kijelzobe, talan valami szamlaloval vagy direkt erre programozott PIC-el.
A masik oldalrol a mikroproci tetszoleges sebesseggel frissitheti.
En igy csinalnam.
(#) silent15 hozzászólása Feb 21, 2014 /
 
Sziasztok, a legutóbbi hozzászólásaim óta, kutakodtam még egy kicsit, és rátaláltam, erre és az ehhez hasonló kontrollerekre. Ezekbe van beépített grafikus mag, és ahogy olvastam , ezek maguknak a kijelzőknek a meghajtására van kitalálva, de azért megkérdezem, ezeket valahogy feltudom használni, hogy VGA monitort hajtsak vele?
Köszönöm!
(#) silent15 válasza (Felhasználó 15355) hozzászólására (») Feb 21, 2014 /
 
Az igazság az, hogy mindegy, adatokat szeretnék megjeleníteni, szóval számok és betük, de nem lenne hátrány a grafikus megoldás is, de egyenlőre a legegyszerűbb megoldást keresem.(És a legolcsóbbat)
(#) minicooper hozzászólása Jan 18, 2017 /
 
Üdv.! Olvasgattam az idáig "felhalmozódott" hozzászólásokat de sajnos még kicsit zavaros a dolog szóval:
Énis PIC mikrokontrollerrel szeretnék képet generálni ahogy már előttem de nekem elég lenne ha egy bizonyos szinű lenne a teljes képernyő.Mihez van erre szükség? Elegendő a HSYNC és a VSYNC-re a megfelelő frekvenciájú/periódusú jel? Egy LCD képernyővel dolgozom itt az adatlapja aminek a végén találhatók a szinkronizációs frekvenciák.Elég ha előállitom a kivánt jelet majd felhúzom egy fix feszültségre az RGB-t?
(#) silent15 válasza minicooper hozzászólására (») Jan 20, 2017 /
 
Nem elég elvileg (még én is kísérletezek) de a szinkronidők alatt le kell húznod a videójelet, különben nem fog elvileg működni, de ebben nem vagyok biztos, csak az eddigiekből nekem ez jött le.
(#) benjami hozzászólása Okt 23, 2017 / 1
 
Belebotlottam egy PIC-es VGA projectbe, ahol a működése is elég jól le van írva. Íme: DIY Single-chip 2D Retro Game Console
(#) silent15 válasza benjami hozzászólására (») Okt 24, 2017 /
 
Elindítottam a videót és meglepődtem milyen szépen, simán megy az animáció! Van ötlet ebben a projektben !
(#) benjami hozzászólása Jan 12, 2018 /
 
32 bites pic-el mini számítógép. Itt egy videó is róla.
Következő: »»   2 / 2
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem