Ich versuche es mal kurz zu erklären. Gegeben ist ein rel. einfaches FPGA Projekt auf dem DE1-SoC board von Terasic. Die CCD kamera mird mithilfe von ADV1780 ausgelesen, und auf dem VGA Bildschirm angezeigt (dazwischen auch auf dem ADRAM gespeichert). Hier war ich sogar halbwegs damit fertig. Beitrag "Komische Balken am Rande des Bildes" Nun, habe ich viele Bugs gefunden und eliminiert, und alles sollte wunderschön aussehen. Doch jetzt kommt es... Anstatt vom Bild bekomme ich zwei breite Streifen, schwarz und grau, die leicht auf die Beleuchtung der CCD Kamera reagieren. Nach langer Simulation habe ich schließlich herausgefunden, dass mein VHDL design so wie es sein soll funktioniert. Das angezeigte Bild entspricht tatsächlich dem, was ADV liefert. Irgendwelche Interferenzen oder Rauschen sind ausgeschlossen,laut SignalTap werden die wichtigen Datensequenzen für StartActiveVideo, EndActiveVideo, VertBlanking etc. richtig gesendet und erkannt. Selbst die ActiveVideo Daten werden richtig in YCrCb Format übermittelt. Also das Problem liegt anscheinend an ADV7180 selbst? Wenn ich aber mein altes Design mit vielen Bugs hochlade, dann liefert ADV richtiges Bild! Obwohl ich in den beiden Fällen den ADV7180 bei default Einstellungen benutze! Ich verstehe nicht wie sowas möglich ist. Wieso bei einem Design der ADV irgendwelchen Schrott liefert, und bei anderen nicht? Die I2C kommunication mit dem ADV wird nicht mal benutzt. Kann mir bitte jemand helfen?! Ich rufe besonders mächtigen FPGA-Druiden zur Hilfe!
:
Bearbeitet durch User
> Nach langer Simulation habe ich schließlich herausgefunden, dass mein > VHDL design so wie es sein soll funktioniert. Ich bin leider kein großer FPGA-Druide, aber ist es nicht so, dass die Simulation das tatsächliche Timing nicht abdeckt? Vielleicht liegt der Hund in den Timing-Constraints begraben? Ev. ist irgendein Delay zu groß oder so.
lutz schrieb: >> Nach langer Simulation habe ich schließlich herausgefunden, dass mein >> VHDL design so wie es sein soll funktioniert. > > Ich bin leider kein großer FPGA-Druide, aber ist es nicht so, dass die > Simulation das tatsächliche Timing nicht abdeckt? Vielleicht liegt der > Hund in den Timing-Constraints begraben? Ev. ist irgendein Delay zu groß > oder so. Ja, aber der(das?) SignalTap von Quartus zeigt, dass der ADV tatsächtlich was falsches liefert.
Böser Kommunist schrieb: > Ich versuche es mal kurz zu erklären. > > Gegeben ist ein rel. einfaches FPGA Projekt auf dem DE1-SoC board von > Terasic. > Die CCD kamera mird mithilfe von ADV1780 ausgelesen, und auf dem VGA > Bildschirm angezeigt (dazwischen auch auf dem ADRAM gespeichert). > Hier war ich sogar halbwegs damit fertig. > Beitrag "Komische Balken am Rande des Bildes" > Wenn ich aber mein altes Design mit vielen Bugs hochlade, dann liefert > ADV richtiges Bild! Obwohl ich in den beiden Fällen den ADV7180 bei > default Einstellungen benutze! > Ich verstehe nicht wie sowas möglich ist. Wieso bei einem Design der > ADV irgendwelchen Schrott liefert, und bei anderen nicht? > Die I2C kommunication mit dem ADV wird nicht mal benutzt. > > > Kann mir bitte jemand helfen?! Ich rufe besonders mächtigen > FPGA-Druiden zur Hilfe! Vielleicht brauchst du einen videospezialisten, vielleicht ist die parametrisierung des Video -ADU nicht korrekt. Bei CCD sensoren schickt der sensor auch black pixel auf die sich der ad-wandler "kalibriet. man muss aber dem wandler sagen das jetzt diese Pixel kommen. Und wie schaut der sampleclock aus den du an den ad-wandler schickst? Allerdings kenne ich den ADV7180 nicht wirklich. Wenn möglich per scope alle signale am wandler messen wenn er bild liefert und wenn nicht. Die spannungen am sensor bspw beim Zeilen schieben sollten auch gecheckt werden. MfG PS Schick mal link zum datenblatt unter adv7180 find ich nix.
Hier ist der ADV7180 http://www.analog.com/media/en/technical-documentation/data-sheets/ADV7180.pdf Fallst die Kalibrierung falsch ist, wieso funktioniert er bei dem anderen Projekt.
:
Bearbeitet durch User
Böser Kommunist schrieb: > Wenn ich aber mein altes Design mit vielen Bugs hochlade, dann liefert > ADV richtiges Bild! Obwohl ich in den beiden Fällen den ADV7180 bei > default Einstellungen benutze! > Ich verstehe nicht wie sowas möglich ist. Wieso bei einem Design der > ADV irgendwelchen Schrott liefert, und bei anderen nicht? > Die I2C kommunication mit dem ADV wird nicht mal benutzt. Also ich bin kein Videospezialist, aber Dein Problem kann z.B. folgende Ursache haben: Falls auf Deinem Board ein Design mit dem ADC korrekt zusammenarbeitet und Du darauf ein anders Design drauflädst, dann verwendet das neue Design ja die Registerkonfig des alten Designs, ein solcher Fehler passiert jedem mal bei SPI/I2C/etc. Beim ADC7180 kommst Du also um eine I2C-Initialisierung nicht herum, im Datasheet stehen je nach Pinzahl und Videoanschluss diverse Register-Werte-Sequenzen, mit denen man erfolgreich arbeiten kann. Hab ich bei meinem NEEK-Board von Altera (ebenfalls mit ADV7180) erfolgreich gemacht, ist recht einfach. Einen einfachen I2C-Master, der Dir die Sequenz runterlädt, findest Du z.B. bei Digilent bei einem der AddOn-Boards, ich glaube das mit der Stereokamera. Ist die Sequenz abgelaufen, dann kannst du einfach mit SignalTAP-II die einlaufenden Farbwerte checken.
Böser Kommunist schrieb: > Hier ist der ADV7180 > http://www.analog.com/media/en/technical-documentation/data-sheets/ADV7180.pdf > > > Fallst die Kalibrierung falsch ist, wieso funktioniert er bei dem > anderen Projekt. Hm, vielleicht weil das signal was du nicht überprüfst hast sich anders verhält? Also auf die schnelle kann ich im datenblatt nix kritisches finden. Ein bißchen klingt das geschilderete nach automatic gain problemen (s. 36), würde aber nicht die Streifen erklären. Dann könnte es an den Takten für den CCD-Sensor liegen. Wie werden die erzeugt, ist da der FPGA involviert? Hilfreiche Info könnte in den Registern stecken, das sind aber eine ganze Menge. Wielleicht schlägt autodetect der Videonorm fehl? Polaritätsfehler übersieht man gern, also wenn der sync-pulse zwar kommt aber eben ein H statt ein L-Pulse. Kannst du das Signal vom ADV nit einem passenden Moni/fernseher direkt verbinden? Foto machen und mal einen Fernsehtechniker fragen, vielleicht im Forum Analogtechnik posten. Manche Scopes haben einen Videotrigger vielleicht verrät der was? MfG,
Hi, ich benutze in den beiden Fällen (funktionierendes und nicht funktionierendes Projekt) DE1-SoC Board Es ist somit unmöglich, den ADV direkt an einen Monitor anzuschließen. ADV1780 bekommt eigenen Takt aus eigenem on Board 28Mhz Oszillator. Aus dem ADV geht dann TD_CLK27 direkt in FPGA und steuert einen Prozess mit Dekodierung etc. Der TD_reset_n ist immer 1, wobei ich diesen manuell auf 0 ziehen kann ( mit einem Taster) Die CCD kamera ist: Sony CCRIR XC-150E https://pro.sony.com/bbsc/ssr/cat-recmedia/cat-recmediadtwo/product-XCEI50/
:
Bearbeitet durch User
naja, du schreibst, du hast einen Design, der funktioniert. Und dein anderer Design funktioniert nicht. Also scheint sich an deinem peripheren Chip nix geaendert zu haben. Also hast du: * Entweder in deinem Interface was geaendert * Oder dein Design ist so katastrophal (wieviele Takte, Constraints?, ...) dass das ganze halt mehr oder weniger Zufall ist wenn's denn mal funktioniert. Mit deinen Angaben hier wird jeder Versuch, in der Glaskugel zu lesen, zum scheitern verurteilt sein... sorry...
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.