INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

FPGA oder FIFO sendet nur Integer zwischen -5 und 5



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

14.04.2015, 16:52 (Dieser Beitrag wurde zuletzt bearbeitet: 14.04.2015 16:56 von gibsonuser.)
Beitrag #1

gibsonuser Offline
LVF-Grünschnabel
*


Beiträge: 15
Registriert seit: Apr 2015

2014
2015
DE



FPGA oder FIFO sendet nur Integer zwischen -5 und 5
Hallo,
ich benutze zurzeit ein cRIO 9076 System mit zwei Ni 9222 Karten. Theoretisch sollte ich jetzt 8 Analoge Eingänge gleichzeitig mit 500 kS/s abtasten können, also jede 2µS sollte jeder Kanal ein Eingang messen können. Mein Ziel ist es gleichzeitig 8 verschiedene Analoge Sensoren auszulesen und diese ausgelesenen Messdaten dem PC zu übergeben.
Zu Testzwecken habe ich in den Analogeneingang 0 und 1 ein Sinus mit einer Frequenz von 1 kHz und einem Vpp von 10V (-5V zu 5V) eingespeist.
Für die Programmierung verwende Labview 2014. Ich bin noch ein Anfänger und es haben sich mir ein paar Fragen gestellt, die ich leider nicht alleine Lösen konnte.

Zunächst einmal habe ich auf meinen FPGA Target ein Programm erstellt, in dem ich die ausgelesenen Messdaten für den Kanal Analog 0 in einem FIFO Buffer (Target to Host) übergebe.
Mit einem Bench musste ich feststellen das der Loop 121 Ticks dauert, demnach also 25ns*121=3,025µs statt der 2 µs, warum?
Ich habe gelesen, dass diese Methode (FIFO) besser geeignet ist als die Scan Engine, wenn Messdaten bei höheren Frequenzen ausgelesen werden möchten. Korrigiert mich bitte wenn ich etwas falsch verstanden habe. Ich habe nun zwei größere Probleme, zunächst einmal übergibt der Fifo Buffer im Host (also im VI meines Computers) nur Integerwerte zwischen -5 und 5. Was ich hierbei nicht verstehe ist, dass die 9222 Karte doch ein 16 Bit ADC Wandler hat, somit müsste ich eigentlich 2^16 verschiedene Intergerwerte bekommen?! Über die Kontexthilfe habe ich gesehen, dass ein Festkommawert vom FPGA übergeben wird. Wenn ich den FIFO als Festkommawert umkonfiguriere bleibt das Problem leider. Ich habe versucht das ganze in einem Signalverlaufsdiagramm darzustellen um somit den eigentlich Sinus auf meinem Host nach zu modellieren das Resultat seht ihr im angehängten Bild. Blink

Das zweite Problem versuche ich erstmal selbst zu lösen vielleicht hängt es mit dem ersten Problem zusammen.

Danke und grüße
Construction


Angehängte Datei(en) Thumbnail(s)
           
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
14.04.2015, 18:51
Beitrag #2

BNT Offline
LVF-Freak
****


Beiträge: 744
Registriert seit: Aug 2008

5.0 - 22Q3
1999
EN

64291
Deutschland
RE: FPGA oder FIFO sendet nur Integer zwischen -5 und 5
Hast Du den FIFO Datentype richtig konfiguriert?
Du musst die Bit-Breite und die Integer-Bit angeben, z.B. signed 16.5, welches der Typ aus dem AI sein sollte.

Gruß Holger

NI Alliance Partner & LabVIEW Champion
GnuPG Key: 6C077E71, refer to http://www.gnupg.org for details.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.04.2015, 19:00
Beitrag #3

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: FPGA oder FIFO sendet nur Integer zwischen -5 und 5
Zum Timing kann ich dir weiterhelfen. Schau mal in die "Operating Specs", Seite 18. Dein VI entspricht dem FPGA I/O Nodes Modus, damit sind max. 300 kS/s möglich. Wie es besser geht, steht hier:
http://digital.ni.com/public.nsf/allkb/5...enDocument

