Forum: FPGA, VHDL & Co. Video mit AC701


von Artix (Gast)


Lesenswert?

Ich habe dieses Artix-System erstanden und suche Anwendungsbeispiele und 
Anwender, möchte aber den thread nicht zuspammen:
Beitrag "[V] Xilinx Artix-7 A200T AC701 FPGA Eval Kit"

Ich würde gerne den Video-Chip aktivieren, stehe aber etwas auf dem 
Schlauch. Kennt jemand ein Ref-Design? Auch mit dem DDR Ref Design habe 
ich ein Problem. Es gibt zwar eines von AVNET aber  es portiert sich 
nicht in die neuere Vivado. Ist von 2015.

von Duke Scarring (Gast)


Lesenswert?

Artix schrieb:
> Es gibt zwar eines von AVNET aber  es portiert sich
> nicht in die neuere Vivado. Ist von 2015.
Dann würde ich es mit der Vivado-Version probieren, mit der es erstellt 
wurde. Gerade wenn viele IP-Cores genutzt werden (und bei 
Referenz-Designs ist das i.d.R. so, da sie schnell fertig sein müssen), 
knirrscht es oft, wenn man auf eine neuere Version wechseln will.

Duke

von Tobias B. (Firma: www.elpra.de) (ttobsen) Benutzerseite


Lesenswert?

Wenn du ein Microblaze System aufziehen willst, dann kannst du dir das 
einfach im Vivado zusammenstellen. Vivado kennt das Board und du kannst 
einfach im IP Integrator die gewünschten Features auswählen. Das geht 
wirklich geschmeidig, daher nehme ich das AC701 selbs gerne für 
Projekte.

Beim Video Chip gibt es eigentlich nichts spezielles zu beachten. 
Paralleles Video drauf und ab die Post. :-)

von Artix (Gast)


Lesenswert?

Duke Scarring schrieb:
> Dann würde ich es mit der Vivado-Version probieren, mit der es erstellt
> wurde.

Ich würde sehr ungern eine alte Version auf die Platte werfen, nur um 
ein Projekt zu nutzen. Dann lieber neu.

Ich stehe ohnehin vor dem Problem, kein REF Design für das Video zu 
haben, da ich mich damit nicht auskenne.

Tobias B. schrieb:
> Beim Video Chip gibt es eigentlich nichts spezielles zu beachten.
> Paralleles Video drauf und ab die Post. :-)

Das klingt nett. Was versteht man unter "parallelem Video" und wie 
bekomme ich das in meine Schaltung?

Muss ich dazu das Konfigurationstool des 701 verwenden?

von Tobias B. (Firma: www.elpra.de) (ttobsen) Benutzerseite


Lesenswert?

Artix schrieb:
> as klingt nett. Was versteht man unter "parallelem Video" und wie
> bekomme ich das in meine Schaltung?

Das sind einfach die 24bit pro Pixel verteilt auf 24 Datenlanes, dazu 
noch H/Sync Data Enable und die Pixel Clock. Einfach danach suchen und 
mal das Datenblatt des ADV7511 anschauen. Das ist selbst erklärend.

Artix schrieb:
> Muss ich dazu das Konfigurationstool des 701 verwenden?

Das kommt darauf an was du machen willst. Entweder du entwickelst das in 
VHDL oder du verwendest passende AXI Module (da könnte im IP Katalog 
etwas passendes dabei sein) zum Zusammenklicken. Oder das Mittelding: Du 
entwickelst ein AXI Modul in VHDL, dann kannst du das später im IP 
Integrator zusammenklicken. ;-)

von J. S. (engineer) Benutzerseite


Lesenswert?

Tobias B. schrieb:
> Das sind einfach die 24bit pro Pixel verteilt auf 24 Datenlanes
Das sind sogar bis zu 32 Bit pro Farbe und damit 35 Leitungen möglich.

von Tobias B. (Firma: www.elpra.de) (ttobsen) Benutzerseite


Lesenswert?

Jürgen S. schrieb:
> Tobias B. schrieb:
>> Das sind einfach die 24bit pro Pixel verteilt auf 24 Datenlanes
> Das sind sogar bis zu 32 Bit pro Farbe und damit 35 Leitungen möglich.

Wenn ich mich richtig erinnere, dann kann der Chip 36 Bit pro Pixel, 
aber es sind auf dem AC701 nur die 3x8 MSBs zum FPGA geroutet.

von J. S. (engineer) Benutzerseite


