Cómo obtener máx. ¿Rendimiento de SPI FLASH de memoria?

0

Tengo una serie de arreglos que se almacenarán en un FLASH IC externo.

Información importante sobre cómo se leen los datos:

  1. Los datos de cada matriz se leen en orden de índice ascendente. Así que podría leer el índice 0, 1, 10, 12 ... pero nunca 0, 1, 12 , 10.
  2. Las matrices son diferentes en longitud.
  3. Después de leer la matriz hasta su final, comienza de nuevo.

Durante el funcionamiento normal, se leerán unos 353,600 bytes por segundo desde el FLASH al MCU. Con SPI Clk @ 4MHz esto tomaría 88.4msec, lo que deja tiempo para que la MCU haga otras cosas.

De hecho, hay un byte de comando + 3 bytes de dirección encima de cada transferencia. Esta sobrecarga hace que la transferencia no sea realista.

La mayoría de estos dispositivos SPI FLASH, como el W25X40CLSVIG TR que estoy a punto de usar, tienen una función de hardware llamada retención. Uno puede detener la transferencia y reanudarla sin tener que reenviar los comandos & dirección.

Si asumimos que hay 10 arreglos, uno podría organizar los datos en el FLASH de la siguiente manera:

array0[0] ,array1[0]..., array9[0], array0[1], array1[1]...

Esto resolvería algunos de los problemas porque tendré una sobrecarga mucho menor, pero después del primer paso de la matriz más corta, volveré a enfrentar el mismo problema.

¿Alguien tiene alguna sugerencia sobre cómo implementar una solución que pueda hacer posible la transferencia?

    
pregunta user34920

0 respuestas

Lea otras preguntas en las etiquetas