mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Probleme mit I2C (IIC I²C) Kommunikation mit EEPROM


Autor: Marcus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,

hoffe mir kann jemand helfen:

arbeite mit einem Renesas 16C/6N4U und einem ST 8kx8 EEPROM.
programmieren tu ich in ANSI C.
cih schiebe die device adresse in den low teil des transmit registers
des µC, erzeuge eine start condition und setze das bit um den inhalt
des registers zu versenden. dieses bitmuster sehe ich auch einwandrei
an dem SDA pin des EEPROMs (SCL auch einwandfrei, 9 clocks lang).
die device adresse des bausteins ist auch richtig (E2 auf ground = 0).
schicke also: 1010 (für I2C) und 0000 (für adresse, E2, A9, A8 und die
letzte 0 für "write").
nun sollte der EEPROM doch eigentlich im 9ten und letzten takt die SDA
leitung auf 0 ziehen und somit mit ACK (acknowledge) antworten.
aber genau dies tut er nicht... hmpf

mach ich was prinzipielles falsch oder kanns sein, das der
speicherbaustein defekt ist?

hoffe ich habs nicht zu verwirrend geschrieben.

danke im voraus!

mfg

Autor: thkais (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Prinzipiell paßt es.
Wird die Start-Condition richtig gesendet? Welchen Wert haben die
Pull-Ups? SDA und SCL nicht vertauscht?

Autor: Marcus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,

start kondition ist einwandfrei, clock legt ja auch direkt los.
vertauscht ist da nix. pullups sind 1k. daran dürfts auch net liegen.
kann ja auch allemöglichen 8 bit folgen schicken, nur kommt halt eben
im 9ten takt kein ACK :-(

Autor: smartie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
liegt vielleicht der WP auf high?

Autor: Marcus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nein, das ist es leider auch nicht... is not connected (=low laut
datenblatt), hatte ihn aber auch schon auf 0 gezogen... selbe resultat
leider :-(

Autor: smartie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann vielleicht ein Timing Problem, d.h. Prozessor zu schnell.
Ich würds mal mit nem Software-I2c probieren, da kann man noch waits
einfügen.

Autor: Marcus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmm... ok, ich guck morgen noch mal auf der arbeit und probier bissl
rum... sag dann wieder bescheid...
danke erst mal für die antworten bis jetz.
n8!

Autor: Manos (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1k Pullup kommt mir was niedrig vor - kenne eigentlich immer nur
Beschreibungen mit 10k Pullup.

Vielleicht noch mal prüfen ob SDA mit SDA und SCL mit SCL verbunden
sind.

Mit welcher Frequenz arbeitet Dein I2C? 100k, 400k? Vielleicht ist der
Speed für das EEPROM zu hoch (wobei moderne Chips eigentlich alle die
400k können sollten).

Autor: Marcus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sorry, meinte natürlich auch 10k, die ich dran hab.
SDA und SCL sind (leider) nicht vertauscht.
im mom arbeite ich mit 111kHz, hab aber auch schon 20kHz gehabt; mit
dem selben ergebnis :-(

hab in der zwischenzeit mal den EEPROM baustein gewechselt... an dem
liegt es auch nicht :-((

WC pin liegt auf 0 (=schreiben möglich), hab ihn auch schon auf NC
gelassen.
E2, also die hardwareadresse ebenfalls auf ground.

weiss langsam nicht mehr, was das sein kann...

Autor: Boris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Marcus,
ich habe momentan ein sehr ähnlich gelagertes Problem. Mega8, Software
I2C und ein 2k EEPROM. Allerdings bekomme ich bei jeder Adresse die ich
sende ein ACK (EEPROM hat 0xA0) und ein ACK erhalte ich von 0xA0 bis
0xAE.
Hast Du schon herausgefunden woran es liegt?
danke
Gruß
Boris

Autor: Marcus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi Boris,

bei mir lag es vermutlich daran, das ich die start-bedingung nicht
richtig generiert habe. die klappt jetzt. dafür will der
start-detection interrupt jetzt nicht auslösen :-(
und somit wird auch erst gar nicht das erste byte geschrieben/gesendet.
ich arbeite mit dem fertigen beispiel für I²C von Renesas für den µC
M16C6N4, aber irgendwas stimmt noch nicht... verdammte hacke...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.