Alternatives à l'utilisation de l'EEPROM


9

Si je comprends bien, l'EEPROM fait partie d'un ordinateur (dans mon cas, un microcontrôleur AVR) qui stocke les données et les conserve même lorsque l'appareil s'arrête complètement. Il permet d'y écrire des données et de les lire.

Le problème que je vois, c'est qu'il a une durée de vie limitée et assez courte. En d'autres termes, je ne peux lire / écrire qu'un nombre fini de fois avant d'user l'EEPROM.

Ce que je recherche, c'est un moyen d'obtenir les mêmes fonctionnalités que l'EEPROM, mais dans un petit format. Je suppose que je peux utiliser quelque chose comme une carte microSD, mais je préférerais une solution qui n'oblige pas l'utilisateur à acheter une carte mémoire. De plus, je n'ai vraiment besoin que de quelques octets au maximum. Disons simplement que 1 ko est très, très conservateur. Je dépenserais plus que nécessaire pour accueillir une carte mémoire de toute sorte.

Alors, quelles sont mes options? Existe-t-il des solutions IC communes qui me permettraient de réaliser ce type de stockage / récupération de données, sans une courte durée de vie et un coût élevé?


3
À quelle fréquence devez-vous enregistrer ces quelques octets? Voilà la question clé ici. Est-ce à chaque minute? Heure? milliseconde?
Gustavo Litovsky

L'EEPROM d'un ATmega32, par exemple, a une durée de vie de 100 000 cycles d'écriture / lecture. Cela pourrait être plus que suffisant, selon l'application ..
m.Alin

3
Vous avez dit: "Je ne peux lire / écrire qu'un nombre fini de fois avant d'user l'EEPROM", ce qui n'est pas tout à fait correct. Vous épuisez l'EEPROM avec des écritures, mais généralement les lectures ne sont pas limitées.
The Photon

@GustavoLitovsky Disons, une fois par minute. Dans ce cas, pour un ATmega32 qui est constamment allumé, il durera deux ans. Je suppose que ça va, quand je le mets en perspective.
capcom

@ThePhoton Ah, ok. Je ne l'ai jamais su, merci. Non pas que cela change quoi que ce soit, car j'ai besoin à la fois de lecture / écriture.
capcom

Réponses:


4

Oui, une EEPROM est un type de mémoire non volatile qui peut contenir des données même sans alimentation pendant une durée significative (la durée réelle dépend de la température et d'autres conditions).

Il existe quelques autres solutions non volatiles à considérer:

1) Mémoire Flash interne - La plupart des microcontrôleurs ont aujourd'hui Flash pour le stockage de code et certains le fournissent également pour les données utilisateur et la journalisation. Cela a également des cycles d'écriture limités et nécessite l'effacement des blocs avant de changer les bits de «1» à «0» (vous stockez des données ailleurs entre-temps et les réécrivez ensuite).

