Unterstützte-Chips-Flash-Center

Añadir un módulo al software Centro Flash Fase Total

1. Introducción

Aunque por defecto muchos dispositivos de memoria están incluidos en la lista de piezas del Centro Flash, los usuarios pueden encontrarse con que la pieza que desean programar no está presente. Por ello, el Centro Flash incluye un método para que los usuarios añadan piezas de memoria adicionales a la biblioteca y especifiquen los parámetros para programar esas piezas. Para añadir un dispositivo de memoria a Flash Center, el usuario debe definir primero los parámetros de programación de las piezas de memoria en un archivo XML y, a continuación, cargar el archivo en Flash Center.

2. Importar archivos de dispositivos de almacenamiento

Hay dos formas de añadir dispositivos de almacenamiento desde un archivo de dispositivo de almacenamiento a la lista de piezas del Flash Centre.

Un método para cargar el archivo en el Centro Flash consiste en abrir el cuadro de diálogo Seleccionar dispositivo de destino y, a continuación, hacer clic en el botón Cargar archivo de pieza .... A continuación, puedes seleccionar el archivo de pieza de memoria en el cuadro de diálogo de selección de archivos.

La otra forma de añadir las piezas definidas en un archivo de piezas de memoria es almacenar el archivo en el directorio de piezas del centro flash. Este directorio se encuentra en el directorio de instalación del Centro flash y se llama Piezas. Cuando se inicia el Centro Flash, todos los archivos que tienen la extensión .xml se cargan automáticamente en el directorio de piezas.

Independientemente del método elegido para cargar el archivo de piezas de memoria, si están formateadas correctamente, las piezas se integrarán en la lista de piezas y se podrán seleccionar para su programación en el cuadro de diálogo Seleccionar dispositivo de destino.

Nota: Los parámetros de uso de los dispositivos de almacenamiento deben ser únicos. Si los parámetros de nombre de dispositivo están duplicados entre definiciones de piezas, las piezas cargadas posteriormente sobrescribirán las definiciones de piezas cargadas anteriormente. Esto es útil cuando se utiliza la opción "Cargar archivo de pieza...", ya que permite refinar las definiciones de pieza sin tener que reiniciar Flash Center. Si las piezas con parámetros duplicados para el nombre del dispositivo están en el directorio de piezas, no se puede determinar cuáles se cargarán.

3. Definir archivos de dispositivos de almacenamiento

Para añadir un dispositivo de almacenamiento a la lista de piezas de los Centros Flash, primero hay que definir la pieza en un archivo de dispositivo de almacenamiento.

Para utilizar una velocidad de bits superior a la velocidad de bits máxima especificada en la biblioteca de piezas con la Plataforma serie Promira, debe actualizarse un archivo en el directorio de piezas.

La velocidad de bits SPI máxima con la aplicación Plataforma serie Promira con SPI activo de nivel 3 es de 80 MHz.
Comprueba la hoja de datos de la pieza de memoria para asegurarte de que ésta admite la velocidad de bits deseada.
abre el archivo en el directorio de piezas que especifica la pieza de memoria deseada.
Actualiza maxBitrate a la tasa de bits deseada. Asegúrate de que esta tasa de bits es igual o inferior a la tasa de bits máxima de tu Plataforma serie Promira.
No se recomienda actualizar otros nodos.
El siguiente ejemplo muestra un archivo de parte de memoria de uno de los archivos incluidos con el Centro Flash: st-spi-flash-m25pe.xml. Define 4 partes de memoria que heredan la mayoría de sus parámetros de los valores globales por defecto o de los valores por defecto declarados en la parte superior del archivo.

 

