Tengo una aplicación de software integrada que está copiando un búfer desde la RAM a la EEPROM. En este caso, el dispositivo EPROM es un 28C010 (128 K x 8). La copia se realiza a intervalos no regulares, generalmente en bloques de múltiples bytes. Supongo que otras EEPROM (no todas) se comportan de esta manera, pero esto es con lo que tengo que trabajar.
Las respuestas a mis preguntas a continuación ayudarán a determinar la estrategia para guardar información persistente mientras se procesa en tiempo real.
Se puede acceder a la EEPROM como RAM con algunas excepciones para escribir:
- ESCRIBIR BYTE: se pueden escribir bytes individuales, y la finalización del ciclo de escritura se puede determinar mediante sondeo
- ESCRIBIR PÁGINA: los bloques de bytes contiguos se pueden escribir para bytes dentro del mismo bloque de 128 bytes, y, siempre que cada escritura de un byte sea seguida por otra escritura de un byte en el mismo bloque dentro de 150 microsegundos, entonces la ventaja de PAGE ESCRIBIR se obtienen. El beneficio es que la finalización de la escritura de la página se puede realizar mediante un sondeo al final de la escritura del bloque. (No hay retrasos entre las escrituras de bytes, y la finalización del ciclo de escritura de la página se internaliza en la EEPROM).
- Resistencia del ciclo de escritura: hay un límite de 10.000 ciclos de escritura. No se dan otros detalles.
En ambos casos, el sondeo se realiza mediante la lectura del último byte escrito hasta que el valor devuelto sea igual al valor que se escribió.
Hay otras formas de determinar que una escritura está completa, incluso esperando el máximo tiempo de ciclo de escritura de página especificado, que es de 10 milisegundos.
Tengo la intención de utilizar el sondeo, con la expectativa de que determinará la finalización antes del tiempo de ciclo de escritura de página de 10 milisegundos.
Tengo dos preguntas:
- ¿Puedo esperar que mi tiempo de sondeo en el modo de escritura de página sea proporcional al número de bytes escritos (o puedo ver algún beneficio al escribir unos pocos bytes en lugar de una página completa)?
- ¿Cómo funciona la resistencia del ciclo de escritura? ¿Se aplica a cada byte solo o dos páginas completas (oa toda la memoria en su conjunto)? En otras palabras, si escribo una página parcial en una escritura de página y luego escribo el resto de la página en otro ciclo de escritura de páginas, ¿cómo afecta eso la resistencia de mi ciclo de escritura? ¿Cuenta como dos ciclos de escritura? ¿Alguien puede elaborar sobre esto?
Dado que las Escrituras de página en EEPROM se completan internamente por la EEPROM después de la última escritura en una página, puedo realizar las escrituras en segundo plano en la mayoría de las circunstancias.
El tamaño de los bloques que se están copiando variará un poco cada vez, y no se puede esperar que estén en múltiplos del tamaño de la página. Se puede hacer que sean tan pequeños como un tamaño de página o varias páginas +, en función de un umbral que se determinará más adelante.