www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Datenübertragungsprobleme mit dem Spartan 3E


Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo alle zusammen!

Folgendes Problem.Ich möchte mittels Labview mir Daten vom Spartan 3E 
ausgeben lassen.Es wird eine Spannung an den Eingang des ADC gelegt und 
mit Labview kann ich mir das Signal angucken.Das klappt soweit ganz gut 
und es werden mir die richtigen Werte angezeigt bei Gleichspannung bei 
minimalem Rauschen.Wenn ich aber einen Sinus anlege,dann sieht der Sinus 
nur für sehr geringe Frequenzen nach einem Sinus aus(bis 500mHZ).Bei 
höheren Frequenzen wirkt der Sinus abgehakt und sehr spitz,als wenn er 
mit dem sampeln nicht hinterherkommt.Die Frage ist,woran liegt das:Das 
Spartan 3 E ist über ein USB-Kabel mit dem PC verbunden.Wenn ich Daten 
Einles und Anzeigen lasse,geht der REchner manchmal leicht in die 
Knie(50%Rechnerauslastung).Jetzt habe ich im Netz gelesen,das die 
USB-Schnittstelle nicht DMA-fähig ist.Könnte das die Ursache sein?Ist 
eine ande Schnitstelle DMA-fähig?RS232?Netzwerk?JTAG?
Wenn das die Ursache sein sollte,wie kann man das Problem am besten 
Umgehen mit der Laufzeit?Gibt es eine Labviewlösung(Buffer,FIFO,etc.)?
Was mich auch interessieren würde,ob es nicht am besten ist ds Board 
"stand alone" zubetreiben.Das man sich die VI`s auf den Flash downloaded 
und eine Spannung an den ADC angelegt wird und die Daten im 
Flashspeicher gespeichert werden.Kann man die gespeicherten Daten 
einfach wieder auslesen mittels USB,wenn man den REchenr weider 
anschließt oder muss dies über eine andere Schnittstelle 
geschehen(RS232)?Würde mich freuen,wenn mir einer helfen könnte.

Mit freundlichen Grüßen
Peter

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter schrieb:
> Wenn ich Daten Einles und Anzeigen lasse,geht der REchner manchmal
> leicht in die Knie(50%Rechnerauslastung).
Und wer zwingt den in die Knie?

> Jetzt habe ich im Netz gelesen,das die
> USB-Schnittstelle nicht DMA-fähig ist.
Was man nicht so alles liest...

> Könnte das die Ursache sein?
Nein, das mit dem DMA ist nicht dein Problem.

Autor: FPGAschubser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wow....

wer soll denn daraus schlau werden ?
ADC ?  DMA-fähig?RS232?Netzwerk?JTAG?

???????

Willst Du die einfache Antwort ?
Sie lautet: Äheemmm - wat is ?

Autor: Anguel S. (anguel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du meinst wohl das spartan 3e board von national instruments, das sich 
mit labview für fpga programmieren lässt. Da kocht national instruments 
sein eigenes süppchen und will Geld verdienen. Also am  besten gleich an 
deren support wenden.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Genau,ich meine das Spartan 3 Starter Kit.
@ Lothar Miller
Der Computer ist leistungsfähig.Aber,wenn ich den 
ADC(Analog-Digital-Converter) auslese und mir graphisch darstellen 
lassen will auf dem Rechner,dann verschwimmt der Sinus teilweise,wenn 
der REchner nicht hinterherkommt.Es bricht teilweise eine Halbwelle weg.
Hatte jemand schon ein ähnliches Problem?

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter schrieb:
> Hatte jemand schon ein ähnliches Problem?
Das Problem heißt wohl Labview und Windows.
Denn der Rechner ist garantiert schnell genug für die paar Bytes.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wäre es sinnvoll,sich die daten in einen Ringbuffer einlesen zu lassen 
und alle in einem Aray schalgartig weider ausgeben zu lassen?Wurde das 
die Verzögerung neutralsieren?Ich meine online können wir die WErte eh 
nicht einsehen,aber vllt kann man nachhaltig ordentich Messreihen 
aufnehmen und abspeichern!

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter schrieb:
> Wäre es sinnvoll,sich die daten in einen Ringbuffer einlesen zu lassen
> und alle in einem Aray schalgartig weider ausgeben zu lassen?
Es wäre sicher sinnvoll, Windows nicht dauernd das Fenster neu malen zu 
lassen. Aber ein Stück Software wie Labview sollte das eigentlich 
berücksichtigen... :-/

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie wird denn jetzt abgetatstet? Etwa software-gesteuert auf Kommando 
hin? Das kann nicht gut gehn. Die normale und sichere Vorgehensweise 
wäre, auf Kommando hin die Messung zu starten, das Abtasten und 
Speichern der Werte in einen FIFO übernimmt das FPGA. Dann können die 
Daten in alle Ruhe auf der anderen Seite des FIFOs zum PC übertragen 
werden. Wenn du alle Daten hast, startest du eine neue Messung. Für 
echtes Streaming brauchst du auch einen Speicher und deine Übertragung 
und Verarbeitung muss auch unter worst-case Bedingungen schneller sein 
als die Abtastung, sonst verliert der wieder Daten bzw. der FIFO läuft 
voll.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja,es wird Softwaregesteuert abgetastet.Wie würde so eine FIFO-GEsichte 
ungefähr aussehen?

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist natürlich Murks. Dann bekommst du nie eine äquidistante 
Abtastung hin. Im einfachsten Fall ein FIFO aus dem Core Generator, den 
du mit den ADC Daten beschreibst und auf der Lese-Seite deine 
PC-Interface Logik dran hast. Wenn das ganze rund werden soll, dann ein 
Sample-Zähler, der per Kommando gestartet wird, und eine bestimmte 
Anzahl Samples in den FIFO schreibt, die du dann ausliest. Mehr kann man 
ohne Kenntnis deines Designs nicht sagen.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
was würdest du denn zum dEsign wissen wollen?Liest man den FIFO auf dem 
Board aus(Flash) oder lässt man quasi den Speicher(Computer) voll laufen 
und liesst dann aus?

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welcher Flash? Hast du überhaupt irgendwelche Vorbildung im 
FPGA-Bereich? Deinen Fragen nach zu urteilen weißt du weder viel über 
Signalverarbeitung noch über FPGAs. Da wirds extrem schwierig....

Autor: Anguel S. (anguel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Problem ist, dass NI die Leute glauben machen will, dass jeder die 
Stärken der FPGAs ohne Vorkenntnisse nutzen kann. Ich wäre auch beinahe 
auf sowas reingefallen, habe damals aber zum Glück mit VHDL angefangen. 
Das Problem ist, dass Du bei FPGAs mit Labview weder genau weißt, was 
der FPGA macht, noch was die übrige HW auf dem Board macht, noch was 
Labview nachher mit den Daten macht. Die Leute die hier mit FPGAs 
arbeiten wissen dagegen meistens genau, was mit jedem Baustein auf dem 
Board und mit jedem Bit im FPGA passiert. Fragen wie deine haben leider 
nix mit FPGAs als solches zu tun, sondern sind sehr speziell auf das 
NI-Board bezogen. Wenn du Labview und das Board gekauft hast, hast du 
sicher auch Support. Ob dir der Support in solchen Fällen helfen kann 
ist eine andere Frage.
Es gibt z.B. FPGA-Entwickler, die z.B. mehre MB große FIFOs nutzen, um 
eine Übertragung der Daten zum PC zu gewährleisten. Macht NI sowas? Ist 
überhaupt Zweck des Boards sowas zu gewährleisten? Oder ist das eh nur 
ein Experimentierboard (soweit ich weiß ist es so). Für was richtiges 
bräuchte man dann ein Virtex-Board für mehrere tausend Euro. Das sind 
fragen, die Dir der NI Support sicher beantworten kann, vielleicht 
wissen die inzwischen, dass es Labview f. FPGAs gibt, vor einiger Zeit 
war das nicht der Fall... Ansonsten kannst Du erstmal schauen, ob dir 
Labview die Daten auf dem PC in eine Datei ohne Verlust schreiben kann, 
ohne sie aufm Monitor auszugeben. Danach kannst Du sie Dir anschauen. 
Das Problem bei dir ist vermutlich genau diese Ausgabe, die bei vielen 
Daten nicht mitkommt. Bei graphischer Ausgabe ist Labview langsam, 
ausserdem ist das ganze auch sehr stark von deinem Programmierstil 
abhängig. Für effiziente Labview-Programmierung gibt es wieder mehrere 
Labview Bücher.
Apropos Labview - das Programm ist eigentlich gar nicht mal so schlecht, 
wenn man mal auf die Schnelle was graphisch ansprechendes hinbekommen 
will und wenn man von mehreren nicht durchdachten Sachen absieht. Hab 
heute z.B. einen ganzen Tag damit verbracht, ein bestehendes 
Labview-Projekt in ein neues Verzeichnis zu duplizieren. Sowas 
alltägliches ist anscheinend nicht vorgesehen. Anruf beim Support hat 
wieder mal nix gebracht... Ich musste eigentlich dem netten Spezialisten 
erklären, wie Labview funktioniert.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.