Lesenswert?

Tobias B. schrieb:
> Wenn ich mich richtig erinnere, dann kann der Chip 36 Bit pro Pixel,
> aber es sind auf dem AC701 nur die 3x8 MSBs zum FPGA geroutet.

Das kann sein. Für normale Anwendungen reicht das ja auch. Sicher wollte 
man Leitungen sparen. Das ist ja das Problem bei den boards. Beim Altys 
und Nexys z.B. hat man wohl auch aus dem Grund komplett auf die Chips 
verzichtet und nur einen TMDS-Buffer spendiert. Verkompliziert das 
Design im FPGA und verbrät leider Chip-Fläche.

von Artix (Gast)


Lesenswert?

Tobias B. schrieb:
> Das sind einfach die 24bit pro Pixel verteilt auf 24 Datenlanes, dazu
> noch H/Sync Data Enable und die Pixel Clock. Einfach danach suchen und
> mal das Datenblatt des ADV7511 anschauen. Das ist selbst erklärend.
Die Funktionen sind an sich schon erklärend, wenn gewusst wird, wie man 
sie einsetzt. Was ich aber noch nicht genau kenne ist was ich alles 
belegen muss. und wie. Wie z.B. bekomme ich die Daten in die Register? 
Laut Datenblatt muss das mit i2C-Bus erfolgen.

von Artix (Gast)


Lesenswert?

Ein Nachtrag noch. Das hier ergab die Suche:
Beitrag "Re: I2C Bus mit ADV7183B"
Ich brauche demnach einen i2C-Controller am/im FPGA?

von Markus F. (mfro)


Lesenswert?

Artix schrieb:
> Ein Nachtrag noch. Das hier ergab die Suche:
> Beitrag "Re: I2C Bus mit ADV7183B"
> Ich brauche demnach einen i2C-Controller am/im FPGA?

So isses.

von Tobias B. (Firma: www.elpra.de) (ttobsen) Benutzerseite


Lesenswert?

Artix schrieb:
> Tobias B. schrieb:
>> Das sind einfach die 24bit pro Pixel verteilt auf 24 Datenlanes, dazu
>> noch H/Sync Data Enable und die Pixel Clock. Einfach danach suchen und
>> mal das Datenblatt des ADV7511 anschauen. Das ist selbst erklärend.
> Die Funktionen sind an sich schon erklärend, wenn gewusst wird, wie man
> sie einsetzt. Was ich aber noch nicht genau kenne ist was ich alles
> belegen muss. und wie. Wie z.B. bekomme ich die Daten in die Register?
> Laut Datenblatt muss das mit i2C-Bus erfolgen.

Also der Chip läuft out-of-the-box ohne irgendwelche Daten in I2C 
Register zu laden (zumindest für reines Video ohne Audio, HDCP und 
ähnliche Features). Du kannst mal in den ADV7511 Programming Guide 
reinschauen. Da siehst du die ganzen Default Register und auch, dass der 
Default Mode RGB 4:4:4 Video ist. Timings werden über die Sync Signale 
Chip-intern generiert.

Am besten du schaust auch mal in den Schaltplan vom AC701:

https://www.xilinx.com/support/documentation/boards_and_kits/artix-7/ac701-schematic-xtp218-rev1-0.pdf

Auf Seite 18 ist der Chip. Der hat auf der linken Seite die ganzen Video 
Leitungen, H/V-Sync, Data Enable und die Pixelclock. Die Pixelclock 
gibst du über einen ODDR Buffer aus, die anderen Signale sind straight 
forward.

Unsere Praktikanten haben immer als erste Aufgabe bekommen, eine 
Graurampe aus dem Chip auf einen DVI Monitor darzustellen. Das ist mit 
dem Chip nur minimal schwieriger und aufwändiger als eine LED auf dem 
Board zum Blinken zu bekommen.

Ich kann dir auch nur empfehlen das ganze erstmal ohne das ganze AXI 
Gedöns zu probieren. Und ruhig selbstbewusst an die Aufgabe rangehen.

von Artix (Gast)


Lesenswert?

Tobias B. schrieb:
> Also der Chip läuft out-of-the-box ohne irgendwelche Daten in I2C
> Register zu laden
das klingt gut, das probiere ich mal
danke

von Weltbester FPGA-Pongo (Gast)


Lesenswert?

ADI hat Demos zu dem Board:
https://wiki.analog.com/resources/fpga/xilinx/kc705/adv7511?rev=1504782072

