Hey,
poste mal bitte deinen Code.
Hallo,
versuche gerade eine I2C Kommunikation mit einem Sensorboard herzustellen. Jedoch gibt es schon beim Aufbau des Bus Probleme.
Mir ist aufgefallen, dass wenn ich den Controller mit einem leeren Programm flashe die LED 1 leuchtet (parallel SCL vom I2C) auch wenn der Port C gar nicht aktiviert wurde.
Woran liegt das oder ist das normal?
Auch wenn ich gerade am flashen bin leuchtet die 1. LED. Alle anderen sind aus.
Wenn ich ein Programm flashe in dem Port C aktiviert wird und dann die LED's ausschalte funktioniert dies auch. Aber die I2C Kommunikation funktioniert trotzdem nicht.
Danke im Vorraus!
Hey,
poste mal bitte deinen Code.
Schaut ruhig mal auf meiner Homepage vorbei :
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Ich verwende die I2C Bib von Peter Fleury.Code:#ifndef F_CPU #define F_CPU 8000000UL #endif #include <avr/io.h> #include <avr/interrupt.h> ... int main(void) { //Initialisierung init_USART(); init_timer0(); i2c_init(); sei(); setup_adxl345(); //setup_itg3200(); while(1) { } } void setup_adxl345() { i2c_start(ADXL345_ADRESS+I2C_WRITE); //I2C Startsequenz + Write i2c_write(DATA_FORMAT); //0x01 (+/- 4 g) in Register DATA_FORMAT i2c_write(0x01); i2c_write(POWER_CTL); //0x08 (Measurement Mode) in Register POWER_CTL i2c_write(0x08); }
Wenn ich setup_adxl345(); auskommentiere, dann bleiben die LED's aus.
Er bleibt in der i2c_start Routine hängen:
Fehler auf dem Sensorboard (Robo Bee 6 DOF) kann ich eigentlich ausschließen, hat 2k2 Pullups onboard.Code:unsigned char i2c_start(unsigned char address) { uint8_t twst; // send START condition TWCR = (1<<TWINT) | (1<<TWSTA) | (1<<TWEN); sendUSART("2"); // wait until transmission completed while(!(TWCR & (1<<TWINT))); -> Hier bleibt er stehen
Was mir halt ziemlich komisch vor kommt ist, das beim Flashen die erste LED leuchtet!
Ich habe das Controllerboard über einen Adapter (mit Wannenstecker) an Port C angeschlossen.
Reichen die 2k2 Pullups vielleicht nicht aus?
Was soll er überhaupt senden? Du setzt ein paar Bits im TWI Controlregister aber schreibst nichts ins Datenregister.
Schaut ruhig mal auf meiner Homepage vorbei :
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Das ist ein Code Ausschnitt aus der Bib von Peter Fleury. Ich komme ja erst gar nicht dazu irgendwelche Daten zu schreiben...
Mir ist jetzt noch aufgefallen, dass das Rn Control bereits 10k Pullups onboard hat, das verwendete Sensorboard hat ebenfalls 2k2 Pullups. Kann es sein, dass es daran liegt? Wenn ja kann ich die Pullups des RN Control deaktivieren oder müsste ich die auftrennen?
Danke!
Ob es daran liegen kann weiß ich nicht. Kann aber sein.
Und trennen kannst du die nicht.
Schaut ruhig mal auf meiner Homepage vorbei :
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Daran hat es nicht gelegen, habe die Widerstände ausgelötet, ohne Erfolg.
Vielleicht hat mein RN Control irgend einen Schaden? Leuchtet bei dir die LED 1 wenn du flashst?
Nein tut es nicht.
Hast du vielleicht noch das JTAG Interface aktiviert?
Schaut ruhig mal auf meiner Homepage vorbei :
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Lesezeichen