1.000.000 di cicli di cancellazione sono molti, ma puoi bruciarli rapidamente come te ne sei reso conto. Per letture una volta al secondo, ciò sarebbe ottenuto in 11,6 giorni.
Come già accennato, memorizzare nella RAM e poi scrivere su EEPROM solo occasionalmente è un modo.
Un altro modo è per utilizzare FLASH EEPROM. Con FLASH è solo il conteggio delle cancellazioni che conta. Puoi scrivere molte volte trasformando 1 in 0 senza penalità. Se hai solo poche letture e quantità relativamente grandi di spazio FLASH, puoi usare i record.
Cancella i dati, lasciando tutti 0xFF.
Per le scritture: scrivere in sequenza nello spazio EEPROM. Quando sei pieno, cancella tutto e ricomincia. Se il valore dei dati è tutti 0xFF, devi modificarlo di un LSB per evitare di sembrare un record vuoto. Nel tuo caso, si tratterebbe comunque di una condizione di overflow.
Per le letture: cerca il record all-0xFFs e fai il backup di uno. Se raggiungi la fine e non ci sono tutti i record 0xFFs, l'ultima posizione è quella.
La resistenza FLASH è solitamente inferiore ... diciamo 100.000. Tuttavia, un semplice FLASH da 1 Mbit avrebbe abbastanza spazio per quasi 104 anni di archiviazione utilizzando questo metodo.
Per un prodotto commerciale come questo, dovresti avere la sicurezza in caso di interruzione di corrente sulle scritture EEPROM. Aggiungi il rilevamento di interruzioni di alimentazione e una potenza di backup sufficiente (supercap, qualunque sia) per completare un'operazione di scrittura ... o esegui le scritture in modo sicuro. Per fare ciò, è possibile dividere la EEPROM in due metà, alternare le metà durante le scritture e scrivere un CRC con il record di dati. La lettura cercherà l'ultimo record in entrambe le pagine con un CRC valido. Le metà devono essere allineate al blocco di cancellazione per sicurezza.
Le utility di solito vogliono qualcosa di più della semplice potenza totale utilizzata, però. Considera l'idea di tenere traccia di quanti conteggi / secondo ottieni e memorizza anche questi numeri. La maggior parte delle utility addebita anche ai clienti commerciali in base alla potenza massima di cui hanno bisogno in un dato intervallo di circa 15 minuti.