Leider scheinen die teilweise nicht mehr erreichbar.

von Michel (Gast)


Lesenswert?

Tobias B. schrieb:
> Vivado kennt das Board und du kannst
> einfach im IP Integrator die gewünschten Features auswählen.

Was bedeutet das konkret, dass die SW "das board kennt"?

Ich nehme an, dass die IO-Pinzuordnung automatisch erledigt werden kann 
und auch constraints gesetzt werden?

Kann sie dann auch die benötigte Ansteuerungssoftware für die 
Komponenten bereitstellen? Also UART, USB, DDR und das besagte VIDEO?

von Tobias B. (Firma: www.elpra.de) (ttobsen) Benutzerseite


Angehängte Dateien:

Lesenswert?

Michel schrieb:
> Ich nehme an, dass die IO-Pinzuordnung automatisch erledigt werden kann
> und auch constraints gesetzt werden?

Exakt.

Michel schrieb:
> Kann sie dann auch die benötigte Ansteuerungssoftware für die
> Komponenten bereitstellen? Also UART, USB, DDR und das besagte VIDEO?

Auch das geht, nur leider ist das besagtes Video nicht mit dabei. Was 
dabei ist, ist UART, DDR3, I2C, Buttons / LEDs, Clocks und Ethernet 
(siehe Anhang).

Da der ADV7511 jedoch nur parallel Video erwartet, haelt sich der 
Aufwand mehr als in Grenzen.

Oder was du auch machen kannst: Du erstellst ein leeres Projekt und 
instanzierst einen Video Test Pattern Generator. Dann einmal Rechtsklick 
drauf machen und "Open IP Example Design". Dann hast ein komplettes 
Design inkl. HDMI Output fuers AC701. Auch die SDK Sourcen werden 
mitgeliefert, lohnt sich auf alle Faelle da mal einen Blick 
reinzuwerfen.

Kleiner Nachtrag: Ist doch kein SDK Teil dabei, weil das Beispiel keinen 
Microblaze instanziert.

Noch ein Nachtrag: Leider macht das Beispiel doch kein Design fuers 
AC701 Board, sondern nur ein Simulationsmodell. :-(

: Bearbeitet durch User
von Michel (Gast)


Lesenswert?

Tobias B. schrieb:
> Auch das geht, nur leider ist das besagtes Video nicht mit dabei.
Hallo Tobias, danke für deine Antwort.

Solch ein Block-Example hatte ich auch schon probiert und das fehlende 
Video-Wandel-IC war mit der Grund meiner Frage. Ist bekannt, warum das 
ausgespart wurde?

UART wäre prima. Ich habe UARTs in C und VHDL, würde hier aber C 
bevorzugen, weil das Ping-Pong-Protokoll zum ARM sehr kompliziert und 
auch noch nicht fertig ist. Wenn es da fertige Sachen gibt, wäre das 
super.

Das Video wäre gedacht zum Anzeigen der Daten. Im custom-pcb kommen die 
dann über LVDS. Ich deinem Ratschlag gefolgt und habe den Testgenerator 
aus den IP-Vorlagen eingebaut. Aber so richtig weiter komme ich damit 
noch nicht. Wie muss der angeschlossen werden? Dafür ist wohl doch ein 
AXI-Master vorgesehen. Der müsste irgendwo her kommen. Also ein 
Microblaze?

Die Ausgangsdaten und Steuersignale müssten auch auf die richtigen 
Ausgänge geführt werden. Die erkenne ich aber nicht in dem Interface.(?)

von Tobias B. (Firma: www.elpra.de) (ttobsen) Benutzerseite


Lesenswert?

Hallo Michel,

genau, ein Microblaze ist dafuer die geeignete Wahl. Das ist auch 
relativ easy zu handhaben und bei Problemen/Fragen steht dir hier ein 
ganzes Forum zur Seite. :-)

Michel schrieb:
> Solch ein Block-Example hatte ich auch schon probiert und das fehlende
> Video-Wandel-IC war mit der Grund meiner Frage. Ist bekannt, warum das
> ausgespart wurde?

Warum das so ist, kann ich leider nicgt sagen. Da der ADV7511 aber nur 
ein parallel Video verlangt, ist das auch kein Hexenwerk. Einfach einen 
Axi Stream to Video Out Konverter ins Blockdiagram einbauen und dessen 
Ausgang an die ADV7511 Ports haengen. Was du auch noch brauchst ist ein 
Timing Generator und eine 148.5 MHz Clock (fuer FullHD Video).

