¿Es posible volver a escribir una página Flash después de una escritura interrumpida?

2

Supongamos que tiene un chip Flash (NOR flash) que está utilizando, por ejemplo, para el registro de datos, realizando escrituras secuenciales regularmente en él.

La pregunta es qué sucede si se apaga la alimentación durante una escritura de página: ¿es posible "arreglar" la página volviendo a escribir el mismo contenido sobre ella?

Según mi conocimiento de los dispositivos Flash, esto debería ser posible a medida que las escrituras pasan de 1 a 0, por lo que creo que una escritura incompleta debería conducir las celdas más o menos hacia cero (por lo tanto, volver a intentar el mismo patrón más adelante solo debería reforzarlo) .

El diseño exacto es un dispositivo de registro de datos que tiene una gran matriz NOR flash para el almacenamiento de datos y FRAM para el almacenamiento intermedio (pequeño, pero compatible con escrituras inmediatas, por lo que los datos no corren el riesgo de perderse durante los períodos en que Flash puede No lo acepte).

No puedo hacer un ciclo completo de borrado + reescritura al detectar tal condición (escritura interrumpida) ya que no tengo espacio para almacenar un sector de borrado completo que es significativamente más grande que una página de escritura (64Kbytes versus 256 bytes), por lo que Lo más sencillo sería intentar escribir de nuevo si el apagado anterior hubiera dejado una escritura de página sin terminar.

(La detección de la escritura no terminada se realiza mediante el sondeo del estado del chip y el mantenimiento de una máquina de estado relacionada en la FRAM, por lo tanto, no comparando los datos que pueden indicar falsamente una escritura exitosa, pero "débil" debido a un apagado posterior durante la página escribe)

    
pregunta Jubatian

1 respuesta

1

Esto debería tener toda la información que necesita: enlace

Parece decir que debes estar seguro ya que tu flash usa celdas de un solo nivel.

Teniendo en cuenta que las escrituras son una operación bastante rápida, creo que deberías evitar el problema. No sé cómo se realiza su distribución de energía, pero si su placa recibe alimentación, por ejemplo, 5V, que luego alimenta un LDO de 3V3 o un regulador de conmutación, entonces un condensador de valor adecuado en el riel de 5V aún alimentará la placa como su el voltaje cae a 3V3 más el voltaje de deserción LDO.

Lo mismo si tiene un suministro de transformador-rectificador-tapa de la vieja escuela. Asegúrese de comenzar la escritura cuando la tapa de suavizado de suministro esté en su voltaje máximo.

Si su tarjeta se alimenta con una verruga de pared, estos tendrán un capacitor de alto voltaje que lleva la tensión de la red, que debería poder alimentar su tarjeta por al menos un par de decenas de milisegundos, lo que debería ser suficiente. En este caso, podría usar un detector simple en la tensión de la red e iniciar la escritura cuando la tensión de la red esté por encima de un cierto umbral. Incluso si pierde el voltaje de la red, la tapa del HV tendrá suficiente energía almacenada para finalizar la escritura si tiene suficiente µF.

    
respondido por el peufeu

Lea otras preguntas en las etiquetas