Almacenamiento masivo para aplicaciones integradas

¿Cuáles son mis opciones si necesito manejar cantidades relativamente grandes de datos en un procesador integrado? He encontrado almacenamiento alrededor de ~ 2-4 GB con un controlador SPI, pero estoy pensando en algo entre 10 y 100 GB.

¿Tarjeta uSD? o Flash QSPI...
¿Qué tipo de procesador integrado? Si es lo suficientemente capaz, un disco SATA haría el truco muy bien.
@MadHatter No sé por qué no investigué eso. Parece que uSD tiene SPI? ¿Llegaré al máximo después de la dirección de 32 bits?
@ uint128_t Algo así como un ARM-M4. ¿Probablemente tendría que hacer rodar mis propios controladores?
@RYS Oh. SATA es probablemente un no-go. Como dijo Duskwuff, SD/uSD/eMMC es probablemente su mejor opción. El almacenamiento masivo USB a través de una interfaz de host USB también podría ser una opción.

Respuestas (2)

Para ese rango de tamaños, tu mejor opción probablemente sea SD. Es razonablemente fácil interactuar con él, está disponible en grandes capacidades (¡hasta 256 GB ahora!) y se puede leer fácilmente desde una computadora si es necesario.

Dependiendo de sus necesidades exactas, eMMC también puede ser una opción. Es esencialmente una variante integrada de SD, con algunas ligeras modificaciones.

El flash NAND también es una opción, pero no lo recomendaría. La memoria flash NAND sin procesar no incluye ninguna capa de traducción, por lo que usted mismo tendrá que administrar la nivelación de escritura y los bloques defectuosos. Es un dolor enorme.

Se requiere precaución con SD. Las implementaciones pueden ser escamosas. La compatibilidad puede terminar siendo un dolor de cabeza monstruoso.

Dependiendo de lo que quiera hacer y de los procesadores que pueda usar, he usado con éxito, durante algunos años, tarjetas SD de hasta 64 Gb en una variedad de controladores basados ​​en ARM, incluidos

  1. frambuesa pi
  2. BeagleTablero
  3. STM32F de las gamas 100, 300 y 400.
  4. Varias placas de desarrollo Olimex STM32 con tarjeta SDC integrada
  5. Varios dispositivos Android, por ejemplo, Samsung Galaxy, Nexus

Las bibliotecas ST incluyen controladores sdCard y puede usar un periférico SDIO o un bus SPI. Puede usar 1 bit (SPI o SDIO) o 4 bits (SDIO)

Dado que está construyendo un dispositivo integrado, el rango de direcciones puede ser cualquier cosa, solo depende de cuántos bits envíe y la SD requiera en su dirección.
Incluso puede usar más de una tarjeta SD si controla la línea de selección usted mismo o usa varios periféricos SPI.

Nunca he encontrado que ninguno de estos sea escamoso.

No puede arrancar Raspberry desde dispositivos > 32 Gb sin leer y aplicar los parches en el sitio web de Raspberry. Esta es una limitación del sistema operativo, no una CPU divertida. (No he hecho esto con Beagle).

La Raspberry también llevará una memoria flash USB de 64 Gb. Cualquiera de los controladores compatibles con OTG también puede hacer esto.

Los PIC de 32 bits también deben ser capaces de usar una tarjeta SD o unidades flash USB.

Android abre un ámbito completamente nuevo donde se integran muchas funciones, solo necesito proporcionar un canal Bluetooth, wifi, USB o NFC. Supongo que también podrías ir a IOS.