Gibt es eine Formel um das VGA Signal zu berechnen?
Das VGA Signal besteht ja aus folgendem:
HSYNC = horizontales Synchronisationszeit
Das HSYNC Signal liegt in der Zeit an, wo eine Zeile von links nach
rechts geschrieben wird.
In der Zeit wo der Elektronenstrahl bei alten Röhrenmonitore in die
nächste Zeile links gelangt, wird als Schwarzschulter bezeichnet.
In dieser Zeit liegt das HSYNC Signal nicht an.
VSYNC = vertikale Synchronisationszeit:
Dieses Signal liegt in der Zeit an, bis das komplette Bild geschrieben
wurde.
Da sich der Elektronenstrahl in der letzten Zeile unten rechts befindet,
wird nun das VSYNC Signal deaktiviert.
Der Elektronenstrahl bewegt sich nun beim neuen Bild in die erste Zeile
links.
Diese Zeit wird ebenfalls als Schwarzschulter bezeichnet.
Bildwiederholrate:
Wie oft das Bild in einer Sekunde dargestellt wird.
Auflösung:
Wieviele Pixel breit und hoch das Bild ist.
RGB:
Durch das Anlegen einer unterschiedlichen Spannung beim r g u. b Pin
kann man eine andere Farbe beim Pixel setzen.
Spannungsbereich 0 - 0.7 V.
Es muß hier doch Formeln geben um die Zeiten der Signale zu berechnen.
vsync Signal, Schwarzschulter vsync Signal, hsync Signal,
Schwarzschulter hsync
Wenn Du mit VGA Ur-VGA meinst:
Horizontalfrequenz wurde auf 32kHz festgelegt. Vertikal 70 bzw. 60Hz.
Und jetzt geht es darum, das Bild möglichst mittig mit einer geeigneten
Pixel Clock am Schirm anzuzeigen.
Dank Dir User
Vertikal 70 bzw. 60Hz.
70 für Pal ? 4:3 Bilder
60 für Secam ? 16: 9 Bilder?
Ok...
Das Bild ist 800 x 600 Pixel groß...die Refreshrate beträgt 70 HZ, wie
werden nun die Zeiten berechnet?
Ich wäre echt für jede Hilfe dankbar.
tja schrieb:> Es muß hier doch Formeln geben um die Zeiten der Signale zu berechnen.
Die General Timing Formula.
Die liefert allerdings nur Näherungswerte, die von den exakten
Spezifikationen der einzelnen VGA-Modi weit genug abweichen, daß es zu
Problemen kommen kann.
Früher, im Zeitalter der analogen CRTs, hat sie gereicht, um immer ein
sichtbares Bild darzustellen, wenn auch nicht ganz an der eigentlich
vorgesehenen Stelle und nicht ganz in der richtigen Größe, die
Abweichungen waren aber klein genug, daß man sie problemlos mit den
entsprechenden Reglern der Monitore kompensieren konnte.
Bei digitalen Displays mit eingebautem Framebuffer ist das anders, da
passiert es immer wieder mal, daß irgendsoein Teil irgendeinen mit GTF
angenäherten Modus komplett verweigert.
Also am besten: Tabelle verwenden, nix Formel.
Ok.....ein Atmega ist aber zu schwach um die zeitkritischen Sachen
"hsync, vsync" ein zu halten.
Vielleicht doch einen arm Mikrocontroller hernehmen.
Bei ebay gibt es gute Boards.
Was hat das Board?
- den arm Mikrocontroller
- eine USB Schnittstelle
Über USB könnte man ja die png Bilder zum arm schicken.
Der arm entpackt dann das png Bild, so dass einem dann die Rawdaten des
Bilds vorliegen.
Die Daten müßte man aber in einem externen RAM ablegen, da der interne
Ram des arm Mikrocontrollers nicht ausreicht.
Wie müßte der Ablauf des Datentransfers aussehen?
- Bild 1 wird gerade dargestellt ....in dieser Zeit das Bild 2 u. Bild 3
anfordern u. entpacken.
Was meint ihr?
Welchen Ram würdet ihr hernehmen?
tja schrieb:> ein Atmega ist aber zu schwach um die zeitkritischen Sachen> "hsync, vsync" ein zu halten
Such doch mal im Forum nach "vga". Und dann denk noch mal über deine
Aussage nach :-)
tja schrieb:> Gibt es eine Formel um das VGA Signal zu berechnen?>> Das VGA Signal besteht ja aus folgendem:>> HSYNC = horizontales Synchronisationszeit>> Das HSYNC Signal liegt in der Zeit an, wo eine Zeile von links nach> rechts geschrieben wird.
Nö, das ist ein Impuls der den Zeilenrücklauf einleitet, je nach Modus
positiv oder negativ.
> In der Zeit wo der Elektronenstrahl bei alten Röhrenmonitore in die> nächste Zeile links gelangt, wird als Schwarzschulter bezeichnet.> In dieser Zeit liegt das HSYNC Signal nicht an.>
Nein, das ist die Rücklaufzeit, von den Schwarzschultern gibt es 2,
einmal die vordere vor dem Synchronimpuls und die hintere nach dem
Synchronimpuls.
Die vordere hatte im (F)BAS-Signal die Aufgabe durch einen definierten
Ausgangspegel vor der Sync-Flanke eine sichere Erkennung des Sync-Pulses
zu ermöglichen, die hintere ist einfach dazu da dem Rücklauf mehr Zeit
zu geben.
Weiterhin sind beide dazu da, Linearitätsverzerrungen an den Bildrändern
zu vermeiden, da der Ablenkstrom nie ideal sägezahnförmig ist
(Korrekturen wegen des flachen Bildschirms einmal ausgeklammert.)
> VSYNC = vertikale Synchronisationszeit:>> Dieses Signal liegt in der Zeit an, bis das komplette Bild geschrieben> wurde.> Da sich der Elektronenstrahl in der letzten Zeile unten rechts befindet,> wird nun das VSYNC Signal deaktiviert.
Alles entsprechend HSYNC.
> Der Elektronenstrahl bewegt sich nun beim neuen Bild in die erste Zeile> links.
Nein, er geht einfach nur nach oben, die Horizontalbewegung (mittels
HSYNC) läuft normal weiter. Die korrekte Phasenbeziehung zwischen HSYNC
und VSYNC sorgt dafür, das er oben links landet (bei Interlacemodi tut
er das z.B. nichtmal, da beginnt er abwechselnd oben links und oben
mittig, um versetzte Zeilen zu schreiben).
> Diese Zeit wird ebenfalls als Schwarzschulter bezeichnet.
Auch hier gibt es zwei, vor und nach dem Synchronpuls.
> Bildwiederholrate:> Wie oft das Bild in einer Sekunde dargestellt wird.>> Auflösung:> Wieviele Pixel breit und hoch das Bild ist.>> RGB:> Durch das Anlegen einer unterschiedlichen Spannung beim r g u. b Pin> kann man eine andere Farbe beim Pixel setzen.>> Spannungsbereich 0 - 0.7 V.
Analog gibt es keine Pixel, nur Zeilen. Die horizontale Auflösung ist
nur durch die Lochmaske diskretisiert, sonst aber ein kontinuierlicher
Verlauf. Begrenzt wird die Auflösung durch die obere Grenzfrequenz des
Videoverstärkers. Erst LCDs sampeln diesen Verlauf um die einzelnen
Pixel anzusteuern.
>> Es muß hier doch Formeln geben um die Zeiten der Signale zu berechnen.>> vsync Signal, Schwarzschulter vsync Signal, hsync Signal,> Schwarzschulter hsync
Kann man, aber normal schaut man einfach in die Tabellen in der Norm.
800x600 wäre klassisches SVGA.
http://tinyvga.com/vga-timing/800x600@60Hz
Front porch und Back porch sind die 2 Schwarzschultern, und Sync Pulse
ist die Länge von VSYNC/HSYNC .. zwischen dem Ende der hinteren
Schwarzschulter und dem Beginn der vorderen Schwarzschulter gibst du den
Bildsignal auf die RGB-Leitungen.
Gruß,
Christian
Eine eigene Frage?
Dieser Thread ist über 13 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.