Problem mit MPU6050

Gast #4081593
Lesenswert?

Hallo,

ich habe neulich einen MPU6050 Sensor erworben und ausprobiert. Jedoch 
gelingt es mir aber gar nicht erst eine I2C-Verbindung herzustellen.
Dazu sei gesagt, dass ich in totaler geistiger Umnachtung auf meinem 
Board die Pins VCC und GND zu Beginn vertauscht habe, so dass ich den 
MPU6050 kurze Zeit verpolt angeschlossen hatte. Da ich es gar nicht erst 
schaffe eine Verbindung mit dem Sensor aufzubauen stellt sich mir jetzt 
die Frage ob ich den Sensor zerstört habe oder ich mir einfach nur Mist 
zusammenprogrammiert habe.
Ich benutze die I2C Bibliothek von Fleury und in der Funktion
1
i2c_start()
 bleibt mein Programm immer an folgender Stelle hängen
1
while (!(TWCR & (1 << TWINT)))
Was ist eure Meinung dazu?
Gast #4081605
Lesenswert?

Trollo schrieb:
> Was ist eure Meinung dazu?

Verpolen mögen solche Bausteine auf gar nicht. Dieser Betriebszustand 
ist auch weit außerhalb jeglicher Datenblattspezifikationen, so dass der 
Chip sich in einem beliebigen, auch halbkaputten Zustand befinden kann. 
Und ob es an deinem Programm liegen kann - who knows.
Hier kennt nichtmal irgend jemand dein Programm.

Du könntest aber mal die Ruhepegel der Busleitungen nachmessen.
Gast #4081608
Lesenswert?

Nennt man sich Trollo wenn man eine ernsthafte Antwort möchte?

Ansonsten sei gesagt, Oszi oder LA dran und messen ob die Adresse vom 
Master richtig anliegt und ob wirklich kein ACK zurück kommt.

Standard Frage, sind die Pullups dran?
Gast #4081623
Lesenswert?

Ich benutze dieses kleine Board, worauf der Chip schon verlötet war:
http://www.amazon.de/SODIAL-MPU-6050-Achsen-Gyroskop-Beschleunigungsmesser-Modul-Arduino/dp/B00K67X810/ref=sr_1_2?ie=UTF8&qid=1428352062&sr=8-2&keywords=mpu6050
Laut Datenblatt ist darauf schon ein 5V zu 3,3V LDO verbaut und pullups 
auf 3,3V an SDA und SCL gehängt.
Jetzt habe ich den Ruhepegel auf den beiden Leitungen gemessen und kam 
in beiden Fällen auf 0,5V. Gemessen habe ich mit einem einfachen 
Voltmeter. Ein Oszilloskop habe ich leider nicht zu Hand.
Wenn die 0,5V stimmen spricht es eigentlich dafür, dass ich das 
Sensorboard zerstört habe.

Frank schrieb:
> Nennt man sich Trollo wenn man eine ernsthafte Antwort möchte?

Mit fiel nichts besseres ein, nachdem ich den Sensor verpolt hatte...
Gast #4081629
Lesenswert?

Frank schrieb:
> Ansonsten sei gesagt, Oszi oder LA dran und messen ob die Adresse vom
> Master richtig anliegt

Erstmal im Programm gucken, ob überhaupt die richtige Adresse an 
i2c_start() übergeben wird ;-)

Da gibt es viel Verwirrung mit I2C-Adresse (7-Bit) und erstem 
übertragenen Byte bestehend aus der 7Bit-Adresse und dem 
Datenrichtungsbit.
Gast #4081678
Lesenswert?

Trollo schrieb:
> Wenn die 0,5V stimmen spricht es eigentlich dafür, dass ich das
> Sensorboard zerstört habe.

Das sieht ich gut aus. Wenn du das GY-521 Board von der Busleitung 
trennst, müßte durch die Pull-Ups der Pegel vernünftig hoch gehen.

Trollo schrieb:
> Die Adresse des MPU6050 ist 0x68, zum schreiben benutze ich dann also
> 0xD0 als Adresse.

AD0 hast du dann sicher passend verschaltet?

> Eine Frage habe ich jedoch noch, was ist ein LA?
LA wie Logic Analysator
Gast #4081713
Lesenswert?

AD0 muss laut allen Quellen unangetastet bleiben damit der MPU6050 die 
Adresse 0x68 hat. Auch wenn die Busleitungen getrennt sind, sind nur 
0,5V auf den beiden Datenpins. Also ist ziemlich sicher etwas an dem 
Sensorboard kaputt gegangen.
Gast #4081735
Lesenswert?

Laut Threadersteller wird nicht ein blanker MPU6050 sondern das GY-521 
Board verwendet. Ein kurzer Blick in den Schaltplan dieses Boards zeigt 
uns, dass AD0 auf diesem Board schon auf GND gezogen wird. Aber der 
Hersteller des Boards hat sicher keine Ahnung und hätte dich fragen 
sollen bei dem erstellen des Schaltplans!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren