ich habe nun nochmal zusätzliche Pull-up Widerstände eingesetzt
--> auf Data passiert nun was
Aber er bleibt trotzdem hängen...
ich habe nun nochmal zusätzliche Pull-up Widerstände eingesetzt
--> auf Data passiert nun was
Aber er bleibt trotzdem hängen...
Hy!
Ich kenne jz das Bauteil nicht auswendig aber kann es sein das du auf Read umschalten musst um zb ein Ack zu bekommen bevor es weitergeht?
mfg Pirndi
http://flyduino.net/MPU6050-Break-Out-onboard-33V-reg
Das Board hat seinen 4k7 PullUps ja schon drauf... ich vermute du hast sie nicht an 5V(Vcc) gehängt? Es bönötigt 5V Spannung, die dann runter auf 3,3V geregelt werden.
Deine While Schleife ist eine Endlosschleife, die alle 2000ms durchgeführt wird - ohne das sie was anderes tut sobald das Programm dort angekommen ist. Vielleicht den I²C start (funktionsaufruf) da rein legen?
Du meinst sicher Adresse 0x6B > "#define DevAddr 0x6B" nicht 0x68.
Welches hast Du denn genau-finde mindestens zwei?
https://www.sparkfun.com/products/11028
Das darf nur 3,4V bekommen!!!
Geändert von HeXPloreR (28.12.2012 um 11:53 Uhr)
Hab mir das Datenblatt mal durchgesehen da sieht es aus als wenn du auf ein ACK warten musst. Dann sollte dein code etwa so aussehen:
in einer variable hier ist es x steht dann ack oder nck drinn ob das senden OK wahr oder nicht. der code sollte nur als hilfe dienen denn musst halt anpassenCode:if(!(i2c_start(ADW + I2C_WRITE))) //Slave bereit zum schreiben? { i2c_write(0x01); i2c_rep_start(ADR); x = i2c_readAck(); return 1; } else { i2c_readNak(); i2c_stop(); return 0; }
pirndi
ich habe den hier:
http://www.ebay.de/itm/MPU-6050-3-Ax...item2a258a9a58
es wird mit 5V versorgt
die pullups habe ich gegen 3,3V gesetzt (ohne externe pullups war data immer low...)
Wegen der Adresse hatte ich das gefunden:
// Default I2C address for the MPU-6050 is 0x68.
// But only if the AD0 pin is low.
// Some sensor boards have AD0 high, and the
// I2C address thus becomes 0x69.
Die while schleife wird wie oben beschrieben leider nicht mal erreicht.
Ich kann ja mal mit den READ-Bit etwas spielen und mal 0x6B als Adresse ausprobieren.
Danke schon mal
hat noch einer eine Idee
Lesezeichen