Forum: Mikrocontroller und Digitale Elektronik TWI und nichts funktioniert


von Jabu (Gast)


Lesenswert?

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

von Hubert G. (hubertg)


Lesenswert?

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.

von Jabu (Gast)


Lesenswert?

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!

von Michi (Gast)


Lesenswert?

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?

von Jabu (Gast)


Lesenswert?

Habe den WP zur Seite weggebogen. Denke das sollte funktionieren.

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.