LabVIEWForum.de - NI USB-8452 (SPI Kommunikation)

LabVIEWForum.de

Normale Version: NI USB-8452 (SPI Kommunikation)
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich habe ein kleines Programm geschrieben, mit dem ich mit Hilfe des NI USB-8452 SPI Interfaces einen Beschleunigungssensor über das FIFO auslesen kann.
Das funktioniert soweit ganz gut. Ich kann mir die X-, Y- und Z-Achse auslesen und anzeigen.
Nun wollte ich wissen, ob ich wirklich alle Daten auslese (kontinuierlich) oder ob ich Daten verliere. Also habe ich den Beschleunigungssensor auf einem Shaker gelegt (z.B. 60Hz) und siehe da, ich habe Sprünge im gemessenen Signal (Sinus).

Ich denke es liegt daran, dass ich in der While-Schleife die Referenz jedes mal schließe und wieder neu erzeuge.
Im SubVI "SLAVE CONFIG" wird zu Beginn eine neue Script Referenz erzeugt und in der Hauptansicht des Blockdiagramms wird die Referenz geschlossen (jeweils beim Bestimmen der Anzahl der Daten im FIFO und beim Auslesen des FIFOs).
Also ich erzeuge für jede Aktion (Read FIFO Level & Read FIFO) ein neues Skript. Man muss doch auch mehrere Aktionen mit einem Skript ausführen können oder?

Der allgemeine Aufbau das FIFO-Register auszulesen ist wie folgt:
- Register des Beschleunigungssensors initialisieren
- Danach lese ich das Register aus, indem steht wie viele Daten (Words) darin bereits stehen um das FIFO komplett zu lesen
- Danach wird das FIFO komplett gelesen

Ich habe schon probiert die "SLAVE CONFIG" SubVIs und die "Close Reference" Blöcke in der While-Schleife zu entfernen und einen "Close Reference" Block nach der While-Schleife einzufügen, jedoch ohne Erfolg.
Ich stehe da gerade etwas auf dem Schlauch. Wahrscheinlich ist das ein kleiner Denkfehler von mir Big Grin

Anbei Screenshots von dem Hauptblockdiagramm und vom SubVI "SPI_Slave_Config".

[attachment=62065]
[attachment=62066]
Hallo EasyLab,

was spricht gegen die Verwendung der SPI Basic Funktionen?

Gruß Max
Referenz-URLs