Estoy desarrollando una aplicación de medición con la TI MSP430 y me gustaría escuchar algunas sugerencias sobre qué tipo de memoria puedo usar.
La idea es usarlo para iniciar sesión durante un tiempo determinado y luego descargar los datos a una PC cuando el dispositivo está conectado a través de USB. La estimación es almacenar hasta 5 MB de datos, cada muestra tiene alrededor de 25 bytes de datos.
¿Haría un simple chip EEPROM o hay algo mejor por ahí?
Respuestas:
He usado la serie AT45D de chips flash serie. Tienen un búfer SRAM interno para configurar una página para borrar / programar. Interfaz SPI para leer datos dentro y fuera.
fuente
5 MByte son muchos datos para almacenar. Leerlo a través de USB implica que está utilizando una de las partes nuevas con la interfaz del dispositivo USB incorporada. Si no, utilizará un convertidor de USB a serie (FTDI o similar) y estará limitado a la serie asíncrona. tasas de datos para leer los datos.
¿Ha considerado conectar una tarjeta de memoria SD al MSP, almacenar los datos en ella y luego mover la tarjeta a la PC para leer los datos almacenados? No he escrito una interfaz para este dispositivo, pero hay muchas que sí.
fuente
El flash serie es superior a EEPROM en esta aplicación. Atmel es una gran alineación . Su elección dependerá en gran medida de dos cosas: (1) Su necesidad de editar / sectorizar sus registros en el micro y (2) Su disponibilidad de RAM en el MSP430.
Flash, a diferencia de EEPROM, solo se puede escribir de 1 a 0. Cambiar los datos de 0 a 1 requiere borrar una sección de la parte, que generalmente solo está disponible para páginas o bloques de datos. Tendrá que almacenar esta página en la memoria RAM, borrar la página, hacer su edición en la RAM y luego volver a escribirla si desea cambiar algo.
La serie AT45D, como ya se ha señalado, ofrece una serie de partes que tienen memorias RAM en el chip para facilitar este proceso sin usar RAM en el microcontrolador.
Al final, toda la serie es compatible con clavijas, así que solo deja una huella de 8-SOIC (150mil), y luego puedes cambiar las partes si necesitas diferentes opciones más adelante.
fuente
Sugeriría la serie AT25D ya que parece un poco más fácil de usar que el AT45D. Aunque es un poco más lento y no ofrece tantas opciones de transferencia de datos o las memorias intermedias SRAM. Tiene la ventaja de ser menos costoso y sigue siendo lo suficientemente rápido para la mayoría de las aplicaciones, como el registro de datos.
Si necesita 5 MB de datos, es poco probable que una EEPROM funcione ya que generalmente vienen en paquetes de <1Mbit. Los chips flash de Atmel admiten hasta 64 mbit u 8 MB.
fuente
[Esto es en respuesta a los comentarios que siguen a la respuesta de Ian].
Una tarjeta SD es solo un dispositivo SPI, por lo que no es necesario un chip / interfaz. Otros protocolos incluyen una interfaz de 2 hilos (como I2C) y una interfaz de 4 hilos (con un CRC complejo), pero SPI es el más utilizado.
Hay una nota de solicitud de tarjeta SD disponible para el MSP430 de TI aquí . Es breve, pero incluye código de muestra. Maneja la lectura y escritura en varios sectores de la tarjeta SD, que puede ser todo lo que desee si no lo va a conectar a una PC. También mire estas implementaciones de Foust (recomendado) o Evans de MSU.
Una vez que tenga las funciones básicas para leer y escribir un sector, puede abstraer un sistema de archivos simple y personalizado a través de USB, o usar una biblioteca de sistema de archivos existente. FatFS , EFSL o DOSF son todas opciones para este último. Si la implementación de todas las funciones requeridas parece demasiado difícil, recuerde que todas menos unas pocas pueden / serán stubs.
Sin embargo, el sistema de archivos se abstraerá a través de su interfaz USB hasta cierto punto. Esto será más fácil si tiene una biblioteca de sistema de archivos real y su tarjeta está en un sistema de archivos legible, pero eso requiere trabajo. Si desea escribir su propio "Sistema de archivos" y guardar trabajo / tiempo / memoria para la implementación de USB, puede hacer que su definición sea tan simple e inflexible como el registro 1 comienza en 0x0, el registro 2 comienza en 0x10 0000, el registro 3 en 0x20 0000 y registre 4 en 0x30 0000. Luego, puede enviar estos datos a través de USB.
La interfaz USB puede ser tan compleja como desee, desde la interfaz en serie hasta el dispositivo de almacenamiento masivo.
fuente