Moin. Ich will VGA Signal generieren und habe auf meinem Entwicklungsboard einen Video DAC integriert. Die Synchron-Sugnale habe ich schon und ich steuere auch den VideoDAc an (hoffe auch rihctig) nur passiert nicht viel. Der Bildschirm geht an und er wird auch heller, abe man sieht eben kein Testbil (bei mir einfach grün) Muss ich denn eine eigene Colormap programmieren? Ich dachte die ist im Video DAC enthalten???? HILFE! DANK!
Colormap ? Welcher DAC ? Setzt du auch im HSync/VSync Bereich die Farben auf schwarz, damit der Monitor diese als Referenzwert annehmen kann ?
@you2 ohne meckern zu wollen : -welches board -welcher fpga -welcher dac -schaltplan zum board -sourcen -vhdl/verilog/schematic -timing -auflösung es fehlen zuviele informationen. ums mit anderen worten zu sagen : - glaskugel in reparatur. bitte etwas mehr infos. rätselraten solls ja auch nicht sein oder ? :-)
Bei dem VideoDAC haneldt es sich um den ADV7125 von DAnalog Device. Ich benutze das Ev. Board ML402 mit einem Virtex 4 XC4VSX35. Ich programmiere mit dem dem Xilinx Blockset unter Simulink (Matlab) und will ein 640x480 VGA (60Hz) Testbild generieren (einfach grünes Bild). Hoffe das reicht an Info.
Das ist nur ein dreifach DAC, ohne irgendwelche Farbtabellen. http://www.analog.com/UploadedFiles/Data_Sheets/ADV7125.pdf Die einzige Video-Spezialität sind die SYNC und BLANK - Eingänge. Mit der positiven Taktflanke werden die Daten übernommen, PowerSAVE, BLANK und SYNC müssen natürlich den richtigen Pegel haben.
Das Bedeutet jetzt für mich? Muss ich nun eine Colormap erstellen oder was?
Nee, der ADV7125 ist ja nichts anderes als ein 3-fach D/A-Wandler. Du musst während des sichtbaren Bereiches den D/A-Wandler für das grüne Signal auf einen Wert setzen und die beiden für das rote und blaue Farbsignal auf 0. Gruß Ralf
DA smache ich ja. Aber woher weiß ich denn wie hoch der Wert sein soll. Zur Zeit gebe ich einen 8 Bit Wert für Grün raus (255). R und B sind 0. Muss ich jetzt das Ausgangssignal definieren, d.h. in der .XCF Datei Parameter hinzufügen?
R=0 G=255 B=0 ... und du bekommst einen grünen Bildschirm ? Na dann ist doch alles i.O. ;) Grün ist auf Anschlag und die anderen Farben sind auf 0 ... was hättest Du anderes erwartet ? edit: Versuch doch mal zusätzlich R=255 und B=255. Wenn zum Schluss der Bildschirm weiß ist, dann hast du grundsätzlich alles richtig verdrahtet :)
Mein Problem ist ja noch, dass ich noch keine Farebn sehne kann. Wenn ich das mit den RGB Farben richtig verstanden habe, liegen die Werte immer zwisceh 0 und 0,7 V. Ich frage mich nur gerade, wie ich diese Signale denn generiere? Oder geht das automatisch im VideoDAC. Ich schicke momentan einfach über festgelegte PINS vom FPGA zum Video DAC für RGB jeweils 8 Bit (momentan 0/255/0). Reicht das aus. ich bin greade etwas verwirrt!
Also einfach Grün (oder eine beliebige andere Farbe) zu erzeugen sollte ja kein Problem sein, einfach die entsprechenden digitalen Farbeingangssignale setzen (Grün=11111111 Rot=00000000 etc.), eine LUT-Tabelle gibts bei Deinem DAC nicht. Falls (wie Du schreibst) überhaupt kein Bild kommt (d.h. kein Grün siehst), liegt's entweder an Fehlern in Deinen H/V-Sync-Signalen oder aber die SYNC/BLANK-Signale des DAC werden fehlerhaft generiert. BLANK/SYNC müssen im XCF-File eingetragen sein. Gruss Jörg
Die H_Sync und V_sync habe ich mir am Oszi angeschaut. Sieht für mich eigentlich richtig aus. Bei dem ~BLANK und ~SYNC bin ich mir nicht sicher. was würde ich denn im UCF oder XCF File als Parameter angeben? Ich gebe eine "O" aus wenn aus dem Register im FPGA die 8Bit rausgeschrieben werden. So hab ich mir das zumindest vorgestellt! Hat denn jemand zufällig ein bissel Ahnung von diesem ADV 7125? Ich steig das im Datenblatt nich so richtig durch!
U.U. hast Du zwei Probleme: 1. H/V-Sync etc. sind nicht richtig 2. DAC nicht richtig angesteuert (SYNC/BLANK falsch, Farbe aber richtig) Mache vieleicht folgendes: Dein Board hat sicherlich noch 5 digitale Ausgänge. Verwende 2 davon für H/V-Sync, die anderen 3 für RGB. Trage diese in UCF-File ein, verbinde Ausgänge mit VGA-Pins und schau dann mal, ob ein Bild zu sehen ist (setze für RGB z.B. = 0,1,0). Dann brauchst Du Dich um Deinen DAC keine sorgen machen. Falls das klappt, dann kannst Du Dich um den DAC kümmern. Ach ja (1): H/V-Sync sowie RGB brauchen Widerstand, bei mir H/V-Sync mit 82.5 Ohm, RGB mit 270 Ohm, hängt aber von dein Ausgängen ab!!!! Ach ja (2): Wenn Du nichts siehst, ist entweder H/V-Sync fehlerhaft oder Du setzt RGB während der Blank-Phasen nicht auf NULL. viel Spass Jörg
Jetzt hab ich deinen ersten Post auch verstanden :) Ich hatte es so gelesen, als würdest Du einfach nur einen grünes Bild vor dir sehen ... mein Fehler Das mit Signalgenerierung musst Du nicht per Hand machen. Wenn der VideoDAC 8Bit Eingänge hat dann heißt das, dass bei "11111111" der maximale Wert am Ausgang raus kommt ( also deine 0,7 V). Wie Jörg schon geschrieben hat, wird es wohl am Timing liegen. Schau Dir also mal deinen Text für die Sync-Impulse an. Ich hab mir zwar das Datenblatt angeschaut, aber aus Sync und Blank werde ich mit dieser Beschreibung auch nicht schlau :( Ich hab hier was gefunden: http://www-mtl.mit.edu/Courses/6.111/labkit/vga.shtml Die benutzen den selben VideoDAC generieren sich aber HSync und VSnyc selber und reichen es am DAC vorbei ...
ICh sende nur RGB Daten während der Display Time nach. Leider kann ich die VGA Schnittstelle nur über mein VideoDAC ansteuern. Kannst du mir denn sagen, wie das SYNC und BLANK Signal des VideoDAC auszusehen hat? Ich verstehe es nicht richtig im Datenblatt! PSAVE hab ich solange auf 0 (da low active), solange Daten zum Übertragen da sind.
Soweit ich das Datenblatt verstanden habe (Seite 7 ist wichtig), brauchst Du am DAC Sync nicht (~Sync <= 0), ist nur bei Kabeln/Monitoren erforderlich, die Sync über Grün erwarten. Setze auch PSAVE immer auf 0, Stromsparen ist im Moment ja nicht Dein Problem. Bleibt nur noch BLANK: Du generierst ja V/H-Sync, hast also Zähler für X- und Y-Position. Kurz VOR und NACH V/H-Sync=0 (Bild/Zeile startet) hast Du eine sog. Blank-Phase (Front-Porch und Back-Porch). Während dieser Phasen (inkl. V/H-Sync=0-Phase) ist BLANK and DAC auf '0' zu setzen, was die analogen RGB-Ausgänge am DAC auf Blank-Level setzt (Farbe=Schwarz), sonst auf '1'. Die RGB-Werte kannst Du die ganze Zeit auf z.B. 0,255,0 (=Grün) setzen (BLANK zieht Signale während Porch-Phase automatisch auf Schwarz), dann müsste eigentlich ein Bild zu sehen sein. Gruss Jörg
Meine Schande! Hat der Kerl schon einen DAC und kriegt trotzdem keine Farben hin. Unser eins muss Farben multiplexen, um Zwsichenwerte zu kriegen.
Danke Jörg. Wred das gleich mal so anpassen. nur noch eine kurze Frage: Wenn BLANK, PSAVE und SYNC LOW active sind, muss ich die dann nicht eigentlich auf "1" setzen, damit diese nicht aktiv sind??? Und ncoh mal kurz eine Frage: Ich generiere mit dem H_Timing Generator (VHDL) ebenfalls die VGA_CLK. Diese ist bei mir dann 25 MHz. Jetzt steht im Datenblatt keine genaue angabe zur CLK sondern nur eine Besipielrechnung für ein Bild mit eienr 1024x1024 Auflösung: Dot Rate = (Hriz. Res.)x(vert. Res.)x(Refresh Rate)/ (Retrace Faktor). Für den "Retrace Factor" haben die 0.8, warum auch immer.Wenn ich das jetzt alles für meine Auflösung berechne (640x480) dann bekomme ich eine CLK Rate von 23.,04 MHz. Also 2MHz geringer als die von mir verwendete. Könnte da eventuell auch ein Problem entstehen???? DANKE
Für 640x480 bei 60Hz legt VESA nach VDMT einen Pixeltakt von 25,175MHz fest. Also bist Du recht nah dran. Du musst aber sicherlich trotzdem die Pixel pro Zeile leicht anpassen. Falls Du das genauer wissen willst, bei der VESA kann man ein Excelsheet zur Berechnung von Bildparametern herunterladen.
Wir haben heute sogenannte Multisync-Monitore, die so fast alles darstellen können, was einen H-Sync und einen V-Sync generiert (und darüberhinaus noch einige Signale, wo der eine oder der andere oder beide fehlen). Da geht es nicht um 2MHz hin- oder her. Und der Pixeltakt an sich wird sowieso nicht übertragen. > > nur noch eine kurze Frage: > Wenn BLANK, PSAVE und SYNC LOW active sind, muss ich die dann nicht > eigentlich auf "1" setzen, damit diese nicht aktiv sind??? > Probier das doch einfach aus, du hast doch ein Oszi.
Sorry, mein Fehler: PSAVE,SYNC sind LowActive, müssen also gleich '1' gesetzt werden, BLANK ist auch LowActive, wird also im "sichtbaren" Bereich auf '0', im "blanken" Bereich auf '1' gesetzt. Schau Dir mal folgendes Beispiel an (fast Unten, 640 X 480): http://www.derepas.com/fabrice/hard kein Vorzeigecode, funktioniert aber und muss nur noch an den DAC angepasst werden. Wenn Du nun 1024x1024 haben möchtest, reichen 25MHz nicht aus, ist aber auch keine Standard-Auflösung (glaube ich zumindestens). VGA-Monitore sind aber sehr tolerant bzgl. Frequenzen und Auflösungen (vorsicht aber bei zu hohen Frequenzen => Kernschmelze,Monitoruntergang). Gruss Jörg
@you2 ich weiß zwar nicht obs schon geschrieben worden ist, aber das grün beim sync brauchst du nur wenn die auflösung/der monitor ein sync-on-green braucht. bei der std auflösung von 640x480 bzw 640x400 braucht man das wohl nicht. es gibt da unter elektronik-kompendium bzw. elektronik-werkstatt eine auflistung mit den gängigsten auflösungen sowie deren timing. weiterhin steht da auch noch drin ob du das sync-on-green brauchst. müsste den link mal raussuchen.
Vielen Dank für Euro HIlfe! Es hat endlich geklappt. Der Fehler lag in der VGA Clock. Die habe ich wohl nicht richtig generiert. aber jetz geht es! DANKE!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.