Im zweiten Link wird auch auf einige Beispiel-Projekte verwiesen, zu finden über den NI Example Finder, die würde ich mir an deiner Stelle anschauen!

Für deine Probleme mit dem Datentyp müsste man dein VI zur Hand haben. Aber vielleicht löst sich diese Frage von selber an Hand des Beispiels-Projekts.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.04.2015, 12:52
Beitrag #4

gibsonuser Offline
LVF-Grünschnabel
*


Beiträge: 15
Registriert seit: Apr 2015

2014
2015
DE



RE: FPGA oder FIFO sendet nur Integer zwischen -5 und 5
Erstmal vielen Dank für eure Antworten,
es war Tatsächlich so, dass der Festkommawert anders im FIFO definiert werden musste (Wortlänge 24 Bit Integer-Wortlänge 5 Bit war vorher auf 16/16 gestellt).
Zum Timing habe ich dann doch ein Problem, ich bin dem Beispiel gefolgt und habe fast 500 kS/s erreichen können, genau genommen habe ich 84 Ticks für einen Schleifendurchlauf erreichen können.
Ich will nicht pingelig sein aber ich Frage mich wie es kommt, dass es doch 84 statt 80 Ticks braucht?

Ich möchte nun die 500 kS/s Möglichkeit mit dem FIFO Datenbuffer kombinieren. Leider kriege ich bei der Compilierung einen Fehler bei etwa 20%.
Wisst ihr vielleicht warum? Kann man diese beiden Optionen nicht miteinander kombinieren?
Im Anhang habe ich noch ein Bild von meinem Blockdiagramm und ein Bild von dem Fehler eingefügt.
Schonmal danke 2hands


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.04.2015, 09:16
Beitrag #5

gibsonuser Offline
LVF-Grünschnabel
*


Beiträge: 15
Registriert seit: Apr 2015

2014
2015
DE



RE: FPGA oder FIFO sendet nur Integer zwischen -5 und 5
Das Problem konnte ich lösen, habe das Programm einfach nochmal geschrieben und schon hat es geklappt.
Ich habe das Programm jetzt ein bisschen umgeschrieben und es funktioniert auch sehr gute aber ich habe das Gefühl das Daten bei der FIFO Übertragung verloren gehen,
zumindest sieht das in meinem Signalgraphen/Array so aus.
Kann mir jemand sagen warum das so ist ?


Angehängte Datei(en) Thumbnail(s)
           
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.04.2015, 13:29
Beitrag #6

BNT Offline
LVF-Freak
****


Beiträge: 744
Registriert seit: Aug 2008

5.0 - 22Q3
1999
EN

64291
Deutschland
RE: FPGA oder FIFO sendet nur Integer zwischen -5 und 5
Wenn Deine Fifo-Leseschleife mal nicht zum Zuge kommt (>1s) gehen die Daten halt verloren.
Setz die VI-Priorität doch mal auf Time-Cirtical oder verwende eine Timed-Loop.

NI Alliance Partner & LabVIEW Champion
GnuPG Key: 6C077E71, refer to http://www.gnupg.org for details.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  FPGA FIFO vs. MEMORY derandyk 1 4.564 30.11.2018 11:42
Letzter Beitrag: GerdW
  16 Kanal AI mit FPGA und DMA FIFO derandyk 12 12.571 23.11.2018 15:56
Letzter Beitrag: BNT
  FPGA FIFO Roland 5 7.916 28.05.2018 20:16
Letzter Beitrag: jg
  Langsame Datenübertragung zwischen cRIO9035 und FPGA auf NI9144 tobsen30 2 5.653 01.03.2018 18:37
Letzter Beitrag: tobsen30
  Sind Referenzen auf FPGA-Variablen in FPGA vi möglich? Felix777 2 7.992 26.10.2015 20:41
Letzter Beitrag: Felix777
  Datenauswertung bzw. -aufbereitung in RT oder FPGA? Rostra 1 6.588 11.10.2015 09:59
Letzter Beitrag: BNT

Gehe zu: