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.
Das zweite Problem versuche ich erstmal selbst zu lösen vielleicht hängt es mit dem ersten Problem zusammen.
Danke und grüße