Ich hab das Board leider nicht hier, sonst haette ich dir mal schnell 
ein Beispiel zusammengeklickt.

Michel schrieb:
> Das Video wäre gedacht zum Anzeigen der Daten. Im custom-pcb kommen die
> dann über LVDS. Ich deinem Ratschlag gefolgt und habe den Testgenerator
> aus den IP-Vorlagen eingebaut. Aber so richtig weiter komme ich damit
> noch nicht. Wie muss der angeschlossen werden? Dafür ist wohl doch ein
> AXI-Master vorgesehen. Der müsste irgendwo her kommen. Also ein
> Microblaze?

Genau, oder du kannst den JTAG to AXI Master nehmen. Dann kannst auch 
eifnach ueber JTAG ein bisschen rumspielen und brauchst nicht gleich 
nenn ganzen Microblaze nehmen.

Michel schrieb:
> Die Ausgangsdaten und Steuersignale müssten auch auf die richtigen
> Ausgänge geführt werden. Die erkenne ich aber nicht in dem Interface.(?)

Welche Daten und Steuersignale meinst du genau? Meinst du hier immer 
noch den ADV7511? Da lohnt sich auch mal ein Blick ins Schematic, nicht 
alle Features vom ADV7511 werden vom FPGA auch bedient!

von Michel (Gast)


Lesenswert?

Hallo nochmals, ich meinte die Steuersignale z.B: für die 
Synchronisation.

Ich habe das Demonstrationsbeispiel für den Mustergenerator aufgebaut. 
Das werde ich versuchen, einzubauen.

Erster Eindruck: Es sieht überraschend groß aus nach meinem Geschmack. 
Ungewöhnlich finde ich die zwei Testgeneratoren in Serie und noch einen 
zusätzlichen Timinggenerator, sowie noch einen weiteren Videogenerator. 
Ich nehme an, den meinst du. Braucht man das alles?

Die Daten und Signale am Videogenerator sehen i.O. aus und lassen sich 
auch mit den Pins vom Wandel-IC in Zusammenhang bringen. Kann ich den 
vtg auch alleine nehmen?

Microblaze ist tatsächlich keiner dabei und den brauche ich z.B. für die 
Kommunikation mit meinem Hauptsystem (ARM) über UART. Leider ist es mir 
noch nicht gelungen, Sourcen für die UART und für den Testgenerator zu 
finden. Die müssten ja angepasst werden.

>Leider macht das Beispiel doch kein Design fuers
> AC701 Board, sondern nur ein Simulationsmodell.
Wie meinst du das? Kann ich das nicht bauen lassen?

von Tobias B. (Firma: www.elpra.de) (ttobsen) Benutzerseite


Angehängte Dateien:

Lesenswert?

Michel schrieb:
> Erster Eindruck: Es sieht überraschend groß aus nach meinem Geschmack.
> Ungewöhnlich finde ich die zwei Testgeneratoren in Serie und noch einen
> zusätzlichen Timinggenerator, sowie noch einen weiteren Videogenerator.
> Ich nehme an, den meinst du. Braucht man das alles?

Den zweiten Testbild Generator brauchst du zum Glueck nicht, ich denke 
der ist nur zur Demo des Bypass Modes in dem Beispiel mit drinnen. Was 
du aber zwingend brauchst ist der Timing Generator, ohne den geht es 
nicht.

Um nur den ADV7511 in Betrieb zu nehmen, wuerde ich auch nicht den Weg 
ueber ein grosses Blockdesign gehen. Da nehme ich in der Regel etwas 
super einfaches, siehe Anhang.

Michel schrieb:
> Microblaze ist tatsächlich keiner dabei und den brauche ich z.B. für die
> Kommunikation mit meinem Hauptsystem (ARM) über UART. Leider ist es mir
> noch nicht gelungen, Sourcen für die UART und für den Testgenerator zu
> finden. Die müssten ja angepasst werden.

Den UART kannst ja einfach aus dem IP Katalog hinzufuegen. Die AXI 
Connection uebernimmt dann der Wizard fuer dich (auch wenn der manchmal 
Quatsch macht).

Michel schrieb:
> Wie meinst du das? Kann ich das nicht bauen lassen?

Nur teilweise. Ich meine das Beispiel hat einen AXI Master (in System 
Verilog geschrieben) der nicht synthetisierbar ist. Musst du mal 
ausprobieren, ich hab mich jetzt auch nicht naeher mit dem Beispiel 
befasst. Im Zweifel tauschst du einfach diesen sim-only AXI Master durch 
den JTAG to AXI Master IP aus.

von Michel (Gast)


Angehängte Dateien:

Lesenswert?

So, also die Schaltung wird gebaut, es gibt aber schon beim 
Demo-Beispiel Probleme mit dem timing. Einen 148,5 MHz Takt habe ich 
angeschlossen.
Ich habe alles mit weiteren FlipFlops versorgt und anders synthetisieren 
lassen und dann ging es. Ein Bild habe ich aber immer noch nicht.

Auffallend ist, dass einige Signale (auch Eingänge!) nicht angeschlossen 
sind, was aber beim Validate / Checken nicht angemeckert zu werden 
scheint. Jemand eine Idee, ob das auch so geht?

Tobias B. schrieb:
> Da lohnt sich auch mal ein Blick ins Schematic, nicht
> alle Features vom ADV7511 werden vom FPGA auch bedient
Angesehen und die nächste Frage: Wie bediene ich die HDMI_INT und 
HDMI_HEAC? Und wozu ist der 12.000 MHz Takt? Direkt dort kommt SPDIF 
heraus.

Tobias B. schrieb:
> Den zweiten Testbild Generator brauchst du zum Glueck nicht, ich denke
> der ist nur zur Demo des Bypass Modes in dem Beispiel mit drinnen.
Das hatte ich mir schon gedacht, aber der Rest ist mir nicht so klar.

von Tobias B. (Firma: www.elpra.de) (ttobsen) Benutzerseite


Lesenswert?

Hast du auch die entsprechenden Register schon gesetzt, damit Timing 
Generator, parallel Video Konverter und Testbild Generator korrekt 
arbeiten?

Idealerweise einfach mal die mitgelieferte Simulation laufen lassen und 
schauen was da genau passiert.

Wie gesagt, ich hab leider das AC701 nicht hier, sonst haette ich mal 
schnell schauen koennen wo die Probleme liegen. Im Zweifel nimm erstmal 
den VHDL Code den ich oben gepostet habe, schliess ne 148,5 MHz Clock an 
und du solltest zumindest mal irgendein Video bekommen.

von Michel (Gast)


Lesenswert?

Tobias B. schrieb:
> Ich meine das Beispiel hat einen AXI Master (in System
> Verilog geschrieben)
Wo finde ich den wieder? In der Verifikation IP?
Ich glaube ich werde auch erst einen einfachen Generator nehmen.

Tobias B. schrieb:
> Den UART kannst ja einfach aus dem IP Katalog hinzufuegen. Die AXI
> Connection uebernimmt dann der Wizard fuer dich (auch wenn der manchmal
> Quatsch macht).
Den UArt habe ich automatisch bekommen, als ich die Funktion ins Fenster 
gezogen hatte. Ich habe aber gesehen, dass der nur 1 Stoppbit kann. 
Nicht gut. Ausserdem brauche ich erst den Master mit dem MicroBlaze.

Danke fürs Erste

von Michel (Gast)


Lesenswert?

Leider sehe ich nach wie vor kein Bild. Auch nicht mit dem einfachen 
Generator. Monitor sagt: "kein Signal".

ILA-Debugger zeigt:

148,500 MHz Takt läuft, clock locked is high, HS, VS, DE sind da und 
sehen normal aus. Daten kommen auch.

Was muss an dem Chip noch aktiviert werden? Außer HDMI_INT gibt es nur 
die Audio SPDIF Ports.

UART Signale sehe ich. Meine VHDL-Uart ist auch ansprechbar.

Nur der Debug spinnt und will einige Signale (Taster z.B.) nicht 
einfügen:

Beitrag "Re: ILA-Signale können nicht gebaut werden"

von Tobias B. (Firma: www.elpra.de) (ttobsen) Benutzerseite


Lesenswert?

Hmmm, schau mal in dieses PDF:

https://www.analog.com/media/en/technical-documentation/user-guides/ADV7511_Programming_Guide.pdf

Ich dachte der ADV7511 laeuft out-of-the-box ohne irgendwelche Register 
zu setzen. Jetzt bin ich mir allerdings selbst nicht mehr sicher ob ich 
das nicht mit dem TFP410 verwechsele. :-/

von Michel (Gast)


Angehängte Dateien:

