LabVIEWForum.de
Sensorkommunikation mit SPI und sbRIO - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Module (/Forum-LabVIEW-Module)
+---- Forum: LabVIEW RealTime (/Forum-LabVIEW-RealTime)
+---- Thema: Sensorkommunikation mit SPI und sbRIO (/Thread-Sensorkommunikation-mit-SPI-und-sbRIO)



Sensorkommunikation mit SPI und sbRIO - smarties - 05.03.2013 15:37

Hallo,

ich habe einen CH Robotics UM6 AHRS welches von UART auf SPI Kommunikation umgestellt werden soll.
Der Sensor bietet beide Protokolle an.
Der Sensor ist an ein sbRIO 9636 angeschlossen.
Ich bin von dem Multiport SPI sbRIO Beispiel im Labview ausgegangen und habe es versucht, an meine Konfiguration anzupassen.
Dazu habe ich den Sensor angeschlossen und die Ports (SS, SCK, MOSI, MISO) im Labview entsprechend angepasst.

Da das Beispiel schon sehr umfangreich ist, müsste es ja ein leichtes sein, es entsprechend Anzupassen.

Gemäß Datenblatt ( http://www.chrobotics.com/docs/UM6_datasheet.pdf ) Seite 20, dass 0x00 auf MOSI geschrieben wird, gefolgt vom Register welches ausgelesen werden soll. (z.B. 0x5D für eine gefilterte Drehrate um z)
Danach antwortet der Sensor auf MISO mit dem Inhalt des Registers.

Wie geschieht nun die Praktische Umsetzung des Beispiels?
Ich betrete momentan selbst Neuland, da ich bisher noch nicht mit Labview FPGA gearbeitet habe.
Bin daher um jede Hilfe dankbar.


RE: Sensorkommunikation mit SPI und sbRIO - smarties - 27.03.2013 14:57

Ich arbeite mit diesem Beispiel:
http://www.ni.com/white-paper/9117/en

Es geht um die Anpassung des VIs an ein anderes FPGA Target

Zitat:The IO of the Single-Board RIO device in the example project will not be the same as the IO types on the R Series board. Specifically, the IO lines have different properties and methods associated with them and the PORTs of an sbRIO are 10 bits wide while the R Series ports are 8 bits. To rectify this:

Make sure you have the IO set up for Boolean values for SCLK, MOSI, and MISO and a Port set for CS.

Was ist mit diesem Port für CS gemeint?

Ich habe ein Screenshot des Projektexplorers angefügt:

Im oberen FPGA Target (RT Single Board RIO 10.0.18.167), welches aus dem Beispiel Projekt kommt, sieht man das CS_0 respektive CS_1 Port1/DIO9:0 zugeordnet ist.
Was beudetet dieses 9:0 in diesem Fall?

Der CS Port muss wohl als U16 und nicht als Boolean konfiguriert sein.
Im Original Beispiel sieht man das an der Port Konfiguration der FPGA I/Os, vgl angehängte Screenshots.

Das Beispiel lässt sich nicht kompilieren, da in meinem Fall Datentypen unterschiedlichen Typs (U8 und Boolean) miteinander verbunden sind...

Weiß einer Rat?


RE: Sensorkommunikation mit SPI und sbRIO - kpa - 27.03.2013 15:16

Hallo smarties,

CS steht für Chip Select - dh. Du verbindest einen digitalen Ausgang mit der Baugruppe mit der Du kommunizieren willst. Wenn du CS auf high setzt schaltest Du sozusagen die Baugruppe auf aktiv und sie kann jetzt hören was vom digitalen Sendeausgang auf ihren Eingang kommt und mit ihrem Ausgang etwas zum digitalen Eingang Deiner Kommunikationshardware senden. Und alles natürlich im Rhytmus vom Clock.

Grüße

kpa


RE: Sensorkommunikation mit SPI und sbRIO - jg - 27.03.2013 15:27

Hallo, smarties,

in Ergänzung zu kpa:

Zitat aus dem White-Paper:
Code:
A single-cycle timed loop (SCTL) is used to perform each step of communication between the SPI master (LabVIEW FPGA VI) and up to 8 slave devices per port.  Multiple ports can be created using the same FPGA VI and interface to a host program.

Das Beispiel kann also über denselben SPI-Bus mit mehreren Slaves kommunizieren, je nachdem welches Bit im Chip-Select Port gerade aktiv ist.

Wenn du nur mit einem einzigen SPI-Teilnehmer kommunizieren willst, dann kannst du das gerne auf einen einzelnen DO reduzieren.

Gruß, Jens


Nachtrag: Schau dir genau den "Chip Select" deines Sensors an. Häufig muss der Pin Low sein, damit die Kommunikation aktiv ist.


RE: Sensorkommunikation mit SPI und sbRIO - smarties - 28.03.2013 15:19

Das habe ich bereits getan.
Es kommt die Fehlermeldung dass es ein Fehler mit dem FGPA I/O Knoten gibt, vgl Anhang.

Im angehängten PDF ist ein Auszug aus dem Sensor Datenblatt. Soweit ich das Verstanden habe müsste ja nur das Beispiel angepasst werden und ich könnte dann meine angeforderten Daten Register aus dem Sensor auslesen. Wo liegt der Fehler?


RE: Sensorkommunikation mit SPI und sbRIO - jg - 28.03.2013 15:53

Auf Grund deines Screenshots kann ich nicht sagen, was du jetzt falsch machst.

Gruß, Jens


RE: Sensorkommunikation mit SPI und sbRIO - smarties - 28.03.2013 17:39

Der Fehler ist nun behoben, ich habe einen neuen FPGA I/O Cluster gemacht.
Nun taucht ein Fehler im Host VI auf: code -63195 "Read/Write Control in FPGA SPI_Configure.vi".
Siehe Screenshot.
Das Sub VI stammt aus dem Beispiel.
Hier wird der Fehler im Lesen/Schreiben Element produziert. Mit dem Highlight Modus konnte ich keine ungereimtheiten Feststellen die für den Fehler verantwortlich sein könnten...??