Ich hab mir vor kurzem ein 4KBit F-Ram (=512Byte) zugelegt und dieses wie meine RTC-DS1307 über I2C angesprochen (mit anderer Slave-Adresse), was auch prächtig funktioniert.
Die Adressierung der ersten 256Byte erfolgt über die Slave-Adresse 0x50 und die zweiten 256Byte über die Slave-Adresse 0x51.
Das macht natürlich Lust auf mehr.... mehr Speicherplatz!
z.B. das 512Kb-Modell.
Nun hab ich das Datenblatt mit meinem wohl nicht ganz perfekten Englisch studiert, und bin nicht viel klüger geworden.
Bei meiner Version mit 2x256 Byte funtioniert es mit folgenden Funktionen (2 Slave-Adressen á 256-Speicheradressen):
Hallo spaceball
Bitte genaue Bezeichnung des Frams geben.
Ich hab mit dem FM25256B-G herumexperimentiert, hat aber ein SPI-Inteface.
Ist 1zu1 kompatiben zu EEprom nur viel schneller beim Schreiben.
Grüße Uwe
http://www.ramtron.com/files/datasheets/FM24C512_ds.pdf:
Memory Architecture
The FM24C512 is logically organized as two 32,768
x 8 bit memory arrays for a total of 65,536 locations.
The device should be treated as two banks, each bank
being selectable by the most significant address bit
A15. The MSB is located in the Slave Address byte
and can be considered a bank select bit. See Figure 4.
I2C-Adresse:
1 0 1 0 A2 A1 A15 R/W
wobei A2 und A1 die beiden Adresseingänge sind und A15 die Adressbank des Speichers definiert.
Also gleich wie beim kleineren FRAM: 2 Slave-Adressen á 32768-Speicheradressen.
Grüße Uwe
Der Unterschied ist daß das FRAM keine Pages hat und daß auch keine Wartezyklen zum schreiben eingelegt werden müssen. Du kannst praktisch das halbe FRAM in einem Rutsch mit der Funktion i2c_eeprom_write_page(int deviceaddress, unsigned int eeaddresspage, byte* data, byte length) schreiben. Aufpassen, lengh muß in diesem Fall vom Typ unsigned int sein. Das halbe FRAM deshalb, weil das FM24C512-G zwei Pages mit 2 verschiedenen Adressen hat.