externer EEPROM an AVR atmega32

Gast #1041010
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
Gast #1041016
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
#1041077
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren