EEPROM con alta resistencia

8

Actualmente estoy trabajando en un proyecto integrado en el que tengo un contador que estará activo todo el tiempo. Si se corta la alimentación, también tengo que almacenar el estado del último contador y volver a cargarlo en el próximo inicio. De modo que planeaba utilizar EEPROM en la que escribiría continuamente mi valor de contador. Pero he leído en alguna parte que EEPROM tiene una capacidad de lectura / escritura de aproximadamente 100,000 y estaré actualizando ese contador probablemente 120,000 por 24 horas. Así que estoy encontrando alternativas para realizar esta tarea. Por favor, dame tu sugerencia para hacer lo mismo.

    

9 respuestas

1

Decidí ir con "ds1307 RTC". Porque tiene 54byte de SRAM con respaldo de energía. lo que permite un ciclo infinito de lectura / escritura.

    
respondido por el Nishant Kathiriya
12

Otra solución podría ser utilizar un microcontrolador con FRAM no volátil. FRAM no sufre las mismas limitaciones en los ciclos de escritura que EEPROM.

Algunos de los productos MSP430 de TI están disponibles con FRAM, aquí hay un enlace a una aplicación similar a la que describe:

MSP430 con FRAM guarda el estado en caso de fallo de alimentación

Aquí está el artículo de Wikipedia en FRAM: FRAM

    
respondido por el John D
11

Tengo este problema en un proyecto actual.

La forma en que lo estoy tratando es mantener el valor en vivo del contador en la RAM. Agregué un poco de hardware para que el microcontrolador pueda detectar que el voltaje de alimentación de entrada sin procesar es bajo. Si es así, detiene lo que está haciendo, guarda el valor del contador en vivo en la EEPROM, luego espera viendo la tensión de alimentación bruta. Si vuelve a subir, con alguna histéresis, entonces el micro se reinicia esencialmente. De lo contrario, si la energía continúa bajando, el micro eventualmente se detendrá. En el siguiente reinicio, el valor del contador se carga desde EEPROM, luego se usa en vivo en la RAM nuevamente hasta el próximo apagado.

No toma mucho tiempo escribir un valor pequeño en la EEPROM. Lo más probable es que su sistema de suministro de energía existente tenga suficiente almacenamiento de energía para que pueda detectar que el voltaje se está agotando y aún tiene el tiempo de funcionamiento garantizado suficiente antes de que la energía del micro caiga por debajo del umbral de escritura de EEPROM o operativo.

En mi caso, el único hardware adicional era un diodo Schottky para evitar que la fuente de alimentación de CC aspire la carga del depósito local en el camino hacia abajo, y dos resistencias como divisor de voltaje para que el micro pueda leer el voltaje de entrada sin procesar . El resto es firmware.

Es importante tener en cuenta que debe observar el voltaje en la entrada a cualquier fuente final que alimente al micro, no al voltaje de poder del micro directamente. Para cuando este último baja, puede ser demasiado tarde. Es de esperar que haya un rango de voltaje que esté por debajo del peor de los casos cuando todo funciona correctamente y por encima de lo que necesita la fuente de alimentación del micro para garantizar un voltaje regulado al micro. En mi caso, el suministro del micro fue un regulador de buck alimentado desde 48 V, por lo que hay un amplio rango que está por debajo de lo normal pero donde el micro aún puede funcionar de manera confiable.

    
respondido por el Olin Lathrop
4

Solución antigua vieja, contador de cmos + batería de litio o batería Ram + de litio.

La fuente de alimentación para el elemento de almacenamiento proviene de la fuente de alimentación normal cuando está disponible o de la batería cuando no está.

Muchos micros modernos en reposo mantendrán su estado con un suministro de corriente muy bajo. Por lo tanto, puede utilizar esta técnica con la detección de apagado para ir a dormir y luego usar una batería para mantener el estado durante el período de suspensión mientras el suministro principal está apagado.

    
respondido por el RoyC
4

El microchip tiene una serie de partes I 2 C "EERAM" que permitirán que los datos se almacenen en la SRAM, luego los escriban en la EEPROM (usando la energía almacenada en un condensador) cuando se pierde la alimentación, para ser cargado cuando vuelva la energía. Esto parece que sería perfecto para su aplicación.

Un ejemplo representativo de estas partes es el 47L04 .

    
respondido por el duskwuff
3

Otra solución.

Detecta el apagado y usa un supercap o un supercapítulo para mantener el encendido durante unos milisegundos. Use este tiempo para escribir su valor de contador en EPROM. Sólo escriba a EPROM al apagar. Número de ciclos de EPROM = no de ciclos de apagado.

    
respondido por el RoyC
3

Use un chip FRAM como el FM24C04B. Tienen una resistencia de escritura muy alta y no son volátiles.

enlace

También puede usar un módulo SRAM (NVRAM) con respaldo de batería. Por ejemplo M48Z02-150PC1

enlace

    
respondido por el user4574
0

Si su proyecto incorporado tiene NIC, envíe su contador a una computadora / servidor remoto. Parece que 120,000 iteraciones en 24 horas es aproximadamente una iteración en 0.72 segundos, debería estar bien para el tráfico de red.

El servidor siempre tendrá el último valor del contador almacenado. No hay corrupción de valor de contador en la pérdida de alimentación porque se debe emitir un paquete válido para actualizar el valor en el servidor; sin embargo, requiere conectividad constante o debe diseñarse un protocolo especial de tiempo de espera. Además, como beneficio adicional, podrá controlar su dispositivo desde el control remoto si es necesario.

    
respondido por el Anonymous
0

A) Use un condensador de 100 µF (o más) para encender el contador durante el tiempo de apagado. O cualquier lógica que se requiera para mantener el valor del contador.

B) Use memorias de núcleo magnético , pueden ser un poco dudosas de configurar.

C) Haga un potenciómetro controlado por motor (como un servo), en algún punto su contador se desbordará, ¿verdad? Mapa que a 360 grados. Luego haga un ciclo de retroalimentación para que pueda configurar el valor del potenciómetro digitalmente y leerlo digitalmente.

D) Envíe su valor de contador una vez por minuto a algún servidor, o servidores, y permítales recordar el valor para usted durante el tiempo de apagado. Luego, una vez que vuelva la energía, recupere el valor del contador.

    
respondido por el Harry Svensson

Lea otras preguntas en las etiquetas