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