[C'est en réponse aux commentaires suivant la réponse d'Ian].
Une carte SD n'est qu'un appareil SPI, donc aucune puce / interface n'est nécessaire. D'autres protocoles incluent une interface à 2 fils (comme I2C) et une interface à 4 fils (avec un CRC complexe), mais SPI est le plus couramment utilisé.
Une note d'application de carte SD est disponible pour le MSP430 de TI ici . C'est bref, mais il comprend un exemple de code. Il gère la lecture et l'écriture dans différents secteurs de la carte SD, ce qui peut être tout ce que vous voulez si vous ne le branchez pas sur un PC. Regardez également ces implémentations par Foust (recommandé) ou Evans de MSU.
Une fois que vous disposez des fonctions de base pour lire et écrire un secteur, vous pouvez soit résumer un système de fichiers simple et personnalisé sur USB, soit utiliser une bibliothèque de système de fichiers existante. FatFS , EFSL ou DOSF sont toutes des options pour ce dernier. Si la mise en œuvre de toutes les fonctions requises semble trop difficile, n'oubliez pas que tous, sauf quelques-uns, peuvent / seront des stubs.
Cependant, le système de fichiers sera abstrait à travers votre interface USB dans une certaine mesure. Ce sera plus facile si vous avez une vraie bibliothèque de système de fichiers et que votre carte est dans un système de fichiers lisible, mais cela demande du travail. Si vous voulez écrire votre propre "système de fichiers" et économiser du travail / du temps / de la mémoire pour l'implémentation USB, vous pouvez rendre sa définition aussi simple et rigide que le journal 1 commence à 0x0, le journal 2 commence à 0x10 0000, le journal 3 à 0x20 0000 et connectez-vous à 0x30 0000. Ensuite, vous pouvez envoyer ces données via USB.
L'interface USB peut être aussi complexe que vous le souhaitez - de l'interface série au périphérique de stockage de masse.