Forum: Mikrocontroller und Digitale Elektronik ITG3200 an AVR liefert keine Werte


von Robert Sche* (Gast)


Lesenswert?

Hallo zusammen,

ich versuche seit einigen Tagen einen ITG 3200 (3 Achsen Gyro) mit einem 
AVR ATMega 48 auszulesen, der ITG sitzt (neben einem ADXL345) auf einem 
Sparkfun-Board (http://www.sparkfun.com/products/10121).

der ADXL lässt sich problemlos auslesen, beim ITG kann ich sämtliche 
Steuerregister beschreiben und auch wieder auslesen. I2C und die 
Datenausgabe funktionieren also einwandfrei.

Wenn ich allerdings versuche die Register 0x1b bis 0x22 (Drehraten und 
Temperatur) auszulesen, bekomme ich immer 0x00 zurück.
Die Symptome sprechen dafür, dass der Gyro im Sleep-Modus ist, aber das 
ist habe ich durch setzen bzw löschen der "sleep" und "stby" Bits im 
Power-Management-Register bereits ausgeschlossen.

der ITG wird folgendermaßen Initialisiert:

Register : Registerbedeutung  : Wert : Bedeutung
0x3e     : Power Management   : 0x80 : Reset
0x3e     : Power Management   : 0x03 : Clocksource Z-Achse
0x15     : Samplerate Divider : 0x07 : 125 Samples / s
0x16     : DLPF, Full Scale   : 0x19 : 2 kDeg / s; TP: 188Hz; ISR: 1kHz
0x17     : Interrupt Control  : 0x00 : Interrupts Ausgeschaltet

Danach beginnt eine Endlosschleife, die den Inhalt eines Registers 
ausliest und ausgibt.

Bleibt die Frage:
Wie überrede ich den ITG dazu, mir die Daten zu liefern?
Oder sollte ich eher Watterott dazu überreden, mir nen neuen Sensor zu 
liefern? ;-)

MfG, Robert Sche*

von Robert (Gast)


Lesenswert?

Hallo Robert,

entschuldige die vielleicht blöde Frage:
Hast Du den ITG denn mal kräftig in Z geschüttelt?
Du schreibst:
"0x3e     : Power Management   : 0x03 : Clocksource Z-Achse"

Ich kenne den Baustein nicht, aber wenn z.B. die Clocksource fehlen 
würde fürs' Power Management...?


Gruß Robert

von Robert Sche* (Gast)


Lesenswert?

hallo robert,

die clocksource Z-Achse bezieht sich auf die PLL, die am Z-Achs-Gyro 
installiert ist, die läuft auch ohne Schütteln ;-)

Aber ich hab das Problem mittlerweile selbst gelöst, offensichtlich kann 
man die Datenregister nur der Reihe nach auslesen, für das Datenregister 
der Z-Achse müssen vorher die Datenregister von Temperatur sowie X,Y 
Register ausgelesen werden.

Warum das ganze?? ich hab keine Ahnung, aber mit burst read 
funktionierts!

MfG, Schönes Wochenende,
Robert

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.