Fórum témák

» Több friss téma
Fórum » VGA jel generálása AVR segítségével
Lapozás: OK   1 / 1
(#) Xenen Mo hozzászólása Jún 14, 2009 /
 
Hello mindenki!

VGA jelet szeretnék előállítani AVR segítségével. Az eszköz 16MHz-en fut, és a cél hogy egy szép nagy változtatható színű négyzet legyen a monitoron.
A problémám ott van hogy egy kicsit hiányosak a neten található leírások, azaz az időzítés rendben fent van, de hogy maga jelet hogyan kell össze rakni PONTOSAN, arról egy szó nincsen.(Időzítés 640*480@60Hz)
Olyasmi utalást találtam hogy egy külföldi oldalon a hogy a HSYNC "huzogatását" még a VSYNC front és back holtidőkben is folytatni kell. Milyen szabályok vannak még amit be kell tartani?

Köszönöm!
(#) Xenen Mo válasza Xenen Mo hozzászólására (») Jún 14, 2009 /
 
Ezt találtam ahol meg is említi hogy a HSYNC is kell huzigálni a VSYNC alatt.

Idézet:
„It is important to note that Hsync must happen at regular intervals continuously. It must pulse even during the VSYNC part of the frame. Also, the VSYNC and HSYNC pulses are both negative.”


Na de most akkor a HSYNC periodust akkor mire szinkronizáljam? Vagy csak ugy menjen futva ? Vagy teljesen mindegy hol van éppen a HSYNC jel periodusa a VSYNC back porch után indítsam előről?
(#) Xenen Mo válasza Xenen Mo hozzászólására (») Jún 14, 2009 /
 
Elöző hozzászoláshoz a link
(#) gtk válasza Xenen Mo hozzászólására (») Jún 14, 2009 /
 
640x480 felbontashoz is legalabb 20MHz orajel kell, ASMben programozni, es nagyon odafigyelve az utasitasidokre.
>>ITT<< van egy AVRes monitor teszter.
(#) gtk válasza Xenen Mo hozzászólására (») Jún 14, 2009 /
 
Az AVR topicba korabban raktam fel VGA idozitessel kapcsolatos doksikat. Bővebben: Link
(#) Xenen Mo válasza gtk hozzászólására (») Jún 14, 2009 /
 
Köszi a linkeket, de maga a H ill VSYNC használatával van gondom, mint ahogy fentebb említettem hogy a VSYNC alatt is fut a HSYNC, no de akkor azt mire szinkronizáljam?
(#) zombee hozzászólása Júl 12, 2010 /
 
Hello!

Én 20MHz-en csináltam, és 800x600@60Hz - es felbontást állítottam elő, ezzel egy órát valósítottam meg.
A legelső változat 25MHz-es volt, és 640x480@60Hz-en ment, gondolom ez a mód kell neked, ezt leírom neked.

Az a nagy helyzet, hogy a 640x480 az csak a képernyő látható része, időzítés szempontjából valójában 800x525 a felbontásod.
Pixel órajel: a pixelek rajzolásának frekvenciája.
Ennél a módnál szabványosan 25.175MHz, de 25MHz is megengedett.
800 pixelidőből rakódik össze egy sor(ebből 640-et látsz), azaz a sorfrekvencia: 31.468kHz
Ilyen sorokból 525-öt kell kirajzolni egy képhez(de te csak 480-at látsz), azaz a pontos képfrekvencia: 59,94Hz

szinkronjelek(kioltójelek):
5V-os TTL jelek, VGA monitor esetében ezek alacsony-aktívak, azaz nyugalmi állapotban +5V-osak.
HSYN: vízszintes szinkronjel, hatására a vízszintes eltérítő visszaugrik a sor elejére.
VSYN: függőleges szinkronjel, hatására a függőleges eltérítő visszaugruk a kép tetejére.
A pongyola megfogalmazás ellenére a szinkronjeleket pontosan kell előállítani, különben összeesik a kép vagy letilt a monitor.

A vízszintes szinkronjel 96 pixelidőből áll, utána jön 48 pixelnyi sötétrész(visszafutási idő), majd elkezdhetsz rajzolni 640 pixelt. Ezután 16 pixel előkészítési idő jön, ilyenkor át kell kapcsolnod a színjeleket sötétre különben nem fogsz látni semmit. Ezután újra kiadod a szinkronjelet(96 pixelidő)

A függőleges szinkron is hasonló, csak itt sor-időkkel mérünk: maga a jel 2 soridő, amit 33 sor sötét rész követ. A függőleges szinkronjel és a visszafutás ideje alatt a vízszintes szinkront ugyanúgy ki kell adnod mintha nem is lenne függőleges visszafutás, és továbbra sem rajzolhatsz!
Ezután jöhet a 480 sor amikor lehet rajzolni, utána 10 sor sötét, mert az a függőleges szinkron előkészítési ideje.

Bővebbet itt találsz, és más képernyőmódokhoz is adnak táblázatos, áttekinthető leírást:
http://www.epanorama.net/documents/pc/vga_timing.html

Amit még megemlítenék, az a színjelek kiadása.
Ha mind a 3 színt elkülönítve használnád akkor 180 ohm-os előtét ellenállással rákapcsolhatsz +5V-ot mindegyikre. Ha csak fehér kell, akkor a három színjelet összekötöd, rá egy 470 ohm-os ellenállás, és a másik végét +5V-al birizgálhatod.

Először a szinkronjelekkel játszadozzál, ha nem rajzolsz akkor is meg tudod állapítani hogy jól csinálod-e: ha nem, akkor a monitorod letilt, feltéve ha LCD-t vagy digitális CRT-t használsz. Én LCD-vel játszottam, és egy monitor-átkapcsolóval (KVM switch-el) oldottam meg hogy ugyanazt a monitort használhassam programozásra és tesztekre.
A KVM switch arra is jó, hogy az esetleges nemkívánatos jelektől megvédje a monitor bemenetét.

Ha már jó a szinkronjeled és a monitor felismeri a módot, akkor nincs más dolgod mint rajzolni.
Ha ugyanabban a pixelidőben ugyanazt a jelet adod ki, akkor értelmes képet kaphatsz.
(#) zombee válasza Xenen Mo hozzászólására (») Aug 23, 2010 /
 
hello!

megoldódott a probléma?
én ez alapján építettem meg, szóval biztosan működik.
(#) Szabadember válasza zombee hozzászólására (») Ápr 28, 2011 /
 
800*600@60 Hz hogy hoztál össze 20 MHz-en? Ha 1 pixelt küldesz ki egy órajel alatt akkor 800*600*60=28,8 MHz
Vagy rosszul gondolom?
(#) zombee válasza Szabadember hozzászólására (») Ápr 28, 2011 /
 
Hello!

2 pixelidő egy órajel, de ettől függetlenül is nagyon rosszul számolod.
Ugyanis az időzítésnél a teljes képet kell alapul venni, nem csak a látható tartományt:
Ez 1056x628 pixelidőnek felel meg, ebből 800x600 ami látható kép.
A pixelfrekvencia 40MHz, így a képfrekvencia 60,3165Hz.

Ez elméletben azt jelenti, hogy 400x600-as felbontásod lesz ezzel a módszerrel. Gyakorlatban még ennél is kevesebb, mert 1 órajel alatt nem fogsz kiadni 1 pixelt, max ha RAM-DAC-ot használsz...
Én néha számolni is kell, feltölteni a puffereket, én azt a sötét részeken oldom meg, amikor az elektronsugár azt a részt pásztázza ahol nem rajzol.
De már egy egyszerű digitális óra esetében is a számolósdi - időben - belelóg a látható tartományba, ezét a VGA órámnál a számok kicsit közelebb vannak a képernyő jobb oldalához mint a balhoz...

Az időzítéseket itt megtalálod: Link

A képeket pedig csatolom. Azért lila, mert az egyik monitorkábel szálszakadásos volt. A fejlesztés ugyanazon a monitoron ment amivel teszteltem, átkapcsolni a monitor switch-el lehetett...
(#) Damian666 hozzászólása Júl 15, 2011 /
 
Helósztok, megépítettem 1 vga testert, az elsőnél nem is volt semmi gondom, felprogramoztam az attynit, működik, 640*480, 800*600, és 1024*768 @ 60 hz

fel akartam programozni mégyegy avr-t de már nem kaarja az igazságot. 2 avr- el is romlott : nem ismeri fel az isp-m. másik kettőt felismeri, de csak akkor hajlandó felprogramozni, ha kikapcsolom a veryfi-t. viszont, nem indul el a proci. Nem tudjáok mi lehet a baj? felismeri az avrt, de egyszer 0x00 0x3D 0x0A WARNING: Signature does not match seleced device! Hol pedig:0x1E 0x91 0x0A, így rendben,de sztem ez az oka amiért nem udom felprogramozni. Már mindent próbálam.
(#) zombee válasza Damian666 hozzászólására (») Júl 15, 2011 /
 
Hello!

Máshol lesz a hiba, valami zavarja az átvitelt a programozó és az AVR között. Tipikus, hogy az első(ritkán a második) signature byte sérül, de az utolsó jó lesz...
(#) Damian666 válasza zombee hozzászólására (») Júl 15, 2011 /
 
És ilyekor mi a teendő? mit nézzek át?
(#) zombee válasza Damian666 hozzászólására (») Júl 15, 2011 /
 
programozó, másik AVR IC, stb. vedd ki a panelból és úgy nézd meg, csak a kvarc maradjon.
(#) Damian666 hozzászólása Júl 15, 2011 /
 
próbáltam több avr-el semmi változás. vezetéket cseréltem,semmi
(#) zombee válasza Damian666 hozzászólására (») Júl 16, 2011 /
 
mondanál egy programozó típust?
(#) Damian666 válasza zombee hozzászólására (») Aug 31, 2011 /
 
STK 500. De már rájöttem miután vettem másik isp-t. nem azzal volt a gondd. hanem a céláramkörrel. sajna a gyári 10pikos kondi kaka volt az egyik a kristálynál, és miután beállítottam a külsó oszcit, már nem látott szerencsétlen isp- semmit se Szóval most van 1 teljesen felesleges stk 500 v2 esem pff xd
(#) zombee válasza Damian666 hozzászólására (») Aug 31, 2011 /
 
talán cseréld le 22pF-ra, a 10 az kicsi...
(#) gabi20 hozzászólása Dec 23, 2014 /
 
Sziasztok AVR segítségével szeretnék VGA jelet generálni. A kérdésem az, hogy a VGA konektor 9-es lábát hogy kell bekötni? Találtam kapcsolásokat a neten ahol nem volt bekötve, máshol a GND-hez volt kapcsolva. Igazából nem tudom hogy mire való ez a láb, nem szeretném hazavágni a VGA portot.
Következő: »»   1 / 1
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.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