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!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.