NOR Memoria Flash Full chip vs Block vs Sector Erase

0

Estoy tratando de usar un dispositivo de memoria flash NOR: SST25VF016B (con STM32 discoveryboard F407VG). Sin embargo, estoy confundido en algunos términos en su hoja de datos. Puede encontrar la hoja de datos aquí: enlace

En la hoja de datos, se menciona que este dispositivo tiene 16Mega bits de memoria. Sin embargo, en la sección de borrado, indica que tiene: 1. Borrado completo 2. 4KByte sector borrado 3. 32 borrado de bloques Kbyte 4. 64 Kbyte bloque borrar

Lo que entiendo después de ver algunas referencias es que el sector es la sección más pequeña en un dispositivo de memoria, y luego tenemos bloques. Pero, en ese caso, el sector 4KByte significa que se borrará de la dirección 0, por ejemplo, hasta la dirección 4000?

Y una pregunta más, cuando intenté programar este dispositivo, dijo que necesitamos borrar el chip antes de programar. Será lo mismo si utilizo el borrado completo de chips, o si lo borro bloque por bloque (o sector por sector)

¿Puede alguien ayudarme a tratar de entender esto? Muchas gracias !!

Saludos

    
pregunta Stanleyaley

1 respuesta

1

Lo primero que hay que entender acerca de la memoria flash NOR es que la programación de bytes individuales solo puede cambiar 1 bit a cero, pero no puede modificar un bit ya establecido en cero. Para devolver un bit a uno, se debe borrar toda la sección más pequeña que se pueda borrar.

En este chip, la sección más pequeña que se puede borrar es un sector de 4Kbyte (4096 bytes, por ejemplo, bytes 0-4095). El bloque de 32Kbyte (32,768 byte) y 64Kbyte (65,536 byte) son simples grupos de sectores que pueden borrarse como una sola operación. No importa si borra un sector, un bloque de tamaño o el chip completo. Todos los bytes en el rango se establecerán de nuevo en todos los (0b11111111).

En la mayoría de los chips NOR, en realidad no es necesario borrar un byte antes de la programación. Sin embargo, tal reprogramación de nuevo, solo puede cambiar unos a ceros. Escribir todos los ceros en un byte o bytes no cero ya programados puede ser útil para marcar rápidamente un bloque de datos como no válido u obsoleto.

    
respondido por el DoxyLover

Lea otras preguntas en las etiquetas