Forum: Mikrocontroller und Digitale Elektronik externer EEPROM an AVR atmega32


von Franz (Gast)


Lesenswert?

Hallo,

ich möchte mit einem atmega32 einen externet EEPROM beschreiben/ lesen.
Das ganze soll in Assembler geschehen.

Leider kenne ich mit dem I2C-Bus noch nicht richtig gut aus.

1. Gibt es irgendwo Tutorials, wie man sowas macht?
2. Was für einen EEPROM soll ich verwenden?

Franz

von Peter Diener (Gast)


Lesenswert?

Hallo,

in den 51er Anwendungsbuch, das eine Zeit lang hier verschenkt wurde, 
steht dazu was drin. Du brauchst dazu ein serielles I2C EEPROM in der 
gewünschten Größe. Im Prinzip läuft der Zugriff etwa so ab:

Startcondition;
writeByte(0b01010010);  // schreibt auf Geräteadresse 1
writeByte(AdressHigh);  // schreibt ersten Teil der Daten-Adresse
writeByte(AdressLow);   // schreibt zweiten Teil der Daten-Adresse

jetzt Fallunterscheidung:
Fall 1 - wir schreiben Daten ab der vorher gesendete Daten-Adresse in 
den Speicher:

writeByte(Datenbyte);
writeByte(nächstesDatenbyte);
usw...
Stopcondition;

Fall 2 - wir lesen Daten ab der vorher gesendeten Daten-Adresse aus dem 
Speicher:

writeByte(0b01010011);  // Zielgerät auf Lesebetrieb stellen
Daten1 = readByte();
Daten2 = readByte();
usw...
readByte(noAck);
Stopcondition;

In etwa so läuft de Kommunikation ab. Wie man das in Assember auf deiner 
CPU umsetzt, so dass der Hardware-I2C verwendet wird, weiß ich leider 
nicht.

Grüße,

Peter

von Falk B. (falk)


Lesenswert?

@  Franz (Gast)

>Leider kenne ich mit dem I2C-Bus noch nicht richtig gut aus.

>1. Gibt es irgendwo Tutorials, wie man sowas macht?

Siehe I2C und die Datenblätter der ICs, dort steht es nochmal 
ausführlich drin.

>2. Was für einen EEPROM soll ich verwenden?

Wieviel willst du denn speichern? Such dir einen aus, von 2401 bis 
24C512.

MFG
Falk

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.