Schreiben in I2C Register von ADXL345 funktioniert nicht

Gast #3107498
Lesenswert?

Hallo,

ich versuche zur Zeit den ADXL345 
(https://www.sparkfun.com/datasheets/Sensors/Accelerometer/ADXL345.pdf) 
per FoxBoard G20 (http://www.acmesystems.it/FOXG20) anzusprechen.

Laut Datenblatt und anderen beispielen im Internet genügt es, das 
PowerControl Register (0x2D) mit einer 8 zu beschreiben, damit die 
Messung beginnt. Dies klappt leider nicht.

Das schreiben und lesen auf den/vom Bus klappt wie es aussieht aber. 
Schreibe ich zuerst 0x30 auf den Bus und lese anschließend, so erhalte 
ich 2 als Antwort. Laut Datenblatt korrekt. Also schreiben und lesen OK.

Nur das schreiben in ein Register funktioniert nicht. Habe schon alle 
möglichen Schreibmöglichkeiten durchprobiert...
1
    i2c_buffer[0] = 0x2D;
2
    i2c_buffer[1] = 0x08;
3
    if ((write(fd, i2c_buffer, 2)) != 2) {
4
        printf("Error on write\n");
5
    }
6

7
    i2c_buffer[0] = 0x2D;
8
  if ((write(fd, i2c_buffer, 1)) != 1) {
9
    printf("Error on write\n");
10
  }
11

12

13
  if ((read(fd, i2c_buffer, 1)) != 1) {
14
    printf("Error on read\n");
15
  }
16

17
    printf("%d\n", i2c_buffer[0]);

Hier erhalte ich 0 als Antwort.

Übersehe ich was im Datenblatt?

Für Hilfe wäre ich überausdankbar.

MfG Alex

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