Forum: Mikrocontroller und Digitale Elektronik ICM-42605 Gyro Problem


von Schorsch X. (bastelschorsch)


Lesenswert?

Hallo zusammen,
hab den ICM-42605 von TDK Invensense in Betrieb genommen. Die Daten 
sehen recht gut aus.

Nur hab ich ab und Probleme mit der SPI Datenübertragung. Es sieht so 
aus, als würden die Adressen nach einer Weile nicht richtig erkannt und 
es kommt dazu, dass z.B. die X-Beschleunigung sicht nicht mehr ändert.

Nach einer Weile fängt sich das Teil wieder und läuft ne Zeitlang so wie 
erwartet.

Der Sensor ist nach Datenblatt recht gut (<0.5% accel Genauigkeit) und 
sehr preiswert. Stromverbrauch ist auch top (<1mA).

Kennt jemand das Teil oder hat damit ähnliche Effekte ? CPU ist ein 
STM32L476.

von Timmo H. (masterfx)


Lesenswert?

Lässt du den CS vielleicht dauerhaft auf low? Das kann dazu führen dass 
die State-Machine durcheinander kommt.

von Schorsch X. (bastelschorsch)


Lesenswert?

Wenn ich die Bytes übertragen hab, die ich will, dann setz ich CS wieder 
auf H. In der Beispielsoftware von TDK werden auch die Accel + Gyro 
Daten am Stück gelesen, deshalb dachte ich, das wird schon ok sein.

Ich probier jetzt schon den ganzen Tag rum. Schneller - langsamer usw. 
usw.
Bald bin ich soweit und nehme einen anderen Baustein. BMI160 oder sowas 
in der Art.

Es nützt auch nix, wenn ich einen Soft-Reset auslöse oder die SPI 
Schnittstelle neu initialisiere. Nur wenn ich mehrfach einen Reset per 
ST-Link auslöse und neu starte läuft der Baustein wieder für ne Weile.

Irgendwie fehlt mir eine Idee, wo ich noch suchen soll...

: Bearbeitet durch User
von Jan (Gast)


Lesenswert?

Benutzt du ne Demo des Herstellers um Fehler im Code auszuschließen? Wie 
sehen die Pegel aus (scope)? Mal mit nem Logic analyzer geguckt, ob das 
Problem am Host oder am Sensor liegt?

von Wolfgang (Gast)


Lesenswert?

Schorsch X. schrieb:
> Irgendwie fehlt mir eine Idee, wo ich noch suchen soll...
Die Bus-Signale sind sauber und das Timing bewegt sich in den Grenzen 
des Datenblattes?

von Schorsch X. (bastelschorsch)


Lesenswert?

Jan schrieb:
> Benutzt du ne Demo des Herstellers um Fehler im Code auszuschließen? Wie
> sehen die Pegel aus (scope)? Mal mit nem Logic analyzer geguckt, ob das
> Problem am Host oder am Sensor liegt?

Ich hab ne eigene Platine, die mit MDO3034 gemessen, saubere Signale 
anliegen hat. Das Timing stimmt mit den Angaben im DB überein.

Was mich inzwischen völlig seltsam berührt:
Wenn ich mit dem verwendeten STLink V3 einen Reset auslöse (manchmal 
mehrfach nötig) läuft das Mistvieh wieder für ein paar Minuten. Das 
dollste daran: Der Sensor hat gar keinen Reset Anschluß...

Die Ansteuerung erfolgt über gepollte HAL Routinen, die ich aber schon 
häufig in anderen Anwendungen benutze.

.....

von Schorsch X. (bastelschorsch)


Lesenswert?

So wie es aussieht, war das Adapterkabel StLink -> Platine die Ursache. 
Ist jetzt die ganze Nacht durchgelaufen und macht das, was es soll. 
Immer wieder Überraschungen...Vielen Dank für eure Hilfe.

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.