ATMEGA8 I²C Assembler

Gast #4274443
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
Angehängte Dateien:
Gast #4274467
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
Gast #4274548
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.