17.03.2015, 08:44
Hallo liebes Forum,
zur Zeit verwende ich folgenden Druck und Temperatursensor: http://www.meas-spec.com/downloads/MS5803-05BA.pdf
zusammen mit der NI USB-8652 Karte: http://digital.ni.com/manuals.nsf/websea...AC006D49F4
Das ganze soll über Spi laufen, dass heißt ich sende einen von den 5 Basic Commands (8 bit) an den Sensor und dieser gibt mir dann Daten zurück.
Die wichtigen Kommandos für mich sind PROM Read und ADC Read. Wie ihr auf Seite 8 des Sensordatenblatts sehen könnt, ist die Größe der Antwort angegeben in bit.
PROM Read gibt pro Koeffizient 16bit zurück und ADC Read 24bit für Temperatur und Druck.
Ich habe herumprobiert, und wenn ich nach dem ersten Koeffizienten frage mit dem Kommando A2 (hexa), dann gibt er mir folgenden Wert jedes mal gleich 254. Das kann nicht sein, da die Antwort erstens 16bit groß sein soll und einen typischen Wert von 46372 haben soll.
Wenn ich jedoch mehrmals das Kommando A2 im Array an den Sensor schicke bekomme ich folgende Werte: 254 182 54 255 255 255 und immer weiter 255. Wenn ich nun 182 und 54 zusammenfasse bekomme ich (auch für alle anderen Koeffizienten genauso) einen Wert der zum typischen Wert sehr gut passt.
Somit habe ich die 6 Koeffizienten bekommen, was mir aber ein wenig komisch vorkommt.
Wenn ich nun nach den "rohen" Temperatur und Druckwerten frage mit dem Kommando ADC Read (00000000), dann soll eine 24 bit Antwort für Druck und Temperatur zurückkommen. Schick ich das Kommando wie oben auch schon gemacht öfters in einem Array dann bekomme ich folgende Werte zurück:
254, 92, 85, 216, 127, 255, 255, 255 und 255 immer weiter.. (Dabei verändert sich der Arrayeintrag der hier bei 216 und 85 liegt bei jeder Abfrage. Die anderen bleiben gleich)
Ich kann auch davon ausgehen, dass die Werte 92 85 216 zur Temperatur gehören, denn wenn ich den Sensor umschließe werden die Werte kleiner. Dabei wird 92 ganz langsam kleiner dann die 85 und dann 216 ganz schnell.
Kann mir irgendjemand sagen ob das normal ist? Wenn ja wie ich meine Werte daraus ziehen soll
Und wenn nein was ich denn falsch mache.
Ich hänge mal meine Schaltung anbei..
zur Zeit verwende ich folgenden Druck und Temperatursensor: http://www.meas-spec.com/downloads/MS5803-05BA.pdf
zusammen mit der NI USB-8652 Karte: http://digital.ni.com/manuals.nsf/websea...AC006D49F4
Das ganze soll über Spi laufen, dass heißt ich sende einen von den 5 Basic Commands (8 bit) an den Sensor und dieser gibt mir dann Daten zurück.
Die wichtigen Kommandos für mich sind PROM Read und ADC Read. Wie ihr auf Seite 8 des Sensordatenblatts sehen könnt, ist die Größe der Antwort angegeben in bit.
PROM Read gibt pro Koeffizient 16bit zurück und ADC Read 24bit für Temperatur und Druck.
Ich habe herumprobiert, und wenn ich nach dem ersten Koeffizienten frage mit dem Kommando A2 (hexa), dann gibt er mir folgenden Wert jedes mal gleich 254. Das kann nicht sein, da die Antwort erstens 16bit groß sein soll und einen typischen Wert von 46372 haben soll.
Wenn ich jedoch mehrmals das Kommando A2 im Array an den Sensor schicke bekomme ich folgende Werte: 254 182 54 255 255 255 und immer weiter 255. Wenn ich nun 182 und 54 zusammenfasse bekomme ich (auch für alle anderen Koeffizienten genauso) einen Wert der zum typischen Wert sehr gut passt.
Somit habe ich die 6 Koeffizienten bekommen, was mir aber ein wenig komisch vorkommt.
Wenn ich nun nach den "rohen" Temperatur und Druckwerten frage mit dem Kommando ADC Read (00000000), dann soll eine 24 bit Antwort für Druck und Temperatur zurückkommen. Schick ich das Kommando wie oben auch schon gemacht öfters in einem Array dann bekomme ich folgende Werte zurück:
254, 92, 85, 216, 127, 255, 255, 255 und 255 immer weiter.. (Dabei verändert sich der Arrayeintrag der hier bei 216 und 85 liegt bei jeder Abfrage. Die anderen bleiben gleich)
Ich kann auch davon ausgehen, dass die Werte 92 85 216 zur Temperatur gehören, denn wenn ich den Sensor umschließe werden die Werte kleiner. Dabei wird 92 ganz langsam kleiner dann die 85 und dann 216 ganz schnell.
Kann mir irgendjemand sagen ob das normal ist? Wenn ja wie ich meine Werte daraus ziehen soll
Und wenn nein was ich denn falsch mache.
Ich hänge mal meine Schaltung anbei..