Hallo liebe Forenmitglieder,
Mein Projekt besteht darin über das Analogmodul 9234 Signale aufzunehmen, diese mit der FFT-Funktion zu transformieren, die erhaltenen Daten weiterverarbeiten und daraus ein Signal zu erzeugen, welches ich durch das Analogmodul 9263 wieder ausgebe. Dafür habe ich ein Projekt mit FPGA- und Host-VI erstellt.
Ich habe anhand der Beispiel-Projekte für die I/O-Module meine FPGA- und Host-VI's in meinem Projekt angepasst. Da ich die FFT im Host-VI durchführen möchte, wollte ich die von Modul1 aufgenommenen Daten im FPGA-VI in einen FIFO schreiben und dann im Host-VI wieder auslesen. Deshalb sieht mein FPGA-VI wie folgt aus:
Ich habe darauf geachtet erst das Modul zu starten und dann das Messen durchzuführen.
Mein Host-VI habe ich vorerst wie folgt aufgebaut (das Durchführen der FFT ist erstmal entfernt, da ich erstmal schauen wollte, ob überhaupt was aus dem FIFO raus kommt):
Mir sind dabei einige Dinge aufgefallen und Fragen gekommen.
1. ankommende Werte:
Das VI in dieser Form stellt mir die ankommenden Daten im Diagramm FIFO Data 2 richtig dar, d.h. ein eingegebenes SInus-Signal wird auch als solches ausgegeben. Ändere ich allerdings den Wert am Eingang "Number of Elements" beim darauffolgenden FIFO-Knoten, scheine ich zwar den FIFO in der Länge x zu beschreiben und zu lesen, dafür sehe ich im Diagramm FIFO Data 2 nur noch Gezappel und keinen Sinus mehr. Liegt das an einem falschen Umgang mit dem FIFO, z.B. fehlende Timeout-Abfrage oder so etwas?
2. FIFO befüllen und auslesen:
Beim Auslesen des FIFO's TARGET_2_HOST (Eingang "Number of Elements" mit 1024 versehen) erhalte ich für jeden Wert im Array eine 0. Also weder sehe ich die Werte für einen Sinus, noch für das oben beschriebene Gezappel.
Da der Ausgang "Data" vom Datentyp 1d-Array ist, dachte ich ich kann alle Werte mit einem Mal aus dem FIFO auslesen und über den Graphen anzeigen lassen.
Ist hier dennoch die Verwendung einer FOR-Schleife notwendig?
Und woran liegt es, dass sich im FIFO scheinbar keine Werte befinden?
Nutze ich gar eine Falsche FIFO-Art?
Ich habe mich bei dem VI an dem "Getting started" Beispiel-VI für das Modul NI 9234 orientiert.
3. Run und Abort des FPGA-VI's
Startet die Run-Funktion das FPGA-VI so, als würde ich auf den Pfeil drücken? Wenn ja, kann sich hier ein Fehler einschleichen bzw. kann das etwas Zeit in Anspruch nehmen? Ich habe das Gefühl, dass das FPGA-VI nicht ausgeführt wird, wenn die Funktion aufgerufen wird. Aber vll. liegt es ja auch nur an meiner Ungeduld.
Ist die Funktion Abort überhaupt nötig, da ich als Letztes in der While-Schleife die Stop-Bedingung des Host-VI's auf das FPGA-VI übergebe?
Ich bin für jeden noch so kleinen Tip dankbar.
Beste Grüße vom Schü