Sugerencias de memoria para MSP430

9

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í?

Padu Merloti
fuente
1
Parece que tendrá el dispositivo encendido la mayor parte del tiempo que tenga datos válidos. ¿No es una SRAM con batería de respaldo más apropiada que una EEPROM (o mejor, Flash) entonces?
Federico Russo

Respuestas:

7

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.

Robert
fuente
5

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í.

uɐɪ
fuente
Sí, voy a usar una de las partes con USB incorporado. Lo ideal sería usar el protocolo MSC, pero eso agrega mucha complejidad a mi proyecto. Probablemente me conformaré con las tasas de transferencia de datos HID. Pensé en las tarjetas SD, pero eso agrega complejidades adicionales en el gabinete, ya que tiene que ser a prueba de salpicaduras de agua.
Padu Merloti
2
Sugeriría esta ruta, porque las tarjetas SD le darán la mayor cantidad de espacio de almacenamiento. Ahora dices 5 MB, pero si quieres más tarde, estás superando los límites del flash serie (y estás muy por encima de los límites de EEPROM). Si la impermeabilización es un problema (y tiene una opción USB adecuada, que parece ser el caso), puede leer su tarjeta SD a través de USB y colocarla dentro del gabinete permanentemente. He visto algunos diseños que soldaron la tarjeta SD a la placa (Nota: Esto funcionó, pero no lo recomiendo).
Kevin Vermeer
Lo tengo, tiene sentido. Consideraré esa opción. Gracias
Padu Merloti
¿Existe un chip especializado que se encargue de la interfaz SD e implemente el sistema de archivos o todavía tendría que implementar un sistema de archivos y la clase MSC usando el MSP430?
Padu Merloti
@ Padu: sentí que esto necesitaba un poco más de espacio y formato que un comentario, así que agregué mi respuesta como respuesta.
Kevin Vermeer
3

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.

Kevin Vermeer
fuente
Estoy de acuerdo con lo que está diciendo, pero podría copiar los datos de la página flash de origen a la página flash de destino mientras modifica los bytes que desea cambiar antes de borrar la fuente.
mjh2007
@mjh: ¿Qué sucede si su origen y destino son los mismos y / o no tiene una página gratuita? Además, esto es lento: envía el comando de lectura, envía una dirección, lee un byte, cambia si es necesario, borra, envía el comando de escritura, envía una dirección, escribe un byte, repite x256, x512 o x4k. Su otra opción es enviar un comando de lectura, enviar una dirección de lectura, un reloj para N ciclos, modificar los bytes que desea cambiar, borrar, enviar un comando de escritura, enviar una dirección de escritura, un reloj para N ciclos. Esto toma aproximadamente 1/3 del tiempo que toma el búfer de RAM.
Kevin Vermeer
¿Por qué necesitaría un registrador de datos editar los registros en el micro?
davidcary
@davidcary: si su registrador de datos no hace nada más que grabar una larga secuencia de bytes, tiene razón: nunca tendrá que hacer cambios. Si tiene varias configuraciones o archivos de registro que pueden romper los límites de la página / bloque, o si desea realizar cambios en un encabezado en el archivo al final, necesitaría editar la memoria sin borrar los datos existentes.
Kevin Vermeer
En este punto, solo necesito crear varios archivos de registro, no es necesario modificarlos, excepto cuando el usuario conecta el dispositivo a USB y lo descarga, luego necesito borrar (o hacer que ese espacio esté disponible nuevamente) el registro anterior.
Padu Merloti
2

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.

mjh2007
fuente
1
Estoy en desacuerdo. La sección borrable más pequeña en el AT25D es una página de 4kB, y pocos micros tienen tanta RAM disponible. He usado la serie de chips AT25FS, que tienen un pequeño borrado de página (256 bytes), pero tienen menos de 5 MB. Ir con el sistema protegido significa que no tiene que preocuparse tanto por la administración de RAM. Por supuesto, si no necesita editar sus registros, la serie AT25 funcionará bien.
Kevin Vermeer
Sí, las páginas de borrado grandes son molestas cuando una aplicación necesita escribir algún byte, y luego cambiar ese byte. Pero, ¿por qué necesitaría un registrador de datos hacer eso? Me parece que, para la aplicación de aplicaciones de registro de datos, no hay diferencia si la sección borrable más pequeña es 256 bytes o 1 megabyte.
davidcary
1

[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.

Kevin Vermeer
fuente