Actualmente estoy trabajando en un proyecto integrado en el que tengo un contador que estará activo todo el tiempo. Si se corta la energía, también tengo que almacenar el último estado del contador y volver a cargarlo en el próximo inicio. Así que estaba planeando usar EEPROM en el que escribiré continuamente mi valor de contador. Pero he leído en alguna parte que EEPROM tiene una resistencia de lectura / escritura de aproximadamente 100,000 y actualizaré ese contador probablemente 120,000 por 24 horas. Así que estoy encontrando alternativas para lograr esta tarea. por favor dame tu sugerencia para hacer lo mismo.
8
Respuestas:
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 usted describe:
MSP430 con FRAM guardar estado en falla de energía
Aquí está el artículo de Wikipedia sobre FRAM: FRAM
fuente
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 EEPROM, luego espera a ver el voltaje de alimentación sin procesar. Si vuelve a subir, con algo de 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 utiliza en vivo en la RAM nuevamente hasta el próximo apagado.
No lleva mucho tiempo escribir un valor pequeño en 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 así tiene suficiente tiempo de ejecución garantizado antes de que la alimentación del micro caiga por debajo del umbral de escritura operativo o EEPROM.
En mi caso, el único hardware adicional era un diodo Schottky para evitar que la fuente de alimentación de CC absorbiera la carga del depósito local en el camino, 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 vigilar el voltaje en la entrada a cualquier fuente de alimentación final que alimente el micro, no el voltaje de alimentación del micro directamente. Para el momento en que este último baja, puede ser demasiado tarde. Con suerte, hay un rango de voltaje que está por debajo del peor de los casos cuando todo funciona correctamente y por encima de lo que la fuente de alimentación del micro necesita para garantizar un voltaje regulado al micro. En mi caso, el suministro del micro era un regulador reductor 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.
fuente
Solución antigua, antigua, contador CMOS + batería de litio o batería de litio Ram +.
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 lo está.
Muchos micros modernos en reposo mantendrán su estado con un suministro de corriente muy bajo. Por lo tanto, puede usar esta técnica con detección de apagado para ir a dormir y luego usar una batería para mantener el estado durante el período de sueño mientras el suministro principal está apagado.
fuente
Microchip tiene una serie de I 2 partes C "EERAM" que permitirán almacenar datos en SRAM, luego escribirlos en EEPROM (usando energía almacenada en un condensador) cuando se pierde la energía, para cargarse cuando vuelve la energía. Parece que sería perfecto para su aplicación.
Un ejemplo representativo de estas partes es el 47L04 .
fuente
Otra solución.
Detecte el apagado y use un supercap o no super cap para mantener el poder encendido durante unos pocos milisegundos. Use este tiempo para escribir su valor de contador en EPROM. Solo escriba en EPROM cuando se apague. Número de ciclos de EPROM = no de ciclos de apagado.
fuente
Use un chip FRAM como el FM24C04B. Tienen una resistencia de escritura muy alta y no son volátiles.
https://www.mouser.com/ds/2/100/001-84446_FM24C04B_4_KBIT_512_X_8_SERIAL_I2C_F-RAM-477782.pdf
También podría usar un módulo SRAM con respaldo de batería (NVRAM). Por ejemplo M48Z02-150PC1
https://www.mouser.com/ds/2/389/m48z02-955115.pdf
fuente
Decidí ir con "ds1307 RTC". Porque tiene 54bytes de SRAM con respaldo de energía. que permite un ciclo infinito de lectura / escritura.
fuente
Si su proyecto incrustado tiene NIC, envíe su contador a la 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 del valor del contador en la pérdida de energía porque se necesita emitir un paquete válido para actualizar el valor en el servidor; sin embargo, requiere conectividad constante o se debe diseñar un protocolo de tiempo de espera especial. Además, como beneficio adicional, podrá controlar su dispositivo desde el control remoto si es necesario.
fuente
A) Use un capacitor de 100 µF (o más grande) 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 difíciles de configurar.
C) Haga un potenciómetro controlado por motor (como un servo), en algún momento su contador se desbordará, ¿verdad? Asigne eso a 360 grados. Luego haga un ciclo de retroalimentación para que pueda establecer el valor del potenciómetro digitalmente y leerlo digitalmente.
D) Envíe el valor de su contador una vez cada minuto a algún servidor o servidores, y deje que recuerden el valor por usted durante el tiempo de inactividad. Luego, una vez que vuelva la energía, recupere el valor del contador.
fuente