Moinmoin, Ich möchte gerne Bytes auf einen 24LC256 EEPROM IC mit einem Atmega32 schreiben und - vorerst - einfacherweise wieder auslesen. Zur Verfügung habe ich ein Atmel Evaluation Board, wo mein Atmega32 und mein EEPROM drauf sitzen. Er kommt noch nicht mehr hinter das Bestätigen der Start Condition und hängt sich beim Abfragen von TWINT in der while Schleife auf. Habe ich etwas nicht initialisiert? Liegt der Fehler eventuell hardwareseitig? int main(void) { uart_init() //... TWBR=12; //I2C-Frequenz (16mHz F_CPU, 400kHz SCL --> 12) TWSR=0; TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN); //Start Condition while (!(TWCR & (1<<TWINT))); //Bis hier kommt er gar nicht erst. if ((TWSR & 0xF8) != TW_START) twi_error(); . . . } Danke für für Hinweise. Jabu
Hardwareseitig kann der Fehler nur sein wenn du die entsprechenden Brücken, JP9 bis JP12 nicht gesteckt hast. Oder du hast dein Board selbst zusammengebaut und dabei schlecht gelötet.
Nun, das wird definitiv der Fehler sein, da diese beiden Brücken bei mir nicht gesetzt sind. Mir war nicht bewusst dass ich da noch irgendetwas stecken muss /-: Vielen Dank für deine Antwort!
Falls du das Eval Board V2 von pollin hast, dann schau mal genau in den Schaltplan zum EEPROM-Sockel an Pin WP(7) und dann in ein Datenplatt eines EEPROMs. Fällt dir was auf?
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.