Paso 1: ¿Qué es la memoria Flash SPI?
Voy a explicar esta parte siguiente dolorosamente rápido. Fue mi primer trabajo en Intel en el grupo de memoria flash en 1993 y mucho ha cambiado con la tecnología en los 20 años desde entonces, pero algunos conceptos permanecen constantes.
Memoria Flash es un tipo de memoria no volátil de almacenamiento de información basado en tecnología MOSFET. Volátil significa que el dispositivo retiene su valor cuando no está encendido.
MOSFET
Si no está familiarizado con Cómo funciona un transistor MOSFET, voy a intentar explicarlo en una frase: una placa de silicio con dos terminales en ambos extremos no conducir la electricidad si usted coloca una diferencia de potencial entre ellos, pero si palo otra pieza de metal de losa intermedia un dieléctrico entre él y luego se aplica una tensión a ese pedazo de metal crea un campo y corriente puede fluir entre los dos terminales. Los terminales son llamados la fuente y el drenaje, y el metal se llama a la puerta. Que es una explicación super sencilla que excava 50 años de la física cuántica, pero de un Michael Farady punto de vista, es razonablemente viable.
TRANSISTOR DE FLASH
Memoria Flash funciona por la voladura de un puñado de portadores de carga en el dieléctrico entre la puerta y el sustrato. Esto se denomina programacióny normalmente se hace con una tensión mucho más alta. Realmente daña el material y después de 100k ciclos de programa, la puerta se producirá un error. Para quitar la rom de portadores de carga del dieléctrico e igualmente alto voltaje, pero potencial inverso, tira de los portadores de la puerta. Esto se llama borrado.
Un poco de flash programado tiene valor 0 y un bit de borrado tiene valor 1, un borrar flash byte es 0xFF en hexadecimal. (Hoy en día, la memoria flash puede almacenar múltiples pedacitos por la célula mediante múltiples niveles de tensión, pero que es realmente complicado).
ARQUITECTURA DE FLASH
Por lo general, una memoria flash contiene una variedad gigante de transistores que puede ser programado individualmente, pero sólo borrados en grupos (sectores, bloques o la viruta entera). Esto es simplemente un efecto secundario de cómo funciona el circuito de borrado: borrado por bits requeriría demasiada densidad de metal y no es tan útil (en la práctica, borrando en trabajos más grandes trozos bien).
Puesto que es lento debido a la rampa que la tensión alta y todo el control que va junto con la programación de un solo transistor, flash generalmente es programado en páginas. Normalmente un dispositivo flash tendrá un pequeño búfer de página SRAM (256 bits) que el anfitrión primero se llenará rápidamente los datos, y luego el host envía un comando de escritura página, y el chip flash escribe todos los bytes de la página en un trabajo por lotes grandes. Este circuito de lote amortiza la latencia de escritura de inicio a través de un mayor número de bits. Ofreciendo dos o más búferes de página permite que el host a usar una técnica de doble buffer para ocultar la latencia de escritura del dispositivo flash.
SPI
La Interfaz periférica Serial es una invención brillante. Es una simple interfaz en serie que utiliza un chip select, un reloj, unas datos y datos hacia fuera. Hay muchas clases de dispositivos SPI, ya que es una interfaz muy popular, y todos los dispositivos SPI una biblioteca común: una vez que sabes cómo hablarle a un dispositivo SPI, usted puede hablar con cualquier dispositivo SPI.
La ventaja de SPI es la simplicidad de software, el código básicamente cambios de datos dentro y fuera de la DI y clavijas respectivamente, en el flanco ascendente de un reloj. Y el reloj es controlado por el anfitrión, que no requiere un circuito de reloj de lujo: las fases pueden ser tan asimétricas como quieras, siempre y cuando usted se adhiere a los requisitos de anchura mínima de ciclo del dispositivo.
SPI FLASH
Memoria SPI Flash simplemente combina lo mejor de ambos mundos. Tenga en cuenta que las tarjetas SD usan SPI así como de esta viruta discreta. ¡ Sorpresa! La interfaz de programación no es muy diferente, pero las instrucciones reales y tiempos diferencian.