<?xml version="1.0" binding="UTF-8"?> <dispositivos> <versión por defecto="1.0"><nombreFabricante> STMicro </nombreFabricante> <algoritmoDispositivo>SPI flash</algoritmoDispositivo> <maxBitrate>33000</maxBitrate> <addressWidth>3</anchoDirección> <readDummyBytes>1</readDummyBytes> <writeSize>256</ writeSize> <eraseSize>256</eraseSize> <writeTime>1200</writeTime> <eraseTime>10000</eraseTime> <readInstruction>0x0b</readInstruction> <readDeviceIdInstruction>0x9f</readDeviceIdInstruction> <eraseInstruction>0x9f</readDeviceIdInstruction> <eraseInstruction>0x9f</readDeviceIdInstruction>.0xdb</eraseInstruction> <deviceConnectedBits>0x00</deviceConnectedBits><deviceConnectedMask>0xfc</deviceConnectedMask> </default> <device version="1.0"> <deviceName>M25PE10</deviceName> <deviceDescription> STMicro M25PE10 128 Kilobyte SPI Flash</deviceDescription> <capacity>128*1024</capacity> <expectedDeviceId></expectedDeviceId> <device version> <device version="1.0"> <deviceName>M25PE20</deviceName> <deviceDescription> STMicro M25PE20 256 Kilobyte SPI Flash </deviceDescription> <capacidad>256*1024</capacidad> <expectedDeviceId>\x20\x80\x12</expectedDeviceId> </device> <device version="1.0"> <deviceName>M25PE40</deviceName> <deviceDescription> STMicro M25PE40 512 Kilobyte SPI Flash </deviceDescription> <capacity>512*1024</capacity> <expectedDeviceId>\x20\ \x80\x13</expectedDeviceId> </device> <device version="1.0"> <deviceName>M25PE80</deviceName> <deviceDescription> STMicro M25PE80 1 Megabyte SPI Flash </deviceDescription> <capacidad>1024*1024</capacidad> <maxBitrate>50000</maxBitrate> <hasEraseAll>true</hasEraseAll> <writeTime>1350</writeTime> <eraseAllTime>10*1000000</eraseAllTime> <eraseAllInstruction>0xc7</eraseAllInstruction> <expectedDeviceId>\x20\x80\x14</expectedDeviceId> </device> <device version="1.0"> <deviceName>M25PE16</deviceName> <deviceDescription> STMicro M25PE16 2 Megabyte SPI Flash </deviceDescription> <capacidad>2*1024*1024</capacidad> <maxBitrate>50*1000</maxBitrate> <blockProtectBits>0x1c </blockProtectBits> <hasEraseAll>true</hasEraseAll> <writeTime>800</writeTime> <eraseAllTime>17*1000000</eraseAllTime> <eraseAllInstruction>0xc7</eraseAllInstruction></eraseAllInstruction>. <expectedDeviceId>\x20\x80\x15</expectedDeviceId> <deviceConnectedMask>0x60</deviceConnectedMask> </device> </devices>

3.1. formato de las piezas del archivo de memoria

