En la década de 1970, Texas Instruments tenía una gama de productos ahora descontinuada que llamaron GRAM (y leía solo GROM equivalente) que era básicamente un chip de memoria estándar con dirección y datos multiplexados en 8 pines. Comenzaría una operación enviando al chip dos bytes de dirección y luego, cada vez que pulsara el pin de lectura o escritura, leería o escribiría un byte usando el bus, luego incrementaría el contador interno de direcciones. El resultado fue un chip de memoria que era casi tan rápido (al menos para operaciones de acceso secuencial) como un chip de memoria paralelo estándar, pero que solo necesita un paquete de 16 pines, en lugar de los paquetes de 28 pines que necesitaban otros recuerdos similares del día .
Hoy en día, para aplicaciones similares, es muy probable que use la memoria serial con acceso SPI, pero el problema es que tales memorias son bastante lentas (la mayoría tiene un rendimiento máximo de aproximadamente 20Mbit / s; algunas funcionan tan rápido como el doble de eso, pero no he encontrado nada más rápido que eso), mientras que un equivalente moderno de esas partes de TI podría ser mucho más rápido que eso, permitiendo fácilmente el acceso a más de 100 Mbit / s.
¿Existe algo que todavía esté en producción y que se comporte de manera similar a esos chips TI? Lo más cercano que puedo encontrar hoy son piezas personalizadas, por ejemplo, el VLSI VS23S010D , que combina un dispositivo de memoria que admite el tipo de interfaz que estoy buscando junto con un controlador de pantalla, que pone el número de pines de hasta 48 pines. Idealmente estoy buscando algo en un paquete de 14 o 16 pines (creo que 14 es el mínimo realista: 2x de potencia, 8x de datos, reloj, selección de dirección, lectura de bytes, escritura de bytes).
Respuestas:
La solución estándar apropiada es probablemente QSPI (también llamada QPI, o también SQI). Es algo así como una extensión de la interfaz SPI, pero usa cuatro bits de datos (quad, de ahí la Q en el acrónimo) (IO0 / IO1 / IO2 / IO3) en lugar de una sola señal para cada dirección (MISO / MOSI).
Por lo tanto, los chips son muy pequeños (normalmente SO-8) y la interfaz es muy eficiente: debe enviar la dirección para cada comando de lectura o escritura, pero luego puede leer varios bytes en ráfaga, cuatro bits en cada ciclo de reloj. La velocidad máxima del reloj es típicamente ~ 104MHz para flash. Se puede hacer aún más rápido usando una señalización de velocidad de datos dual (cuatro bits en cada borde del reloj, tanto ascendente como descendente: por lo tanto, ocho bits en cada ciclo de reloj, por lo general, los chips flash alcanzarán un máximo de 80MHz en este modo).
Las hojas de datos del chip proporcionarán todos los detalles sobre el significado / uso exacto de cada señal. Para ilustrar, aquí hay un diagrama de tiempo de comando de lectura (en modo de velocidad de datos única, y tomado de esta hoja de datos ):
Aquí, verá que necesita 14 ciclos de reloj para obtener el primer byte (a 80MHz, significa un tiempo de acceso de 175ns). Pero si necesita más bytes, simplemente agregue 2 ciclos por byte (25ns). Por lo tanto, leer en ráfaga lo hará mucho más rápido que un típico chip paralelo de 70ns o incluso 45ns.
Puede encontrar fácilmente piezas de flash NOR de muchos fabricantes, utilizando esta interfaz. Tenga en cuenta que sus rendimientos (velocidad máxima, recuento de ciclos ficticios) y características (E / S cuádruple o solo E / S dual, compatibilidad con DDR) variarán, así que consulte la hoja de datos.
La RAM es un poco más difícil de encontrar, pero aún está disponible, especialmente de Microchip (por ejemplo, 23LC512 ), ON semi (por ejemplo, N01S818HA ) e ISSI (por ejemplo, IS62WVS2568GBLL-45 ). Sin embargo, son más lentos que el flash. Pero el ISSI que sugiero anteriormente todavía sube a 45MHz (velocidad de datos única) con aparentemente un ciclo de lectura mínimo que necesita 11 relojes para el primer byte. O dicho de otra manera: 200ns + 45ns por byte (rendimiento de 180Mbit / s), lo cual no está mal y excede la velocidad GRAM que indicó.
Además, tenga en cuenta que muchas MCU de gama alta (de NXP, ST, ...) admiten esta interfaz en hardware.
fuente
Estoy publicando esto como otra respuesta porque es algo totalmente diferente.
Hay otra interfaz, pero menos común, que también se adapta muy bien a su descripción: HyperBus , diseñada por Cypress (es propietaria).
Este usa DDR a velocidades mucho más altas (hasta 166MHz) y un bus de 8 bits. Entonces puede alcanzar 2666 Mbit / s (¡guau!), Lo que deja a QSPI muy por detrás. También está diseñado para DRAM de mayor densidad en lugar de SRAM, por lo que puede encontrar chips de 8M x 8 (frente a 256k x 8 para la SRAM QSPI ISSI mencionada en la otra publicación). Utiliza solo 12 señales (excluidos los voltajes de alimentación).
Aquí hay un producto HyperRAM de ISSI: IS66WVH8M8ALL . También hay productos HyperFlash que puedes encontrar.
Pero estamos en otra categoría de productos. Es más costoso, menos fácil de obtener, los chips suelen ser BGA y la interfaz es un poco más compleja (debido a la alta velocidad y DDR). Además, menos MCU admiten esto.
fuente