mikrocontroller.net

Forum: Compiler & IDEs serielles EEPROM


Autor: Izoard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich möchte mit einem seriellen EEPROM (24C16) kommunizieren. Soll ich
das Programm besser in C oder Assembler schreibe...

Hat jemand ein code-Beispiel?

Autor: Izoard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmm, werde es in Assembler schreiben...

habe Code gefunden:
http://www.mikrocontroller.net/forum/read-1-32030.html


???? Beim EEPROM M24C16 schreiben sie im Datenblatt Seite 2, und 5
(table 3), dass E0-E2 not connected sind! Heisst denn die Slave Adresse
nur 1010000b ??? Kann man dann nur 1 M24C16 an den I2C Bus
anschliessen?`
THANKS

IZOARDS

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ob die Adressleitungen beachtet werden oder (leider) auch nicht hängt
vom Hersteller ab: Datenblatt.

Nach meiner Erfahrung werden die Adressen bei STM, Atmel und Rohm
beachtet. Nicht jedoch bei Infineon und Mircochip.

Autor: Izoard (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Was heisst, wenn sie nicht beachtet werden? Bedeutet das wirklich, dass
man nicht mehr als 1 EEPROM anschliessen kann! Hat dann dieses EEPROM
die Adresse 1010000b?

Danke

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Korrektur: meine Angaben beziehen sich auf die Typen ..02/04/08. Beim
24C16 geht immer nur ein Baustein auf Adresse 1010xxxy (binär).
Dabei werden die 'x'-Bits zur Adressierung der Seite und das folgende
Byte zur Adressierung innerhalb der Seite verwendet: 8 x 256 Byte =
2KB. Die größeren EEPROMs verwenden neben der Basisadresse 0hAx zwei
weitere Bytes als Adresse. Dafür braucht man angepaßte IIC-Routinen.

Autor: Berndt Brandes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stimmt leider, gerade bei diesen 24cxx EEPROMS muß man aufpassen (genau
das Datenblatt von dem nehmen den man hat). Erst wenn sie größer als 2k
Byte sind, geht's wieder besser (dann kommt intern eine 2-Byte
Adresse, die hält dann bis 64k Byte oder 24C512). Die meisten
Hersteller haben eben nur an 8 Pages zu je 256 Byte gedacht. Die
Aufteilung der Pages in Devices war denen dabei egal. z.B. gehen in der
Regel auch nur 2 Stück zu je 1k Byte.
Find ich auch schade.

/Berndt

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achso, 24Cxx sind ja I²C.  Falls Du Hardware-TWI in Deinem AVR
hast (Du hast nicht geschrieben, was für einen Du nimmst), dann
hat die avr-libc Doku (die auch mit dem WinAVR Deiner Wahl mit auf
Deiner Platte installiert wird) Beispielcode für ebendiese
EEPROMs.

Autor: Izoard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die Antworten!!! Ich werde den At2313 einsetzen!


Wieso muss eigentlich die SCL Leitung mit einem Pull-Up Widerstand
verbunden werden?

http://www.sprut.de/electronic/pic/grund/i2c.htm



Ich dachte die SCL Leitung wird nur vom Master (uC) gesteuert?

Autor: Berndt Brandes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, SCL wird nicht nur vom Master gesteuert! Ein Slave darf diese
Leitung auf L halten, wenn er Zeit braucht. Der Master wird also für
eine steigende Taktflanke seinen Ausgangstransistor abschalten (er will
H machen) und erst wenn auch der letzte Slave fertig ist und er seinen
auch abschaltet, kommt die Flanke. Der Master muß also seinen Takt
rücklesen!

Soll jetzt nicht etwa bedeuten, das das immer passiert. Die wenigsten
mir bekannten Bausteine tun das, aber wenn ein Slave aus einem
Mikrocontroller besteht und also evtl. Bearbeitungszeit für einen Takt
braucht, kann er sich die auf diese Weise nehmen.

in der Regel gilt für IIC: die mindest H-Zeit wird vom Master (der darf
nämlich erst ab der tatsächlichen Flanke zählen), die max L-Zeit vom
langsamsten Slave bestimmt.

/Berndt

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.