El formato de definición de piezas utilizado para el Centro Flash se basa en XML. (Para obtener una visión general del formato XML, consulta el sitio web oficial de XML en http://www.w3.org/XML/.)

El formato de archivo de parte de memoria contiene varios elementos. Comienza con la declaración XML y le sigue el nodo <dispositivos>, que puede contener un nodo <por defecto> y varios nodos <dispositivos>. El nodo <por defecto> y el nodo <dispositivo> contienen cada uno varios elementos que definen valores de parámetros para los dispositivos de almacenamiento. Cada nodo <dispositivo> define un único dispositivo de almacenamiento. El nodo <Estándar> se puede utilizar para definir características comunes de todos los dispositivos de almacenamiento del archivo.

 

Declaración XML

La primera línea del archivo de ejemplo es la línea de declaración XML. Esta línea debe ser la primera de todos los archivos de partes de almacenamiento.

 

Nodo de dispositivo

El único elemento de nivel raíz del archivo XML es el nodo de elemento <dispositivos>. Todos los demás elementos del archivo son nodos hijos del nodo <dispositivos>. La segunda línea del archivo debe ser la declaración del nodo <dispositivos>, y la última línea del archivo debe cerrar el nodo <dispositivos>. El nodo <por defecto> y todos los nodos <dispositivos> deben ser nodos hijos del nodo <dispositivos>.

 

Nodo por defecto

El nodo <por defecto> es un nodo opcional que define los valores de los parámetros comunes para todos los dispositivos definidos en el archivo. Cualquier parámetro definido en el nodo <por defecto> anulará los valores por defecto incorporados para ese único parámetro.

El elemento <default> tiene un atributo, versión, que debe ser 1.0. Sólo debe haber un nodo <default>. Si hay más de un nodo <default>, sólo se analizará el primero, el resto se ignorará.

 

Nodos de dispositivo

Cada nodo <dispositivo> del archivo de memoria define una única parte de memoria. Se permiten varios nodos <dispositivo> bajo el nodo <dispositivo>, cada uno de los cuales define un dispositivo de memoria diferente. Los valores de los parámetros declarados bajo cada nodo <dispositivo> definen las características del dispositivo y también identifican el método de programación del dispositivo de memoria. Los parámetros definidos en cada nodo <dispositivo> varían en función del tipo de dispositivo de almacenamiento y de las características específicas del mismo.

Cuando añadas nuevas piezas a la lista de piezas del Centro Flash, es importante que la nueva pieza tenga un nombre único definido en el parámetro <nombre de dispositivo>. Si hay piezas de almacenamiento que tienen el mismo valor <deviceName>, sólo se añadirá una de las piezas a la lista de piezas. En esta situación, se muestra una advertencia al usuario.

El elemento <dispositivo> tiene un atributo, versión, que debe tener el valor 1.0.

 

Nodo DualIO y nodo QuadIO

El nodo <dualIO> y el nodo <quadIO>, que están permitidos bajo el nodo <device>, definen los modos E/A dual y E/A cuádruple para el dispositivo de almacenamiento. Si se selecciona Dual o Quad para el modo de E/S SPI, se utilizan los parámetros bajo el nodo <dualIO> o <quadIO>. Todos los parámetros no definidos en estos nodos se heredan del nodo <dispositivo>

3.2 Parámetros de los dispositivos

En el archivo de la pieza de memoria, cada dispositivo de memoria se describe como una lista de valores de parámetros que definen características como el nombre del dispositivo, el tamaño de la memoria, el tipo de dispositivo, etc. Los parámetros necesarios para definir una determinada pieza de memoria Esto depende del tipo de memoria, así como de otras características específicas de la pieza.

Nota: Los nombres de los parámetros distinguen entre mayúsculas y minúsculas.

 

Valores por defecto de los parámetros

Se definen valores por defecto para algunos parámetros, por lo que no es necesario definirlos para la mayoría de los dispositivos de almacenamiento. Por ejemplo, baseDeviceAddress y writeInstruction tienen valores por defecto de 0x50 y 0x02 respectivamente. Estos valores por defecto se han tomado de los valores típicos de estos parámetros. Para muchas piezas de memoria, los valores por defecto son correctos, por lo que no es necesario definir estos parámetros en el nodo <dispositivo>. Para aquellas partes cuyos valores de parámetros difieran de los valores por defecto, la especificación de este parámetro anula el valor por defecto.

Además, se pueden definir valores de parámetros por defecto específicos de un archivo definiendo el valor del parámetro en el nodo <por defecto>. Los parámetros definidos en el nodo <por defecto> anulan los valores por defecto normales. Al igual que con los valores por defecto normales, los valores por defecto específicos del archivo también se pueden sobrescribir en el nodo <dispositivo> para cada parte de memoria individual.

 

Tipos de parámetros

Hay cuatro tipos principales de parámetros de dispositivo: texto, booleano, entero y binario. Además, hay un parámetro, deviceAlgorithm, de tipo texto, para el que sólo se aceptan tres valores concretos.

Los parámetros "texto" pueden aceptar cualquier entrada de texto. Algunos ejemplos son NombreDelFabricante y DescripciónDelDispositivo, en los que se acepta cualquier valor de cadena permitido por XML.

Los parámetros "booleanos" admiten dos valores: verdadero o falso, sin distinguir mayúsculas de minúsculas. Ejemplos de parámetros booleanos son hasEraseAll y BusyBitPolarity.

Los parámetros "Entero" toman valores numéricos sin signo. Por defecto, los valores enteros se analizan como valores decimales. Si antepones al valor el prefijo 0x, el Centro Flash analiza el valor como un valor hexadecimal. Además, los valores enteros pueden definirse como multiplicación de dos valores con el símbolo *. (No se permiten espacios alrededor del símbolo *.) Por ejemplo, 16384, 0x4000, 16 * 1024, 0x10 * 0x400 y 0x10 * 1024 representan el mismo valor. Ejemplos de parámetros enteros son capacidad, writeInstruction y deviceBusyBit.

Los parámetros "datos binarios" representan una secuencia de valores de bytes. Cada valor de byte de la secuencia puede representarse con cualquier carácter permitido por XML o introducirse como un valor hexadecimal con el prefijo \ x. Por ejemplo, abc123, \ x20 \ x80 \ x14 y abc \ xff son entradas válidas para un valor de datos binarios.

 

Tipos de dispositivos de memoria

Hay tres tipos de dispositivos de almacenamiento compatibles con el Centro Flash. Éstos son: I2C EEPROM, SPI EEPROM y SPI Flash. Algunos parámetros de los dispositivos de memoria son comunes a los tres tipos de dispositivos de memoria, mientras que otros son específicos de las EEPROM I2C, otros son específicos de los dispositivos SPI (tanto EEPROM como dispositivos Flash) y algunos parámetros son específicos de los dispositivos Flash SPI.

3.3 Parámetros globales de los dispositivos de almacenamiento

La siguiente es una tabla de parámetros comunes a todos los dispositivos de almacenamiento. Todos estos parámetros deben definirse para cada unidad de almacenamiento.

ParámetroTipoPor defectoDescripción
dispositivoAlgoritmotexto El tipo de dispositivo de memoria. El algoritmo de programación se determina en función del valor de este parámetro. Los valores admitidos son i2c eeprom, spi eeprom y spi flash, que no distinguen entre mayúsculas y minúsculas.
deviceNametexto El nombre del dispositivo de almacenamiento. Ten en cuenta que el nombre del dispositivo debe ser único; los dispositivos con nombres duplicados provocarán un error.
descripción del dispositivotexto Una descripción larga del dispositivo. Aparece cuando se selecciona el dispositivo de almacenamiento durante la selección de destino. Normalmente incluye el nombre del fabricante, el nombre del dispositivo, el tamaño de la memoria y el tipo de dispositivo.
manufacturerNametexto El fabricante del dispositivo de almacenamiento.
capacidadint Tamaño del dispositivo en bytes. El valor no debe ser cero.
maxBitrateint La tasa de bits máxima que la unidad puede utilizar para comunicarse con el adaptador de programación. El valor no debe ser cero. Si hay varios niveles de velocidad para la parte de memoria, se recomienda la velocidad de bits más alta para este parámetro.
direcciónAnchoint1El número de bytes del campo de dirección de la memoria cuando se lee del dispositivo y se escribe en él. Si la dirección tiene bits de desbordamiento, se añaden automáticamente a la dirección del dispositivo (I2C) o al código de comando (SPI). El valor no debe ser cero.
writeSizeint El número de bytes por escritura. Para piezas con tamaños de página variables, introduce el tamaño de la página más pequeña. El valor no debe ser cero.
writeTimeint El número de microsegundos necesarios para completar una operación de escritura en una sola página. Utiliza el valor mínimo o típico, ya que el Centro Flash puede sondear el dispositivo para esperar un tiempo adicional si es necesario. Si hay varios niveles de velocidad para la parte de almacenamiento, se recomienda utilizar el tiempo más bajo para este parámetro. El valor no debe ser cero.

3.4 Parámetros de los dispositivos de memoria I2C

La siguiente es una tabla de parámetros específicos de los dispositivos de memoria I2C EEPROM.

ParámetroTipoPor defectoDescripción
direcciónDelDispositivoBaseint0x50La dirección del dispositivo base para los dispositivos I  2 C .
pageShiftint0Los dispositivos cuya capacidad supere el número total de bits proporcionados en su palabra de dirección utilizan bits de la I  2 C -dirección del dispositivo para direccionar completamente los datos. El parámetro pageShift especifica la posición del bit menos significativo de estos bits de dirección en la I  2 C -dirección del dispositivo. Este parámetro es normalmente cero, pero la familia Microchip 24xx1025 es una de las que requiere este parámetro.
autoPageUpdateboolTRUELos dispositivos cuya capacidad supera el número total de bits proporcionados en su palabra de dirección utilizan bits de la dirección del dispositivo I  2 C  para direccionar completamente los datos. El parámetro autoPageUpdate especifica si el contador de direcciones interno del dispositivo puede superar automáticamente los límites de página para que no sea necesario cambiar estos bits durante una lectura secuencial. Este parámetro es siempre falso, si pageShift no es cero.

3.5 Parámetros requeridos de los dispositivos de memoria SPI

La siguiente es una tabla de parámetros requeridos específicos tanto para los dispositivos EEPROM SPI como para los dispositivos Flash SPI. Todos estos parámetros deben definirse para todos los dispositivos de memoria SPI. Sin embargo, para muchos de estos parámetros los valores por defecto son los valores correctos

ParámetroTipoPor defectoDescripción
readStatusRegisterInstructionint0x05La instrucción para leer el registro de estado del dispositivo. Este es el registro que contiene el bit de ocupado y los bits de protección de bloque. Debe estar activado para habilitar el sondeo.
deviceBusyBitint0x01Los bits del registro de estado que indican que se está realizando una operación. Este parámetro se utiliza como máscara de bits en el registro de estado para determinar el estado ocupado. Debe estar activado para habilitar el sondeo.
PolaridadBitOcupadoboolFALSELa polaridad del bit ocupado en el registro de estado.  Se establece enverdadero   , si el bit ocupado tiene una polaridad invertida, lo que significa  1 listo.
leerInstrucciónint0x03La instrucción que inicia una operación de lectura desde el dispositivo. Para dispositivos con una instrucción de lectura rápida, se debe sobrescribir el valor por defecto.
readDummyBytesint0El número de bytes de relleno a insertar entre la readInstruction y la salida de datos del dispositivo. Normalmente, este parámetro sólo debe establecerse para dispositivos flash con una instrucción de lectura rápida.
escribirInstrucciónint0x02La instrucción para escribir datos en el dispositivo.
writeEnableInstructionint0x06La instrucción enviada para habilitar la escritura en el dispositivo. Se pone a 0 si el dispositivo no tiene ninguna instrucción de habilitación de escritura.
writeDisableInstructionint0x04La instrucción enviada para salir del modo de escritura. Se pone a 0 si el dispositivo no tiene una instrucción de desactivación de escritura.
writeEnableBitsint0x02Los bits del registro de estado que indican la ejecución correcta de la writeEnableInstruction .

3.6 Parámetros opcionales de los dispositivos de memoria SPI

A continuación se presenta una tabla de parámetros opcionales específicos tanto de los dispositivos EEPROM SPI como de los dispositivos Flash SPI. Aunque estos parámetros no son necesarios, su definición mejora la capacidad del Centro Flash para detectar errores durante el proceso de programación.

ParámetrosTipoPor defectoDescripción
readDeviceIdInstructionint Para los dispositivos que lo admiten, la instrucción para leer el ID del dispositivo.
iD de dispositivo esperadoDatos binarios
_
 El código ID esperado de la instrucción para leer el ID del dispositivo. La definición de este parámetro sólo es necesaria si también readDeviceIdInstruction está definida.
advancedAddressingEnableInstructionint Para dispositivos de memoria grandes con operaciones de lectura, programación y borrado retrocompatibles, esta instrucción habilita el modo de direccionamiento avanzado para estas operaciones retrocompatibles. Para dispositivos con nuevas instrucciones ampliadas de lectura, programación y borrado, especifica estas instrucciones en lugar de este comando.
writeBufferInstructionint Para los dispositivos de memoria que tienen un proceso de programación de páginas en dos partes, define la instrucción para escribir datos en un búfer de memoria. Para ver ejemplos de partes de memoria que utilizan búferes de memoria para la programación de páginas, consulta la familia de dispositivos Flash SPI AT45DBxxxx de Atmel.
writeAutoAddressIncrementInstructionint Para los dispositivos de memoria SST que tienen un proceso de programa de Incremento Automático de Dirección (AAI), define la instrucción de programa AAI.
writeAutoAddressIncrementSizeint Para los dispositivos de almacenamiento SST que tienen un proceso de programa de Incremento Automático de Dirección (AAI), define el número de bytes que siguen a cada instancia de la instrucción AAI. El valor debe ser distinto de cero si está definida la instrucción de programa AAI.
writeAutoAddressIncrementTimeint Para los dispositivos de almacenamiento SST que tienen un proceso de programa de Incremento Automático de Dirección (AAI), define el número de microsegundos necesarios para completar cada iteración de escritura AAI. A diferencia de writeTime este valor debe ser el tiempo máximo de escritura, no el mínimo. El valor debe ser distinto de cero si se define la instrucción de programa AAI.
writeStatusRegisterInstructionint0x01La instrucción para escribir en el registro de estado. Se pone a 0 si el dispositivo no tiene ninguna instrucción para escribir en el registro de estado.
writeStatusRegisterEnableInstructionint La instrucción para habilitar la escritura en el registro de estado. Define este parámetro para las piezas que tienen instrucciones separadas para habilitar la escritura y para habilitar el registro de estado de escritura. Si no se define este parámetro, el centro flash utiliza la instrucción definida para writeEnableInstruction .
writeStatusRegisterTimeint5000El número de microsegundos necesarios para completar una escritura en el registro de estado. Utiliza el valor mínimo o típico, ya que el Centro Flash puede sondear el dispositivo para esperar más tiempo si es necesario. Si hay varios niveles de velocidad para la parte de memoria, se recomienda el tiempo más bajo para este parámetro.
deviceConnectedBitsint Los bits del registro de estado que siempre se establecen en   1 . Se establece con el parámetro "máscaraDispositivoConectado" para detectar dispositivos SPI no conectados. Para más información sobre este parámetro, consulta la sección siguiente.
máscaraDispositivoConectadoint Los bits del registro de estado que tienen un valor fijo. Se utiliza con el parámetro "dispositivoBitsConectados" para detectar dispositivos SPI no conectados. Si no se define, se utiliza el valor de deviceConnectedBits. Para más información sobre este parámetro, consulta la sección siguiente.
blockProtectBitsint0x9cDetermina qué bits del registro de estado indican que los bloques del dispositivo o el registro de estado están protegidos contra escritura. Para más información sobre este parámetro, consulta el siguiente apartado.
Modo de reposoint0Establece el modo SPI (0-3).
0 : Modo 0. Los datos se capturan en el flanco ascendente del reloj (transición de bajo a alto) y los datos se pasan en un flanco descendente (transición de alto a bajo).
1 : Modo 1. Los datos se capturan en el flanco descendente del reloj y se pasan en un flanco ascendente.
2 modo 2: Los datos se capturan en el flanco descendente del reloj y se pasan en un flanco ascendente.
3 : Modo 3: Los datos se capturan en el flanco ascendente del reloj y se pasan en un flanco descendente.
spiBitorderboolTRUEEstablece el orden de bits SPI. La opción bitorder se utiliza para especificar si se desplaza primero el LSB o el MSB. Se establece en true para el MSB.
spiSSPolaridadboolTRUEEstablece la polaridad SS, es decir, la polaridad de salida en la línea SS. Establecer a "true" para activo bajo.

Bits conectados al dispositivo y máscara

En el protocolo SPI, no hay un método predefinido para que un dispositivo esclavo SPI acuse recibo de los comandos del maestro SPI. Por lo tanto, el maestro SPI podría enviar un comando al esclavo, pero el maestro podría no tener un método para determinar si un dispositivo esclavo se ha conectado para recibirlo. Sin embargo, si un dispositivo de memoria SPI tiene bits en el registro de estado que siempre tienen un valor fijo, se puede utilizar el registro de estado de Flash Center para determinar si hay o no conexión con el dispositivo.

Los parámetros deviceConnectedBits y deviceConnectedMask se utilizan para definir estos bits en el registro de estado. El parámetro deviceConnectedMask indica a Flash Center qué bits tienen un valor fijo, y deviceConnectedBits especifica cómo de alto es el valor de estos bits. Cuando se definen estos parámetros para un dispositivo de almacenamiento, el Centro Flash comprueba estos bits en busca de una conexión con el dispositivo de destino tanto mientras el dispositivo de almacenamiento está inactivo como mientras una operación de almacenamiento, como un programa de páginas o una operación de borrado de sectores, está en curso .

Si deviceConnectedBits está definido pero deviceConnectedMask está sin definir o es 0, el Centro Flash utiliza el valor de deviceConnectedBits para deviceConnectedMask. Esto hace que el Centro Flash sólo pueda detectar los bits del registro de estado que tienen un valor fijo de 1, pero no los bits que tienen un valor fijo de 0.

Si tanto deviceConnectedBits como deviceConnectedMask son indefinidos o 0, el registro de estado no se utilizará para detectar una conexión con el dispositivo de almacenamiento de destino.

Nota: Algunos dispositivos de memoria devuelven resultados diferentes cuando se lee el registro de estado durante una operación de memoria. Por ejemplo, la familia Atmel AT25xxxx devuelve b1111_1111 mientras se está realizando una operación de memoria. Como ninguno de los bits del registro de estado tiene el mismo valor mientras las piezas están inactivas, deviceConnectedBits y deviceConnectedMask no están definidos para estas piezas, y el registro de estado no se utiliza para determinar una conexión con las piezas.

 

Bits de protección de bloque

La mayoría de las partes de memoria SPI tienen un sistema para proteger partes de la memoria de los cambios. El parámetro blockProtectBits indica a Flash Center qué bits del registro de estado indican que la protección de bloque está activada. Normalmente, un dispositivo de almacenamiento tiene un bit en el registro de estado para indicar que la protección de bloque está activada, así como bits para indicar qué bloques están protegidos. Todos estos bits deben estar contenidos en el parámetro blockProtectBits.

Si alguno de los bits de protección de bloque del registro de estado es distinto de cero al inicio de una operación de borrado o escritura, el centro flash escribirá 0 en el registro de estado para borrar la protección de bloque. Si el comando de escritura en el registro de estado no está definido o la escritura en el registro de estado no borra los bits de protección contra bloqueos, se muestra un mensaje de error y se termina la operación.

Para las unidades cuyos bits de protección contra bloqueos no se borran escribiendo en el registro de estado (por ejemplo, tienen instrucciones especiales para borrar la protección contra bloqueos), la protección contra bloqueos debe borrarse antes de utilizar el Centro Flash para programar la unidad.

3.7 Parámetros de los Dispositivos de Memoria SPI Definibles por el Usuario

A continuación se muestra una tabla de parámetros opcionales definibles por el usuario disponibles tanto para los dispositivos SPI EEPROM como para los dispositivos SPI Flash. Dos campos de transacción de usuario permiten a los usuarios definir los datos de transacción SPI que Flash Center envía antes de cada operación de lectura, escritura y borrado.

ParámetrosTipoPor defectoDescripción
transacción de usuario1Datos binarios
_
 Transacción definible por el usuario que se envía antes del inicio de cada operación de lectura, programación o borrado.
transacciónusuario2Datos binarios
_
 Transacción definible por el usuario enviada antes del inicio de cada operación de lectura, programación o borrado.
userTransaction1HabilitarEscrituraboolFALSEPoner a true   para enviar la writeEnableInstruction antes de enviar userTransaction1 .
userTransaction2HabilitarEscrituraboolFALSEEstablececomo verdadero   para enviar la writeEnableInstruction antes de enviar de userTransaction2 .
userTransaction1Horaint El número de microsegundos necesarios para completar de userTransaction1 . Utiliza el valor mínimo o típico, ya que el Centro Flash puede sondear el dispositivo para esperar más tiempo si es necesario. Si hay varios niveles de velocidad para la parte de memoria, se recomienda el tiempo más bajo para este parámetro.
userTransaction2Timeint El número de microsegundos necesarios para completar desde userTransaction2 . Utiliza el valor mínimo o típico, ya que el Centro Flash puede sondear el dispositivo para esperar un tiempo adicional si es necesario. Si hay varios niveles de velocidad para la parte de almacenamiento, se recomienda el tiempo más bajo para este parámetro.

Notas sobre las transacciones definibles por el usuario

Los bytes especificados en los dos campos userTransaction se envían sin cambios por el bus SPI. El byte de instrucción y los demás datos deben combinarse en un solo campo userTransaction. Si la operación proporcionada requiere una habilitación de escritura (por ejemplo, la programación de un registro), utiliza los campos booleanos de habilitación de escritura.

El siguiente ejemplo muestra la programación de un registro de configuración no volátil con el comando 0xB1, los datos requeridos 0xFFFF, WREN y el tiempo medio de escritura de 0,2 segundos.

 <userTransaction1> <userTransaction1> <userTransaction1> <userTransaction1></userTransaction1> <userTransaction1WriteEnable>true</userTransaction1WriteEnable>. <userTransaction1Time>200000</userTransaction1Time>.

3.8 Parámetros de los dispositivos de memoria flash SPI

La siguiente es una tabla de parámetros específicos de los dispositivos de memoria flash SPI.

ParámetroTipoPor defectoDescripción
Instrucción de borradoint La instrucción que borra una parte de la unidad. Si la unidad tiene varios tamaños de borrado (para unidades con borrado de sectores y bloques), se recomienda especificar la instrucción para el tamaño de borrado más pequeño.
TamañoBorradoint El tamaño de la instrucción de borrado especificada por instrucción de borrado en bytes . Si la unidad tiene varios tamaños de borrado (para unidades con borrado de sectores y borrado de bloques), se recomienda especificar el tamaño más pequeño. El valor no debe ser cero.
Tiempo de borradoint El número de microsegundos necesarios para completar la operación de borrado especificada en eraseInstruction  . Utiliza el valor mínimo o típico, ya que el Centro Flash puede sondear el dispositivo para esperar más tiempo si es necesario. Si hay varios niveles de velocidad para la parte de memoria, se recomienda el tiempo más bajo para este parámetro. El valor no debe ser cero.   
hasEraseAllboolFALSESi se establece como verdadero   , significa que el dispositivo admite la instrucción de borrado de chip y eraseAllInstruction y eraseAllTime deben estar definidos.
InstrucciónBorrarTodoint La instrucción para realizar una operación de borrado completo del chip.
TiempoDeBorradoint El número de microsegundos necesarios para realizar la operación de borrado del chip. Utiliza el valor mínimo o típico, ya que el Centro Flash puede sondear el dispositivo para esperar más tiempo si es necesario. Si hay varios niveles de velocidad para la parte de memoria, se recomienda el tiempo más bajo para este parámetro. El valor no debe ser cero.
borrarAntesDeEscribirboolTRUESi el valor se establece en "false" , Flash Center no emitirá comandos de borrado antes de un comando de escritura. Esto es útil para dispositivos como la familia Atmel AT45DBxxxx de dispositivos Flash SPI, ya que admiten un único comando que borra y programa una página de memoria.

3.9 Parámetros del modo E/S SPI

La siguiente es una tabla de parámetros específicos de los dispositivos de memoria flash SPI.

ParámetroTipoPor defectoDescripción
ioModeAddressint1El modo de E/S SPI se utiliza para transmitir el campo de dirección de la transacción SPI. Los valores posibles son 0, 2 ó 4.
ioModeDataInint1El modo E/S SPI se utiliza para recibir el campo de datos de la transacción SPI y los valores posibles son 0, 2 ó 4.
ioModeDataOutint1El modo de E/S SPI se utiliza para transmitir el campo de datos de la transacción SPI y los valores posibles son 0, 2 ó 4.

Otros artículos

TotalPhase-Blog-Bild

Adición de un IC a Total Phase Flash Center

El software Flash Center permite la adición de nuevos chips simplemente ampliando la biblioteca basada en XML.

TotalPhase-Blog-Bild

Programación de una EEPROM SPI con la plataforma Promira en Linux

Este artículo describe cómo ejecutar los comandos en el modo de línea de comandos en serie del centro de comandos.

TotalPhase-Blog-Bild

Programación de una EEPROM I2C con Promira

La programación de dispositivos de almacenamiento I2C es un caso de uso común para la plataforma serial Promira™ con aplicaciones I2C Active Level 1-2.

TotalPhase-Blog-Bild

Herramientas I2C, SPI y USB para desarrolladores de AVR

Las herramientas USB adecuadas para AVR y AVR32, así como para buses serie para microcontroladores AVR.