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
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
@ 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.