Probleme mit I2C und MPU6050

Gast #4481154
Lesenswert?
• ▲
▼
Hallo,

ich spiele momentan mit einem GY-521 Board rum auf dem ein MPU6050 
verbaut ist. Jedoch habe ich Probleme mit meinem LPC1114 Bytes an den 
Sensor zu senden. Das Lesen funktioniert einwandfrei. Die volle 
Funktionsfähigkeit des Sensors ist gegeben, mit einem ATMega klappt die 
I2C Kommunikation einwandfrei. Für die I2C Kommunikation mit dem LPC 
benutze ich folgende Bibliothek 
https://github.com/microbuilder/LPC1114CodeBase/tree/master/core/i2c
Mein Test ob die Verbindung funktioniert sieht so aus und gibt immer 
TRUE zurück
1
uint8_t mpuReadByte(uint8_t reg, uint8_t* data)
2
{
3
    I2CMasterBuffer[0] = MPU6050_ADDRESS | WRITE;
4
    I2CMasterBuffer[1] = reg;
5
    I2CMasterBuffer[2] = MPU6050_ADDRESS | READ;
6

7
    I2CWriteLength = 2;
8
    I2CReadLength = 1;
9

10
    uint8_t ret = i2cEngine();
11

12
    *data = I2CSlaveBuffer[0];
13

14
    return ret;
15
}
16

17
uint8_t mpuWriteByte(uint8_t reg, uint8_t data)
18
{
19
    I2CMasterBuffer[0] = MPU6050_ADDRESS | WRITE;
20
    I2CMasterBuffer[1] = reg;
21
    I2CMasterBuffer[2] = data;
22

23
    I2CWriteLength = 3;
24
    I2CReadLength = 0;
25

26
    uint8_t ret = i2cEngine();
27

28
    return ret;
29
}
30

31
uint8_t mpuCheckConnection()
32
{
33
    uint8_t whoAmI;
34
    uint8_t ret = mpuReadByte(MPU6050_RA_WHO_AM_I, &whoAmI);
35

36
    if (!ret || whoAmI != 0x68)
37
        return FALSE;
38

39
    return TRUE;
40
}
Wenn ich jetzt jedoch ein R/W Register des Sensors schreiben und dann 
wieder auslesen möchte, erhalte ich beim Lesevorgang immer den Wert 0 
zurück. Das ganze sieht so aus
1
mpuWriteByte(MPU6050_RA_SMPLRT_DIV, 0x07);
2
uint8_t data;
3
mpuReadByte(MPU6050_RA_SMPLRT_DIV, &data);
4
printf("%u\n", data);
Ich bin mit dem Debugger alles durchgegangen, sieht gut aus. Ich habe 
mehrere Register ausprobiert alle liefern mir beim Lesen eine 0. Für 
mich bedeutet das also, mein Schreibvorgang funktioniert nicht, den 
Fehler kann ich aber nicht finden. Vielleicht hat ja hier jemand im 
Forum die passende Idee :)

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.