[Isso é uma resposta aos comentários após a resposta de Ian].
Um cartão SD é apenas um dispositivo SPI, portanto, não é necessário chip / interface. Outros protocolos incluem uma interface de 2 fios (como I2C) e uma interface de 4 fios (com um CRC complexo), mas o SPI é o mais usado.
Há uma nota de aplicação do cartão SD disponível para o MSP430 da TI aqui . É breve, mas inclui código de exemplo. Ele lida com a leitura e gravação em vários setores do cartão SD, o que pode ser tudo o que você deseja, se não quiser conectá-lo a um PC. Observe também essas implementações de Foust (recomendado) ou Evans da MSU.
Depois de ter as funções básicas de leitura e gravação de um setor, você pode abstrair um sistema de arquivos simples e personalizado através de USB ou usar uma biblioteca de sistemas de arquivos existente. FatFS , EFSL ou DOSFs são todas opções para o último. Se a implementação de todas as funções necessárias parecer muito difícil, lembre-se de que apenas algumas podem / serão stubs.
No entanto, o sistema de arquivos será abstraído através da sua interface USB até certo ponto. Isso será mais fácil se você tiver uma biblioteca real do sistema de arquivos e seu cartão estiver em um sistema de arquivos legível, mas isso exige trabalho. Se você deseja escrever seu próprio "Sistema de Arquivos" e economizar trabalho / tempo / memória para a implementação USB, você pode tornar sua definição tão simples e inflexível quanto o log 1 começa em 0x0, o log 2 começa em 0x10 0000, o log 3 em 0x20 0000 e registre 4 em 0x30 0000. Em seguida, você pode enviar esses dados por USB.
A interface USB pode ser tão complexa quanto você gosta - da interface serial ao dispositivo de armazenamento em massa.