Lesenswert?

Na toll, dann mache ich mich mal auf die Suche. I2C-Controller habe ich.

Was mir noch aufgefallen ist: Im Schaltplan des AC701 ist HPD (Pin 30) 
angeblich mit einem HEAC_C_N verdrahtet. HEAC taucht rechts nochmals 
auf.

Ist das nur ein Beschreibungsfehler oder soll das so sein? Wie 
funktioniert das? Kommt das Signal dann irgendwie vom Stecker?

Laut der Beschreibung des ADV75 soll HPD auf 1 liegen, wenn der Chip 
bootet / gepowert wird. Wie stelle ich das sicher? Den habe ich nicht 
zur Verfühung am FPGA.

Designfehler?

Ich habe jetzt alles probiert, von Kabel stecken vor/nach boot neu 
booten mit PROGB und auch Strom ein/aus.

----------------------------------------------------------------------

Hätte jemand zufällig ein BIT File, mit HDMI Testbild, das ich ohne 
Compilierung oder Programmierung direkt reinladen kann um zu 
verifizieren, dass das board überhaupt geht?

Das BISt kann offenbar kein Video (warum wohl?)

Ich brauche zwar das HDMI nicht sofort, aber mittelfristig schon eine 
Möglichkeit der Ausgabe und eine externe Videokarte am FMC kann ich 
nicht verwenden, weil dort die ADC-Karte drin steckt und auch die 
meisten Pins belegt.

Ich würde also zeitnah wissen wollen, ob der Ausgang geht. Sonst geht 
das nämlich zurück!

von Gustl B. (gustl_b)


Lesenswert?

Ich habe das Board auch nicht. Um HDMI zu testen würde ich das mal ohne 
Blockdesign selber schreiben. Gibt ja genügend Beispiele. Der Externe 
Video Stein vereinfacht das sogar deutlich.
Ich kann mich morgen mal hinsetzen und rein nach Datenblatt ein 
Minimalbeispiel schreiben.

Bei der Fehlersuche könntest du gucken ob die den IOs zugeordneten Pins 
korrekt sind und auch mal messen ob die Signale zum Video IC gehen.

von Tobias B. (Firma: www.elpra.de) (ttobsen) Benutzerseite


Lesenswert?

Michel schrieb:
> Ich würde also zeitnah wissen wollen, ob der Ausgang geht. Sonst geht
> das nämlich zurück!

Der HDMI Videoausgang geht definitiv, bei meinem letzten Arbeitgeber 
hatten wir den in Betrieb.

Michel schrieb:
> Was mir noch aufgefallen ist: Im Schaltplan des AC701 ist HPD (Pin 30)
> angeblich mit einem HEAC_C_N verdrahtet. HEAC taucht rechts nochmals
> auf.
>
> Ist das nur ein Beschreibungsfehler oder soll das so sein? Wie
> funktioniert das? Kommt das Signal dann irgendwie vom Stecker?

Das ist das Hotplug Signal vom HDMI Stecker.

Gustl B. schrieb:
> Ich habe das Board auch nicht. Um HDMI zu testen würde ich das mal ohne
> Blockdesign selber schreiben.

In dem Fall ist es mit Blockdesign wahrscheinlich einfacher, weil man 
dann die I2C Register einfach im Microblaze runterrattern kann.

@Michel:

Wenn du mir das Board zuschickst, kann ich dir mal ein Minimal Beispiel 
erstellen.

: Bearbeitet durch User
von Michel (Gast)


Lesenswert?

Das ist nett, allerdings scheint es wirklich an der Config zu liegen. 
Der VHDL-Core läuft nämlich auf einem anderen board korrekt, außerdem 
kann ich das Zählen der H und V Counter sowie Synch ja im ILA sehen. Das 
stimmt alles.

Die Pin-Anordnung habe ich aus einem Beispiel entnommen und kopiert. Da 
es nicht lief, habe ich alle nochmals einzeln mit der Doku abgeglichen 
(im 701-Guide ist eine Liste). Das passt alles und stimmt überein.

Taktausgang über ODDR, Daten SDR 8x3 Bits, Data Enable kommt auch. Der 
Chip ist nicht konfiguriert oder kaputt.

