Alternativas ao uso da EEPROM

9

Pelo que entendi, a EEPROM é uma parte de um computador (no meu caso, um microcontrolador AVR) que armazena dados e os mantém mesmo quando o dispositivo é desligado completamente. Ele permite que os dados sejam gravados e lidos a partir dele.

O problema que estou vendo é que tem uma vida finita e bem curta. Em outras palavras, só posso ler / escrever um número finito de vezes antes de usar a EEPROM.

O que estou procurando é uma maneira de obter a mesma funcionalidade da EEPROM, mas em um pequeno fator de forma. Suponho que posso usar algo como um cartão microSD, mas prefiro uma solução que não exija que o usuário compre um cartão de memória. Além disso, eu realmente preciso de apenas alguns bytes de espaço, no máximo. Digamos apenas 1 kB para ser muito, muito conservador. Eu gastaria mais do que o necessário para acomodar um cartão de memória de qualquer tipo.

Então, quais são minhas opções? Existem soluções comuns de IC que me permitam obter esse tipo de armazenamento / recuperação de dados, sem vida útil curta e alto custo?

Capcom
fonte
3
Com que frequência você precisa salvar esses poucos bytes? Essa é a questão principal aqui. É todo minuto? Hora? milissegundo?
Gustavo Litovsky
A EEPROM de um ATmega32, por exemplo, tem uma vida útil de 100.000 ciclos de gravação / leitura. Isso poderia ser mais do que suficiente, dependendo da aplicação ..
m.Alin
3
Você disse: "Só posso ler / escrever um número finito de vezes antes de esgotar a EEPROM", o que não está certo. Você gasta a EEPROM com gravações, mas geralmente as leituras não são limitadas.
The Photon
@GustavoLitovsky Digamos, uma vez a cada minuto. Nesse caso, para um ATmega32 que esteja constantemente ligado, ele durará dois anos. Eu acho que tudo bem, quando eu coloco em perspectiva.
capcom
@ThePhoton Ah, ok. Eu nunca soube disso, obrigado. Não que isso mude alguma coisa, pois eu preciso de leitura / gravação.
capcom

Respostas:

4

Sim, uma EEPROM é um tipo de memória não volátil que pode armazenar dados mesmo sem energia por um período significativo de tempo (o tempo real depende da temperatura e de outras condições).

Existem algumas outras soluções não voláteis para você considerar:

1) Memória Flash interna - Atualmente, a maioria dos microcontroladores possui Flash para armazenamento de código e alguns fornecem também para dados e registro do usuário. Isso também possui ciclos de gravação limitados e requer a exclusão de blocos antes de alterar os bits de '1' para '0' (você armazena dados em outro local nesse meio tempo e os reescreve).

2) Memória interna de FRAM - A TI possui dispositivos com memória FRAM não volátil e pode ser acessada com muita simplicidade (como qualquer outro local de memória. As leituras também são destrutivas quando gravadas (embora, no seu caso, isso não importe, pois o número de ciclos é 10) ^ 13 ou mais a 85 graus Celsius).

3) Memória Flash Externa - Você pode adicionar memória externamente para armazenar alguns megabits de dados de maneira barata.

Dependendo da taxa na qual você deseja salvar (e se você pode desligar bem), poderá aumentar o número efetivo de ciclos disponíveis para você.

Gustavo Litovsky
fonte
12

A maneira de superar a limitação de resistência da EEPROM é aplicar um algoritmo de nível de desgaste. Basicamente, para cada registro que você deseja armazenar, você aloca N vezes o requisito de memória e um espaço correspondente para os valores do índice N e, em seguida, use a inferência para descobrir qual é o "registro atual" e qual é o próximo registro a ser gravado. para. Está bem descrito nesta nota do aplicativo AVR .

vicatcu
fonte
7

Outra solução potencial é um pouco de RAM estática e uma bateria. Isso tem uma vida útil limitada, pois a bateria acabará por morrer, mas é ilimitada em ciclos de gravação. Você também pode usar algo como um capacitor de grande capacidade para alimentá-lo, se souber que seu tempo de folga será um valor pequeno. Uma célula tipo moeda de lítio pode durar muito tempo em um aplicativo como esse, se você o projetar corretamente.

Há também partes que incorporam um RTC, nvram e bateria (para manter o relógio funcionando) em uma parte. Eles têm a desvantagem de que, se a fonte de energia interna acabar, você perdeu a parte inteira (não apenas a bateria), mas dependendo de quanto tempo o produto durar, isso pode não ser um problema.

Michael Kohne
fonte
2

Não sei qual é o seu orçamento, mas você pode dar uma olhada no MRAM , que é rápido como DRAM, mas não volátil, como o Flash. Obviamente, estes são muito mais caros que os chips EEPROM.

Eu tenho um monte de CIs de amostra da Freescale anos atrás, mas nunca tive a chance de usá-los, por isso não posso dizer se você terminará com um circuito muito mais simples do que se tiver que conectar um cartão SD slot.

Simón
fonte
1

Sou um cara de computador e não um engenheiro elétrico, mas acho que há outra abordagem para o problema do ciclo de vida da memória flash:

Meu entendimento é que o problema do ciclo de vida no flash é realmente uma questão de apagar, não de escrever. Você pode escrever quantas vezes quiser, exceto pelos pequenos detalhes de que as gravações são unidirecionais.

Como o armazenamento de que você precisa é pequeno comparado ao tamanho de dispositivos pequenos, você pode (supondo que tenha acesso de nível suficientemente baixo ao hardware) gravá-lo várias vezes, sempre em um local diferente. Certifique-se de que seus dados possam ser distinguidos da memória não gravada (preencha se necessário para fazer isso) e a última célula gravada é o valor atual.

Além disso, se seus dados são na verdade um contador que está sendo incrementado uma vez por gravação, você pode obter ainda mais dele, não escrevendo, mas escrevendo um bit por tick, a contagem é o número de bits gravados.

Loren Pechtel
fonte
1

NVSRAM serial da Microchip pode atender à sua conta:

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.

Esta família de memória serial suporta backup de bateria. A folha de dados menciona o consumo atual de 1ua da bateria. O preço é inferior a US $ 2 em quantidade de 1K e amostras gratuitas são oferecidas pela Microchip. Os CIs estão disponíveis em pacotes amigáveis ​​para PDIP e SOIC.

Chetan Bhargava
fonte
1

Você pode querer examinar a FRAM serial. O principal fabricante parece ser Cypress (née Ramtron). Aqui está uma parte:

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

Está disponível em tamanhos grandes (o maior que já vi são 2Mbit), é protocolo compatível com MRAM ou flash, é gravável em bytes e não precisa ser apagado, é rápido - as gravações acompanham o protocolo SPI - e o a retenção é ridiculamente alta.

Dito isto, é um pouco difícil de encontrar. Poucos distribuidores o carregam e aqueles que parecem esgotar-se instantaneamente --- Cypress tem sua própria loja (frete grátis também) e entre mim solicitou duas peças FM25V04 que esgotaram. Seis semanas de espera, aparentemente ...

David Given
fonte