Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > > Guten Morgen Peter, > > > > nach einer langen und schlaflosen Nacht habe ich nun das Thema EEPROM fast > > verstanden. > > Ich wollte mit Hilfe des EEPROM 24C64 aus der Doku von C-Control in das > > Thema der EEPROMprogrammierung einsteigen. > > Später möchteich mit dem AT 24C1024B arbeiten. > > > > Dieser Baustein hat laut Datenblatt "131072 word of 8bit", d.h. ich hab 8Pages > > mit je 16384 Bytes die ich pro Seite schreiben kann zur Verfügung. Stimmt das? > > Nein. Die Seitengröße (Pagesize) ist laut Datenblatt 256 Bytes. Das P0 Bit in > der Device Address ist das höchste Adressbit um den Speicher zu adressieren. > Der Chip hat 1MBit = 131072 Bytes Speicher. Mit den beiden Adressbytes kann ich > aber nur 65536 Bytes ansprechen. Deshalb gibt es das P0 Bit um auch die oberen > 65536 Bytes ansprechen zu können. > > Die interne Pagesize ist nur der RAM Bereich in dem ich Bytes am Stück mit voller > Geschwindigkeit schreiben kann. Dann muß man dem Chip etwas Ruhe geben, da bei > der nächsten Adressierung die Page in das Flash geschrieben wird. > > Gruss Peter > > > > > Diese 16384 Bytes sind meine sogenannten Stellen/ Register auf der Seite > > welche ich ins MSB (b15-b8) und LSB(b7-b0) aufteile. ODer? > > > > Also ich starte die Kommunikation mit der Deviceadresse 1010, > > A1 und A0 00 und P0 ist immer eine Page hier jetzt als Beispiel 0 und > > R/W ist für Write 0. > > > > Mein Beispiel: > > > > I2C_Start() > > I2C_Write(10100000) // Deviceadresse schreiben 0xA0 > > I2C_Write(0x00>>); //MSB Stelle/Register 0 soll der Wert > > I2C_Write(0x00); hineingeschrieben werden > > I2C_Write(x_long); > > I2C_Stop(); > > > > //EEPROM lessen > > > > I2C_Start() > > I2C_Write(10100000) // Deviceadresse schreiben 0xA0 > > I2C_Write(0x00>>); //MSB Stelle/Register 0 > > I2C_Write(0x00); > > > > I2C_Start(); > > I2C_Write(10100001); //Deviceadresse lessen 0xA1 > > EEPROM_x_long=I2C_Read_NACK(); > > I2C_Stop(); > > > > Abs_Delay(100); > > > > Was meinst Du Peter, habe ich das ganze jetzt richtig verstanden und > > angesetzt? :) > > > > Liebe Grüße > > Jenny