Forum: Mikrocontroller und Digitale Elektronik MS5805-02BA01 Drucksensor und GNUBLIN DIP


von IbuzaP (Gast)


Lesenswert?

Hallo,

letzte Woche wurden uns vier MS5805 Drucksensoren geliefert.
Allerdings ist aus den verfügbaren Codebeispielen und Datenblättern 
nicht direkt ersichtlich, wie man die Daten der Sensoren richtig 
interpretiert. Gibt es hierfür vielleicht eine Tabelle oder ähnliches 
aus der man schließen kann, welcher Wert in welchem Register des Sensors 
gespeichert wird?

Laut Datenblatt sollten ab 0xA0 sechs Kalibrationswerte gespeichert 
sein, allerdings stehen dort laut i2cdump sieben Werte. Auch ändert sich 
der an 0x00 (ADC Read) auch nur gering und zu nicht nachvollziehbaren 
Größen.

Das Codebeispiel (http://www.amsys.de/sheets/amsys.de.an520_e.pdf) kann 
ich leider auf Grund eines fehlenden passenden Boards nicht 
nachvollziehen (avr/io.h nicht vorhanden).

Hier noch die Ausgabe eines i2cdump auf den Sensor vom angeschlossenen 
Board aus:
root@gnublin:~# i2cdump 1 0x76
No size specified (using byte-data access)
WARNING! This program can confuse your I2C bus, cause data loss and 
worse!
I will probe file /dev/i2c-1, address 0x76, mode byte
Continue? [Y/n]
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 00 00 XX XX XX XX XX XX XX XX XX XX XX XX XX XX    ..XXXXXXXXXXXXXX
10: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
20: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
30: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
40: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
50: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
60: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
70: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
80: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
90: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
a0: 7d 7d bd bd bc bc 70 70 73 73 75 75 66 66 XX XX    }}????ppssuuffXX
b0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
c0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
d0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
e0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
f0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
root@gnublin:~#

Momentan gehe ich folgendermaßen in meinem Programm vor:
-> die Adresse des Sensors richtig setzen
-> ein 0x1E zum Reset senden
-> ein 0xA0 senden um den  PROM auszulesen mit folgendem receive
-> 0x4A und 0x5A senden um den Convert auszulösen
-> 0x00 für den ADC read senden
-> ein receive auslösen um die Daten zu empfangen

Gibt es vielleicht ein Minimalbeispiel, das kurz zeigt, wie der Sensor 
genau angesprochen werden muss um sinnvolle Daten zu erhalten 
beziehungsweise diese zu interpretieren?

Danke schonmal für eure Mühe!

von Cyblord -. (cyblord)


Lesenswert?

Also komm schon. Im Datenblatt steht das GENAU. Seite 7 z.B. sagt dir, 
wie du die ADC-Werte mit den PROM-Kalibrierwerten verrechnen musst, um 
den korrekten Wert zu erhalten. Mit Beispielwerten daneben.

Seite 9, Steht schritt für Schritt welche Kommandos ausgeführt werden 
sollen. Und darunter eine Tabelle mit allen Kommandos.

Die Kalib-Werte sollte man Wert für Wert mittels des PROM-Kommandos und 
der richtigen Adresse darin, lesen. Nicht einfach nen Dump machen.

Seite 11 ganz unten zeigt übrigens alle PROM-Speicherstellen. Und es 
sind 7 inkl. CRC.

gruß cyblord

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.