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; }
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.