Inzwischen habe ich die Doku durchgelesen. Da gibt es eine Seite "Quick 
Setup" mit gefühlt 50 I2C-Parametern, die man mal eben schnell schreiben 
soll, damit es läuft. Daran wird es liegen. Ich habe vor einiger Zeit an 
einem anderen board eine DVI-Karte angeschlossen, die aber einen 
ähnlichen CHIP benutzt hat. Der wurde mit einem mitgelieferten 
MicroBlaze angesteuert. Ohne den tat sich da auch nichts.

von Michel (Gast)


Lesenswert?

Die obere Antwort bezog sich auf Gustel

Tobias B. schrieb:
> Der HDMI Videoausgang geht definitiv, bei meinem letzten Arbeitgeber
> hatten wir den in Betrieb.
Das glaube ich, nur könnte ja mein board trotzdem einen Fehler haben.

Tobias B. schrieb:
> In dem Fall ist es mit Blockdesign wahrscheinlich einfacher, weil man
> dann die I2C Register einfach im Microblaze runterrattern kann.
Das muss aber auch geschrieben werden, weil es dafür ja kein Demo gibt. 
Dann kann ich es auch von Außen machen.

Tobias B. schrieb:
> Wenn du mir das Board zuschickst, kann ich dir mal ein Minimal Beispiel
> erstellen.
Wäre machbar, nur wird das Dingens ja gebraucht und ich kann es momentan 
nicht abgeben. Ich schaue mal ob ich aus anderer Quelle auf die Schnelle 
etwas finde.

von Gustl B. (gustl_b)


Lesenswert?

Ja naja ... wenn man das mit den Registern weglässt dann ist das sehr 
wenig VHDL.
Eigentlich sollte man auch keine Register beschreiben müssen wenn der 
Chip ordentliche Defaults hat.
Außerdem:
Was ist das mit den 4 Register maps?! Sitzt da in dem Stein noch ein i2c 
switch oder was auch immer drinnen? Das hätte man auch alles als eine 
große registertabelle bauen können. Das liest sich zumindest recht 
umständlich.
Ich würde erstmal gucken was aus dem FPGA raus und beim ADV511 ankommt. 
Wurden die IOs richtig zugeordnet in der .xdc?

von Michel (Gast)


Lesenswert?

Markus F. schrieb:
> Artix schrieb:
>> Ein Nachtrag noch. Das hier ergab die Suche:
>> Beitrag "Re: I2C Bus mit ADV7183B"
>> Ich brauche demnach einen i2C-Controller am/im FPGA?
> So isses.

Hallo Markus und Artix, hat einer von euch beiden das ausprobiert und 
hatte Erfolg?

von Michel (Gast)


Lesenswert?

Gustl B. schrieb:
> Ich würde erstmal gucken was aus dem FPGA raus und beim ADV511 ankommt.
Habe ich, das stimmt.

> Wurden die IOs richtig zugeordnet in der .xdc?
Hatte ich geschrieben, ja, die stimmen.

von Tobias B. (Firma: www.elpra.de) (ttobsen) Benutzerseite


Lesenswert?

Gustl B. schrieb:
> Eigentlich sollte man auch keine Register beschreiben müssen wenn der
> Chip ordentliche Defaults hat.

Das Problem sind nicht die Default Werte, sondern dass der halt eine 
ganze Startup Prozedur hat. Das ist nichts ungewoehnliches fuer ein IC, 
leider in diesem Fall etwas nervig.

Michel schrieb:
> Tobias B. schrieb:
>> In dem Fall ist es mit Blockdesign wahrscheinlich einfacher, weil man
>> dann die I2C Register einfach im Microblaze runterrattern kann.
> Das muss aber auch geschrieben werden, weil es dafür ja kein Demo gibt.
> Dann kann ich es auch von Außen machen.

