Esta nota de aplicación describe el funcionamiento del almacenamiento de datos no volátil (NVDS) de Z8 Encore!® y Z8 Encore!. Familia XP®. Cubre las operaciones de lectura y escritura de NVDS, la protección contra fallas de energía, la optimización de la memoria para la velocidad de ejecución y las operaciones y pasos necesarios para acceder a NVDS.
operaciones NVDS
Memoria NVDS en Z8 Encore!® y Z8 Encore!. El microcontrolador XP® funciona como una memoria de solo lectura programable borrable eléctricamente (EEPROM) emulada en una memoria flash capaz de hasta 100.000 ciclos de escritura. Diferentes dispositivos tienen múltiples tamaños de matriz NVDS.
NVDS se implementa mediante el software patentado Zilog® almacenado en una región de la memoria del programa que es inaccesible para el usuario. Estas rutinas dedicadas usan memoria flash para almacenar y leer datos. Estas rutinas incorporan un esquema de direccionamiento dinámico para maximizar la resistencia de escritura/borrado flash.
Se requieren las siguientes rutinas para acceder a NVDS.
- rutina de escritura
- leer la rutina
Ambas rutinas usan la instrucción CALL para acceder a direcciones predefinidas fuera de la memoria del programa que no son accesibles para el usuario. Tanto las direcciones como los datos de NVDS son valores de un solo byte. Estas rutinas guardan su conjunto de registros de trabajo antes de usarlas (por lo que requieren 16 bytes de espacio de pila). Después de llamar a estas rutinas, se restaura el conjunto de registros de trabajo del código de usuario.
Esta sección detalla los siguientes temas:
- Manejo de interrupciones durante las operaciones de NVDS
- Inicializar el registro de frecuencia de flash
- Operaciones de escritura de NVDS
- Operaciones de lectura de NVDS
- protección contra apagón
- Optimización del uso de la memoria NVDS para la velocidad de ejecución
Manejo de interrupciones durante las operaciones de NVDS
Las interrupciones deben desactivarse antes de realizar cualquier operación de NVDS (lectura o escritura). Esto se debe a que los registros de trabajo y el contenido de la pila existente pueden cambiar.
Operaciones de escritura de NVDS
Para escribir bytes en la matriz NVDS:
- Empuje la dirección de la matriz NVDS y escríbala en la pila
- Empuje bytes de datos para escribir en la pila
- Emita una instrucción CALL a la dirección de la rutina de escritura de bytes
- Extraiga bytes de datos y direcciones de la pila
Operaciones de lectura de NVDS
Para leer bytes de una matriz NVDS:
- Presione la dirección de la matriz NVDS para leer.
- Emita una instrucción CALL a la dirección de la rutina de lectura de bytes.
- sacar la dirección de la pila
Al regresar de la subrutina, el byte de lectura está en el registro de trabajo R0 y el byte de estado de lectura está en el registro de trabajo R1. Los campos de bits de este byte de estado se definen en la Tabla 6 y la Tabla 9. Las rutinas de lectura utilizan de 9 bytes (serie F082A) a 16 bytes (serie F0830, F083A y F1680) de espacio de pila. usuario.
protección contra apagón
Las rutinas de NVDS utilizan un mecanismo de verificación de errores para garantizar que solo el último byte escrito esté en riesgo en caso de un corte de energía. Los bytes escritos previamente en la matriz no se modifican. VBO debe estar habilitado y configurado en un voltaje de umbral de 2,4 V o superior para que esta protección funcione.
Un restablecimiento del sistema (como un restablecimiento de pin o un restablecimiento del temporizador de vigilancia) durante una operación de escritura puede cambiar el byte escrito actualmente. Todos los demás bytes de la matriz no se ven afectados.