2) Mémoire FRAM interne - TI possède des appareils avec une mémoire FRAM non volatile, accessible très simplement (comme n'importe quel autre emplacement de mémoire. Les lectures sont également destructrices lors de l'écriture (bien que dans votre cas cela puisse ne pas avoir d'importance puisque le nombre de cycles est de 10) ^ 13 environ à 85 degrés Celsius).

3) Mémoire Flash externe - Vous pouvez ajouter de la mémoire en externe pour contenir quelques mégabits de données à peu de frais.

Selon la vitesse à laquelle vous souhaitez enregistrer (et si vous pouvez bien arrêter), vous pourrez peut-être augmenter le nombre effectif de cycles disponibles pour vous.


12

La façon de surmonter la limitation d'endurance de l'EEPROM consiste à appliquer un algorithme de nivellement de l'usure. Fondamentalement, pour chaque enregistrement que vous souhaitez stocker, vous lui allouez N fois la quantité de mémoire requise et un espace correspondant pour les valeurs d'index N, puis utilisez l'inférence pour déterminer quel est "l'enregistrement en cours" et quel est l'enregistrement suivant à écrire. à. Il est bien décrit dans cette note d'application AVR .


7

Une autre solution potentielle est un peu de RAM statique et une batterie. Cela a une durée de vie limitée dans la mesure où la batterie finira par mourir, mais elle est illimitée en cycles d'écriture. Vous pouvez également utiliser quelque chose comme un condensateur de grande taille pour l'alimenter, si vous savez que votre temps d'arrêt va avoir une valeur plus petite. Une pile bouton au lithium peut durer longtemps dans une application comme celle-ci, si vous la concevez correctement.

Il y a aussi des parties qui intègrent un RTC, un nvram et une batterie (pour garder l'horloge en marche) en une seule partie. Ceux-ci ont l'inconvénient que si la source d'alimentation interne disparaît, vous avez perdu la partie entière (pas seulement la batterie), mais selon la durée de vie de votre produit, cela pourrait ne pas être un problème.


2

Je ne sais pas quel est votre budget, mais vous voudrez peut-être jeter un œil à MRAM , qui est rapide comme la DRAM mais non volatile tout comme Flash. Bien sûr, ce sont beaucoup plus chers que les puces EEPROM.

J'ai un tas d'exemples de circuits intégrés de Freescale il y a des années, mais je n'ai jamais eu l'occasion de les utiliser, donc je ne peux pas vraiment dire si vous vous retrouverez avec un circuit beaucoup plus simple que si vous devez attacher une carte SD fente.


1

Je suis un informaticien plutôt qu'un ingénieur électricien, mais je pense qu'il y a une autre approche au problème du cycle de vie de la mémoire flash:

Ma compréhension est que le problème du cycle de vie sur flash est en fait une question d'effacement, pas d'écriture. Vous pouvez écrire autant de fois que vous le souhaitez, à l'exception du petit détail que les écritures sont à sens unique.

Étant donné que le stockage dont vous avez besoin est minuscule par rapport à la taille même des petits appareils, vous pouvez (en supposant que vous avez un accès suffisamment bas au matériel) l'écrire plusieurs fois, chaque fois dans un emplacement différent. Assurez-vous que vos données peuvent être distinguées de la mémoire non écrite (complétez-les si nécessaire pour cela) et la dernière cellule écrite est la valeur actuelle.

De plus, si vos données sont en fait un compteur incrémenté une fois par écriture, vous pouvez en tirer encore plus en ne les écrivant pas du tout, mais en écrivant plutôt un bit par tick, le nombre est le nombre de bits écrits.


1

La NVSRAM série de Microchip peut correspondre à votre facture:

Serial NVSRAM offers non-volatile RAM storage and is ideal for applications that need to write very often to the memory. This device is significantly lower cost than other non-volatile RAM devices and the data is backed using an external battery. This 8-pin, SPI device supports unlimited instantaneous writes to the memory array, making it ideal in applications such as meters, data loggers, data recorders, black boxes. These devices are available in 512Kbits and 1Mbit densities.

Cette famille de mémoire série prend en charge la sauvegarde sur batterie. La fiche technique mentionne le tirage actuel de 1ua de la batterie. Le prix est inférieur à 2 $ en quantité de 1K et des échantillons gratuits sont offerts par Microchip. Les circuits intégrés sont disponibles dans des packages PDIP et SOIC adaptés aux amateurs.


1

Vous voudrez peut-être examiner la FRAM série. Le principal fabricant semble être Cypress (née Ramtron). En voici une partie:

http://www.cypress.com/?rID=73530

Il est disponible en grandes tailles (le plus grand que j'ai vu est 2Mbit), c'est un protocole compatible avec MRAM ou flash, il est accessible en écriture et en lecture sans besoin d'être effacé, c'est rapide --- les écritures suivent le protocole SPI --- et le la rétention est ridiculement élevée.

Cela dit, c'est un peu difficile à trouver. Peu de distributeurs le portent et ceux qui semblent se vendre instantanément --- Cypress a leur propre magasin (livraison gratuite aussi) et entre moi, je commande deux pièces FM25V04, ils ont vendu. Six semaines de délai, apparemment ...

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.