Gefuehlt ist es mit einem Block Design schneller, als einen I2C Master 
zu schreiben. Ich persoenlich wuerde auch kein Block Design fuer einen 
kurzen Test nehmen, aber auch nur weil ich ein I2C Master habe, dann ich 
relativ einfach konfigurieren kann und der auch nichts anderes macht als 
eine Liste von Registern runterzurattern. Leider kann ich den nicht 
einfach rausruecken. :-(

von Gustl B. (gustl_b)


Lesenswert?

Gut, um i2c kommst du nicht herum. Der chip hat zwar für viele Register 
defaults, will aber nach dem Start trotzdem mit anderen werten 
beschrieben werden.
Wieso macht man das? 0x98 ist default 0x0B soll aber 0x03 geschrieben 
werden. Ich fände das ja verständlich wenn alle Register nach dem Reset 
auf 0x00 stünden, aber defaults die dann immer mit dem selben wert 
überschrieben werden müssen?
Egal, table 14 ist wohl das minimum was du beschreiben musst.

Edit:
Ja mit i2c würde ich auch ein Blockdesign nehmen. Die chips die ich 
bisher verwendet habe hatten, z.b. ad9650, oft auch eine Schnittstelle 
zu den Registern, aber eigentlich immer sinnvolle defaults oder waren 
über Pins konfigurierbar. Da musste man die Schnittstelle nicht anfassen 
wenn man mit einer standardfunktionsweise zufrieden war.

: Bearbeitet durch User
von Tobias B. (Firma: www.elpra.de) (ttobsen) Benutzerseite


Lesenswert?

Gustl B. schrieb:
> Ja mit i2c würde ich auch ein Blockdesign nehmen. Die chips die ich
> bisher verwendet habe hatten, z.b. ad9650, oft auch eine Schnittstelle
> zu den Registern, aber eigentlich immer sinnvolle defaults oder waren
> über Pins konfigurierbar. Da musste man die Schnittstelle nicht anfassen
> wenn man mit einer standardfunktionsweise zufrieden war.

Ja, die gibt es auch, z.B. der TFP410. Der ADV7511 ist halt eine echte 
Waffe und deckt das ganze HDMI Spektrum mit allen Funktionen ab. In der 
Regel hat man dann eh eine I2C Anbindung und einen Prozessor im System.

Die Gruende sind da nicht immer esichtlich, auf jedenfall ist nicht das 
Ziel Basterler oder Prototyp Entwickler gluecklich zu machen, sondern 
Kunden die in grossen Stueckzahlen einkaufen. Ich weiss nichtmal ob man 
ohne HDMI Mitglied zu sein so einfach an den Chip kommt.

von Michel (Gast)


Lesenswert?

Tobias B. schrieb:
> ADV7511 ist halt eine echte Waffe
Aber eine die nicht zu funktionieren scheint. Ich habe jetzt alle 
Register-Defaults drin, so wie sie in der einen Seite in der Chip-Doku 
beschrieben sind. Der Chip scheint auch auf I2C zu antworten, jedenfalls 
sehe ich das ACK. Es tut sich aber trotzdem nichts.

Hätte jemand ein funktionierendes design als BIT, dass ich kurz 
reinladen kann um zu schauen, oder de Chip geht?

Ich habe den Verdacht dass der einfach kaputt ist.


Tobias B. schrieb:
> Ja, die gibt es auch, z.B. der TFP410
Habe ein Applikation überflogen. Der macht nur 1280x1024, oder?
Ich sehe bei dem, dass er auf "double edge" arbeitet, also so eine Art 
DDR?

Kann es sein, dass auch der ADV7511 so beschossen werden muss?
Wenn das der Fall ist, könnte es ja sein, dass man das irgendwo noch 
einstellen muss.

von Tobias B. (Firma: www.elpra.de) (ttobsen) Benutzerseite


Lesenswert?

Michel schrieb:
> Habe ein Applikation überflogen. Der macht nur 1280x1024, oder?
> Ich sehe bei dem, dass er auf "double edge" arbeitet, also so eine Art
> DDR?
>
> Kann es sein, dass auch der ADV7511 so beschossen werden muss?
> Wenn das der Fall ist, könnte es ja sein, dass man das irgendwo noch
> einstellen muss.

Beide Chips koennen jeweils SDR und bis FullHD.

Michel schrieb:
> Hätte jemand ein funktionierendes design als BIT, dass ich kurz
> reinladen kann um zu schauen, oder de Chip geht?

Leider hab ich kein Board zur Hand. :-(

Michel schrieb:
> Ich habe den Verdacht dass der einfach kaputt ist.

Hmmm, hast mal mit nemm Oszi die I2C und parallel Video Signale 
angeschaut? (Falls man ans parallel Video ueberhaupt rankommt)

: Bearbeitet durch User
von Gustl B. (-gb-)


Lesenswert?

Michel schrieb:
> Der Chip scheint auch auf I2C zu antworten, jedenfalls
> sehe ich das ACK. Es tut sich aber trotzdem nichts.

Kannst du die Register von dem Chip lesen? Ich baue das bei mir gerne 
so, dass nach einem Schreibvorgang auch gleich ein Lesevorgang 
stattfindet der überprüft, dass das auch wirklich im Register steht.

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
Noch kein Account? Hier anmelden.