Forum: Mikrocontroller und Digitale Elektronik I²C - EEPROM Aufgabe


von Francisca93 (Gast)


Lesenswert?

Hallo,

ich versuche mich gerade an einer Aufgabe aus einer Probeklausur zum 
Thema I²C, wo ich mir nicht sicher bin:

"Zwischen einem I2C-Master und einem seriellen EEPROM wurden folgende 
Informationen ausgetauscht (S=Start, P=Stop):

S 0xA0 0xA2 S 0xA1 0xA3 0xA5 P

Ergänzen Sie die fehlenden ACK/NAK. Wird EEPROM gelesen oder 
beschrieben?"

Also so wie ich es verstanden hab, müsste ja hinter jedem Byte ein ACK 
kommen, nur nicht hinter dem letzten vor dem P, wo ein NAK vom Master 
kommt, weil er nichts mehr erwartet?

Zur Frage gelesen/beschrieben würde ich sagen, zuerst wird geschrieben, 
weil bei A0 ja das 8. Bit 0 ist (also der Master will schreiben). Der 
Inhalt ist dann das Byte A2. Dann kommt ein Repeat Start, A1 steuert den 
selben Slave an, aber nun zum lesen (wegen 8. Bit = 1). Die beiden Bytes 
A3A5 sind dann der Inhalt.

So stelle ich es mir zumindest vor. Bin mir aber nicht sicher, speziell 
weil es ein EEPROM ist, und ich finde nichts darüber, wie dort 
gespeichert wird.

Wäre super wenn da jemand weiterwüsste :-)

von Heils Bringer (Gast)


Lesenswert?

Francisca93 schrieb:
> Wäre super wenn da jemand weiterwüsste :-)

Ja ich weiss weiter!

Schaue dir in einem beliebigen Datenblatt eines I2C EEPROMs
das Protokoll an und lerne daraus.

von Schukostecker (Gast)


Lesenswert?

Francisca93 schrieb:
> Wäre super wenn da jemand weiterwüsste :-)

Es ist traurig zu sehen, wie wenig Eigeninitiative gezeigt wird um etwas 
selber über Datenblätter herauszufinden. Sind das die Problemlöser von 
morgen?

Ach ja, früher gab es kein Internet um an Datenblätter zu kommen..

von c-hater (Gast)


Lesenswert?

Francisca93 schrieb:

> Also so wie ich es verstanden hab, müsste ja hinter jedem Byte ein ACK
> kommen, nur nicht hinter dem letzten vor dem P, wo ein NAK vom Master
> kommt, weil er nichts mehr erwartet?

Genau so ist das im Normalfall. Allerdings gibt es leider etliche 
unsägliche Devices, die vom I2C-Standard mehr oder weniger weit 
abweichen. Hoffentlich gehört das (von dir nicht näher spezifizierte) 
EEPROM nicht dazu...

> So stelle ich es mir zumindest vor. Bin mir aber nicht sicher, speziell
> weil es ein EEPROM ist, und ich finde nichts darüber, wie dort
> gespeichert wird.

Diese Information findest du, wer hätte das erwarten können, natürlich 
im Datenblatt des konkreten EEPROM. Im Prinzip ist das immer der einzig 
zielführende Weg, um mit irgendeinem Device über irgendeinen Bus zu 
kommunizieren: man liest als allererstes das verdammte Datenblatt. Und 
zwar sowohl das des Hosts als auch das des anzusteuernden Devices...

von Francisca93 (Gast)


Lesenswert?

Ein konkretes EEPROM ist in der Aufgabe ja nicht genannt, da steht 
lediglich "serielles EEPROM". Ein Datenblatt suchen ist also schlecht 
möglich, und in der Klausur hat man es eh nicht.

Vermutlich meint der Prof den "Normalfall" eines EEPROMs (vielleicht 
weiß er auch gar nicht, dass es verschiedene gibt, er ist eben so ein 
Theorie-Nerd).

Also wenn man diesen "Normalfall" annimmt, wäre meine Lösung richtig?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Die I²C Adresse '0xA0' ist die typische für Chips der 24(LC)02 Klasse. 
Dafür spricht auch der Restart nach dem Schreiben der EEPROM Addresse 
fürs darauf folgende Lesen.
Das es sich um ein sehr kleines EEPROM handelt, kann man auch daraus 
schliessen, das die Adressierung in einem Byte ausreicht.

: Bearbeitet durch User
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.