Forum: Mikrocontroller und Digitale Elektronik Probleme mit I2C und MPU6050


von Lord Chaos (Gast)


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 :)

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.