Forum: Mikrocontroller und Digitale Elektronik STK600 / Atmega 2560 per TWI mit ITG-3200 verbinden


von Fabian W. (fabian_w10)


Angehängte Dateien:

Lesenswert?

Hallo Zusammen,

bin gerade dabei den ITG3200 mit dem STK600 auf PortD (TWI Port) zu 
verbinden dafür benutze ich die Fleury Libary.

Leider bekomme ich es nicht hin eine Datenverbindung herzustellen, ich 
bekomm beim i2c_start immer ein NAK.

Pullup wiederstände sind eingebaut, als Device addresse nutze ich 0x69
der Stecker den ich gebaut habe um den Gyro anzuschliessen funktioniert 
an einem Arduino problemlos, es muss also irgendwas an der Software 
nicht stimmen.

Würde mich freuen wenn mir da jemand weiterhelfen kann.

Grüße
Fabian

#include <avr/io.h>
#include "i2cmaster.h"


#define DevITG3200  0x69      // device address of DevITG3200

int main(void)
{
    unsigned char val, ret;
    int addr;

    DDRB  = 0xFF;                // use all pins on port B for output
    PORTB = 0xFF;                // (active low LED's )

    i2c_init();                  // init I2C interface

    /* write 0x75 to eeprom address 0x69 (Byte Write) */
    i2c_start_wait(DevITG3200+I2C_WRITE); // set device address and 
write mode
    if ( ret ) {
        /* failed to issue start condition, possibly no device found */
        i2c_stop();
        PORTB=0x55;
    }

von Fabian W. (fabian_w10)


Lesenswert?

ok habs hinbekommen...

es lag daran das der ITG wohl eine 7bit addresse erwartet..

die library ihm aber eine 8-bit geschickt hat.

0x69 = 1101001

erwartet war:    11010010
bekommen hat er: 01101001

musste die addresse um eine bitstelle nach links shiften dann geht ..

NACK
ret = i2c_start(DevITG3200 + I2C_READ);

ACK
ret = i2c_start((DevITG3200 <<1) + I2C_READ);


Endlich gehts!

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.