STK600 / Atmega 2560 per TWI mit ITG-3200 verbinden

OP #3669166
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;
    }
Angehängte Dateien:
OP #3671410
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!

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