Usura eeprom esterna

Salve a tutti, per un progettino sto usando una eeprom esterna 24LC16B nella quale devo salvare circa 90 variabili e fin qui problemi non ce ne sono. Leggendo in rete su come interfacciare la eeprom con arduino ho scoperto che le celle di memoria al loro interno possono essere scritte per un certo numero di volte dopodichè è possibile solo accedere in lettura. Quello che non capisco è se si danneggiano solo le celle realmente scritte oppure se si esaurisce tutta la capacità di scrittura dell'intera memoria (esempio pratico: scrivo solo una variabile sull'indirizzo 0, quando non mi fa più scrivere perchè la cella 0 si è esaurita mi fa scrivere nella cella successiva con indirizzo 1 oppure l'intera memoria è andata?)

Se salvo 90 variabili in un'unica volta viene considerato un salvataggio solo o conta per 90? Se così la vita della eeprom è direttamente proporzionale alla quantità di dati scritti, dico bene?

Le celle di memoria di un eeprom hanno un limitato numero di cicli di scrittura / cancellazione. Le singole celle di memoria sono raguppate in blocchi. Per cambiare una cella deve essere riscritto un blocco intero. La grandezza del blocco dipende dalla grandezza del eeprom.
I produttori garantiscono da 100000 a 1000000 cicli di scrittura.

Se si rompe una cella di memoria é rotta e basta; il contenuto é casuale. Puoi leggerla ma non ha senso.

Soluzioni;

Ciao Uwe

Ciao Uwefed e grazie come sempre per la pronta risposta Pensavo che il numero di scritture possibili era decisamente inferiore, anche solo 10.000 cicli di scrittura per quello che devo fare mi bastano e avanzano.

I dati tecnici http://ww1.microchip.com/downloads/en/DeviceDoc/21703G.pdf dicono: 16-byte page write buffer More than 1 million erase/write cycles Data retention > 200 years

Allora sei sul sicuro.

Cosa avrebbe di particolare la ram di un rtc? Ad esempio il ds1307?

Che sono qualche decina di byte solamente ma, essendo integrata in un dispositivo che è costantemente sotto tensione tramite batteria tampone, essa non perde i dati. Cmq una qualsiasi Eeprom seriale da 4 soldi, come le 24LC256, offrono 32 KB di spazio ed una gestione semplice.

Io ne ho sia di tipo seriale che I2C. Le uniche differenze stanno nel bus?

Ciao GianfrancoPa Il I2C é un intefacci a 2 fili (clock e dati) ogni dispositivo ha il suo indirizzo e viene selezionato in questo modo. Il SPI é un interfaccia a 3 o 4 fili (clock, data in e data out che possono essere anche collegati e select) ogni dispositivo ha il suo segnale di select.

Il SPI é piu veloce del I2C. Arduino supporta tutti due.

http://www.arduino.cc/playground/Code/Spi http://www.arduino.cc/en/Tutorial/SPIEEPROM http://www.arduino.cc/playground/Learning/I2C

Ciao Uwe