¿Cómo elegir correctamente un recuerdo?

Estoy a punto de elegir un chip para almacenar un archivo mp3 (algunos meses) en él. Pero realmente no sé cómo elegir bien ese recuerdo. ¿Debo optar por una memoria flash? EEPROM? ¿Y? ¿Ni?

¿Qué tipo de parámetros debo considerar en mi elección?

Mientras consultaba la tienda en línea de un distribuidor, descubrí que la comunicación SPI se usa ampliamente en lugar de I2C o UART. ¿Hay alguna razón para eso?


La memoria almacenará solo un archivo de unos pocos meses. La idea del diseño es cargar una parte del archivo en el MSP430 (el µC que usaré), procesar los datos y luego enviarlos a un DAC. Dado que los archivos MP3 tienen una frecuencia de muestreo de 44100 Hz, creo que la velocidad de transferencia debe ser 4 o 5 veces mayor. Nunca uso una memoria o incluso una conversión de audio (de Digital o Analógico), por lo que no sé exactamente la velocidad requerida.

Una pregunta demasiado amplia. ¿Qué tipo de procesador? ¿Ejecutando qué tipo de software? ¿Número de archivos y tamaño por archivo? ¿Qué tan rápido necesitas poder copiarlos? En cuanto a por qué SPI en lugar de I2C: los UART están diseñados en torno a bytes únicos de datos, no a transferencias masivas, I2C es lento. SPI es mucho más rápido y reduce los gastos generales. Y luego están todas las opciones de conexión no serial.
@Andrew Déjame editar la pregunta para traer más información entonces
¿Descodificarás el MP3 en el MSP340?
@RogerRowland Si es posible sí, si no, iré por el TM4C1294
Yo lo haría totalmente diferente. En lugar de usar un chip, apuntaría a la tarjeta SD, MSP430 tiene una interfaz para él, y debería haber controladores de software disponibles para acceder a él ti.com/lit/an/slaa281b/slaa281b.pdf . De esta manera tendrá medios extraíbles, gestión de desgaste de almacenamiento flash independiente.
@Anónimo Esa interfaz de la tarjeta SD usa SPI en lugar de la interfaz SD completa de 4 bits de ancho. Esto tiene la ventaja de que puede copiar el archivo en la tarjeta usando una PC, pero la desventaja de que luego necesita usar un sistema de archivos FAT con la sobrecarga de software que eso implica.
@Anónimo Nunca escuché de esa interfaz. Le daré un vistazo :)
@Andrew De acuerdo, es más complejo, pero antes o después, OP llegará a él de todos modos. Considere elm-chan.org/fsw/ff/00index_e.html , no lo usé yo mismo (escribo mis propios controladores), pero veo personas que hacen preguntas y dan comentarios positivos al respecto.
@Anónimo De acuerdo, una tarjeta SD de formato FAT es la forma en que yo también iría, suponiendo que la sobrecarga no sea un problema (si quiere decodificar archivos MP3, necesitará toda la RAM y la potencia de la CPU que el MSP puede darle). Si el tamaño, la robustez mecánica (las tarjetas SD pueden caerse) o la sobrecarga de CPU/RAM son un problema, entonces un chip SPI FLASH soldado puede ser una mejor opción.
@M.Ferru ¿Alguna razón específica por la que opte por este método de reproducir un MP3 desde flash? Hay chips de reproducción de MP3 dedicados que harían su vida mucho más fácil si eso es todo lo que necesita hacer. Algunos incluso tienen un flash incorporado para almacenar el audio.
@Andrew Acabo de obtener mi título de EE este año, realmente no sé mucho sobre ese tipo de chip. Pensé que leer datos de la memoria y luego calcular con µC era la forma más fácil. Pero si existe este tipo de chip, lo usaré. Es un proyecto de casa, así que no tengo mucho que encontrar para él. Aunque tal chip puede no ser tan caro.
Ejemplo vlsi.fi/en/products.html de Finlandia, seleccione cualquiera que se ajuste a sus necesidades y estudie las hojas de datos. Con un solo núcleo, la lectura de RAM y la ejecución de la computación pueden no ser posibles debido a un solo subproceso (a menos que haya una rutina de interrupción especial), para hacer cosas en paralelo, es posible que necesite FPGA o más de un núcleo. Ah, sí, y por cierto, estos chips tienen una licencia de MP3 con ellos; en su situación puede no ser importante, pero vale la pena tenerlo en cuenta.
@M.Ferru He usado esto antes: coolcomponents.co.uk/en/audio-fx-mini-sound-board.html antes, combinándolo con developer.mbed.org/platforms/mBuino para control (I' d uso un microBit en estos días) y una serie de LED blancos hice una máquina de truenos y relámpagos bastante efectiva. También hay dispositivos basados ​​en tarjetas SD más baratos como este: coolcomponents.co.uk/en/audio-sound-breakout-wtv020sd.html
¿Estás seguro de que el MSP puede decodificar MP3 en tiempo real?
"Dado que el archivo MP3 tiene una frecuencia de muestreo de 44100 Hz" - incorrecto, un archivo wav estándar normalmente puede tener una frecuencia de muestreo de 44100 Hz (es decir, calidad de CD), pero un mp3 no tiene una frecuencia de muestreo porque organiza el sonido de una manera totalmente diferente. forma. Puede tener una tasa de transmisión máxima de 320 kbps, pero puede ser tan baja como 16 kbps.
Utilice un chip flash SPI común (por ejemplo, de microchip ). Un archivo MP3 tiene como máximo unos 320 kbit/s de datos. Cualquier chip que pueda producir significativamente más es adecuado, si puede encontrar uno tan lento. Unos pocos Mhz de reloj de transferencia serán suficientes.
@JimmyB No, no estoy seguro de que el MSP pueda manejarlo. Probaré a ver. Si no funciona, usaré un procesador arm cortex m4

Respuestas (2)

Basándome en la discusión, permítanme compilar la respuesta:

  1. La solución EEPROM/flash parece ser la más fácil, y MSP430 tiene una interfaz incorporada para ellos, pero hay varios inconvenientes: deberá implementar el manejo/corrección manual de errores; el chip no es extraíble; y finalmente puede desgastarse (es posible que deba implementar elementos de nivelación de desgaste).
  2. Recomiendo centrarse en la arquitectura ligeramente diferente:

    • use la tarjeta SD como almacenamiento a través de SPI; realizará todas las tareas de bajo nivel por usted, es extraíble y está diseñado para reescrituras frecuentes y, en general, más conveniente;
    • sin embargo, deberá implementar el manejo del sistema de archivos del volumen. Me encontré con el módulo de sistema de archivos FAT genérico de Elm-Chan con código de muestra para controlar MMC/SDSC/SDHC (FatFs), no lo usé yo mismo, pero escuché comentarios positivos al respecto. ; parece ser compatible con su MCU;
    • puede considerar usar un IC especial para la decodificación de MP3: liberará la potencia informática de la MCU para algo más útil que hacer la decodificación de MP3. Conozco VLSI Oy de Finlandia, estoy seguro de que encontrará más fabricantes (por ejemplo, a través de Digikey). Tenga en cuenta que estos chips tienen MP3 y otra licencia de códec con ellos, por lo que estará legalmente limpio a este respecto, si en algún momento decide que su dispositivo es bueno para venderlo en el mercado.

Editar: @AndrewMorton señaló el comunicado de prensa de MP3 que indica que "el programa de licencias para ciertas patentes relacionadas con mp3 ... ha sido rescindido", si sigue el enlace adicional, puede ver

Sin embargo, el fin del programa de licencias de mp3 no significa automáticamente que toda la tecnología de mp3 esté disponible ahora sin licencia. Además de las patentes principales de mp3 incluidas en el programa de licencias, es posible que aún existan algunas patentes específicas de implementación (o patentes para otras mejoras funcionales) que no hayan expirado. Por lo tanto, los fabricantes tendrán que verificar primero la situación con respecto a sus productos previstos antes de incluir mp3.

Por lo tanto, todavía podría haber un riesgo legal.

@AndrewMorton tienes razón, modificó ligeramente la respuesta.

A la hora de elegir una memoria puedes tener varias especificaciones.

  • Tipo. Volátil/no volátil.
  • Tamaño. cuantos pedacitos
  • Velocidad. Por ejemplo: Escribir RAM será más rápido que un FLASH/EEPROM.
  • Resistencia. Cuántos ciclos de escritura.
  • Interfaz. ¿Qué tan rápido para leer/escribir?
  • Precio. En grandes cantidades con datos de escritura de una sola vez, la ROM puede ser más barata.

Desea almacenar varios MB de MP3 y desea almacenarlos a largo plazo. Probablemente no lo cambie a menudo.
Siguiendo la lista anterior, desearía: memoria no volátil programable pocas veces, de lectura rápida y grande.

Esto excluye EEPROM, FRAM y SRAM (con respaldo de batería), ya que todas ellas son pequeñas memorias que están diseñadas para poder escribir con frecuencia (alta resistencia). Cualquier RAM es de lectura y escritura aleatoria, la EEPROM se puede borrar por palabra o página, toma algo de tiempo, pero aún es flexible de usar.

FLASH, por otro lado, tiene un borrado lento, ya que involucra páginas enteras, pero aún así se lee rápido y es económico hacerlo en grandes cantidades (tamaño). No puede volver a escribir FLASH indefinidamente, como puede hacerlo con RAM o FRAM.
EEPROM técnicamente sigue siendo FLASH, pero luego se puede borrar byte o palabra.

Necesitarás FLASH. Para reproducir un MP3 necesitará algo de rendimiento. Aquí es donde entra en juego la interfaz. I2C será el más lento, el SPI único es más rápido, el SPI cuádruple es aún mejor. Y el flash paralelo será lo más rápido que pueda obtener.

Creo que puedes hacer lo que quieras con un chip SPI FLASH. Como una tarjeta SD. Pero también podría usar una solución de chip flash en el mercado. Siempre y cuando puedas interconectarlo.

Si no me equivoco, la tarjeta eMMC ya no es compatible con la interfaz SPI. En cambio, requieren una interfaz MMC especial.
@nickagian tienes razón.