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
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.
Wow....
wer soll denn daraus schlau werden ?
ADC ? DMA-fähig?RS232?Netzwerk?JTAG?
???????
Willst Du die einfache Antwort ?
Sie lautet: Äheemmm - wat is ?
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.
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?
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.
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!
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... :-/
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.
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.
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?
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....
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.