Forum: Mikrocontroller und Digitale Elektronik ATMEGA8 I²C Assembler


von HotProp (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Werte µController Gemeinde,

ich hätte eine Frage bezüglich des I²C Interfaces beim Atmega8. Ich 
möchte allerdings eines vorweg nehmen: Ich bin noch "relativ" neu auf 
dem Gebiet der µController Programmierung. Ich bitte also um etwas 
Nachsicht :-)


Nun zu meiner eigentlichen Frage.

Ich habe den anhängenden Code geschrieben. Dieser ist eigentlich nur zu 
Testzwecken da. Ich möchte damit einen einfachen Wert auf einen EEPROM 
schreiben (M24C04 von STMicro). Wenn ich den Code aber Ausführe, bleibt 
er beim Schreiben (lesen konnte ich noch nicht testen) immer bei der 
ersten Error Schleife hängen. Der Grund dafür ist, dass im TWSR (also 
Two Wire Interface Status Register) immer 0x00 steht. Ich konnte am 
Oszilloskop zwar beobachten, dass eine Übertragung Stattfindet, 
allerdings wird im Statusregister die START-Bedingung nicht bestätigt.

Hat jemand von euch eine Idee woran das liegen könnte?

Vielen Dank

Gruß

HotProp

von Jens (Gast)


Lesenswert?

Was ich auf den ersten Blick gesehen habe. Du hast keine saubere 
Initialisierung für das TWI Modul. Bau das mal ein, dass man auch mal 
die Frequenz runter stellen kann.
So wie du das hier eingestellt hast, ist die Frequenz bei 150kHz. Die 
Spezifikation bei I2C ist aber nur 100kHz im Standard Mode.

Stell die mal runter und dann berichtest du wieder vom Erfolg oder 
Misserfolg

Gruß, Jens

von HotProp (Gast)


Lesenswert?

Hallo Jens,

und wieder einmal muss ich feststellen, dass es Sinnvoll ist mehr Zeit 
in die "Vorbereitung" also in diesem in die Initialisierung zu stecken.

Du hattest recht mit deinem Tipp. Ich habe die Frequenz runtergesetzt 
und zusätzlich noch die beiden Prescaler-Bits in TWSR genau definiert 
und schon läufts :-)

Vielen Dank für deine Unterstützung

Gruß

HotProp

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.