www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Problem SMB380


Autor: Tommy Tacker (tommy776)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich habe folgendes Problem:
Ich lese mit einem ATmega1281 den digitalen Beschleunigungssensor SMB380 
von Bosch über die I²C-Schnittstelle aus.
Die Anschlussbelegung ist dem Datenblatt des Sensors entnommen.
Ausgelesen werden bei mir die Register für die x-Achse und die y-Achse.
Die erhaltenen Werte wandle ich in Neigungswerte um, übertrage sie per 
Funk und lasse sie mir auf dem HyperTerminal anzeigen.

Wenn ich ich Register auslesen,die schon mit voreingestellten Werten 
belegt sind passt das auch alles. Auch der Inhalt der Achsenregister 
wird korrekt übertragen.

Mein Problem ist halt: Wenn ich den Sensor auf einem Neigetisch 
positioniere und mir zum Beispiel die Werte für +2° Neigung übertrage, 
schwanken die Sensorwerte zwischen z.B. -1° ... +4°!!!

Ich weiss aber absolut nicht woran das liegen kann?Mein Bustakt SCL ist 
200KHz und im Sensor habe ich nur den Messbereich auf +/-2g und die 
Bandbreite auf 50Hz eingestellt.Mehr nicht.

Ich weiss nicht ob es evtl. daran liegt,dass ich mir die Sensorwerte 
nicht über einen Interrupt in den µC hole,aber ich entnehme dem 
Sensordatenblatt,dass dies nur eine Option ist und nicht zwangsweise so 
gemacht werden muss.

Kann mir jemand helfen?

Autor: Tommy Tacker (tommy776)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag: Der 16Bit-Wert des Sensors entsteht indem das LSB zuerst 
ausgelesen wird und nachfolgend das MSB. Ein Mixen beider Bytes wird 
controllerintern verhindert.
Diesen Fehler kann ich also schonmal ausschließen.

Autor: Tommy Tacker (tommy776)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen!

Hat hier keiner einen Tipp, was ich falsch mache?
Klar wird nicht jeder den Sensor vor sich haben, aber evtl. ein kurzer 
Blick ins Datenblatt würde mir schon helfen.

Wie oben erwähnt, möchte ich nur wissen ob ich mir zwingend die 
Sensorwerte über den Interruptpin in meinen Controller holen muss?
Ich interpretiere das eher als Option.

Autor: Tommy Tacker (tommy776)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja,ich bins nochmal! (auch wenn ich hier scheinbar einen Monolog führe)

Also jedenfalls habe ich grad den Sensor mit dem PICkit Serial Analyzer 
von Mikrochip ausgelesen.Da passen die Werte relativ gut und sind obwohl 
ich jetzt daheim nicht die Registerwerte noch in die Neigung umrechnen 
will vertrauenswürdig.

Es muss ja also irgendwie an meinem I²C-Code liegen!Aber ich verwende 
das gleiche Protokoll wie der Analyzer!

Hier mal ein paar Busdaten aus dem Analyzer für ca. 0° (auf meinem 
Schreibtisch):
In den eckigen Klammern das Protokoll wie folgt:
[S_] - Startbefehl
[70] - Sensoradresse und Schreiben
[02] - Auswahl Register 0x02
[RS] - Repeated Start
[71] - Sensoradresse und Lesen
[06] - 6Bytes nacheinander lesen
[P_] - Stopbefehl

Sent I2C Read Cmd:
[S_][70][02][RS][71][06][P_]

[S_][C1][01][C1][00][81][22][P_] (=>  LSB1 MSB1 LSB2 MSB2 LSB3 MSB3)

Sent I2C Read Cmd:
[S_][70][02][RS][71][06][P_]

[S_][C1][02][81][01][C1][21][P_]

Sent I2C Read Cmd:
[S_][70][02][RS][71][06][P_]

[S_][C1][FF][C1][01][41][24][P_]

Sent I2C Read Cmd:
[S_][70][02][RS][71][06][P_]

[S_][81][01][01][00][81][21][P_]

Mein Programm,was ich im ersten Beitrag oben im Anhang habe macht genau 
dasselbe nur erhalte ich halt komische Werte!!!
Woran kann das denn liegen???

Bitte um eine Antwort.

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Problem ist, daß wahrscheinlich keiner außer Dir den Chip kaufen 
kann, deswegen gibt es auch keine Tipps.

Autor: Günti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
verhält sich der SMB380, nicht so wie der BMA150 ? 
http://www.sander-electronic.de/be00006.html

oder wo sind die unterschiede ?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.