Estou desenvolvendo um aplicativo de medição com a TI MSP430 e gostaria de ouvir algumas sugestões sobre que tipo de memória posso usar.
A idéia é usá-lo para fazer logon durante um certo período de tempo e depois baixar os dados para um PC quando o dispositivo estiver conectado via USB. A estimativa é armazenar até 5 MB de dados, cada amostra tendo cerca de 25 bytes de dados.
Um simples chip EEPROM faria ou há algo melhor por aí?
Respostas:
Eu usei a série AT45D de chips flash seriais. Eles possuem um buffer SRAM interno para configurar uma página para apagar / programar. Interface SPI para ler dados dentro e fora.
fonte
5 MByte são muitos dados para armazenar. A leitura através de USB implica que você está usando uma das novas peças com a interface do dispositivo USB incorporada. Caso contrário, você usará um conversor USB para serial (FTDI ou similar) e ficará limitado ao serial assíncrono taxas de dados para leitura dos dados.
Você já pensou em conectar um cartão de memória SD ao MSP, armazenar os dados nele e depois mover o cartão para o PC para ler os dados armazenados. Eu não escrevi uma interface para este dispositivo, mas há muitas.
fonte
O flash serial é superior à EEPROM nesta aplicação. Atmel faz uma ótima programação . Sua escolha dependerá em grande parte de duas coisas: (1) sua necessidade de editar / setorizar seus logs no micro e (2) sua disponibilidade de RAM no MSP430.
O Flash, diferentemente da EEPROM, só pode ser gravado de 1 para 0. A alteração dos dados de 0 para 1 requer a exclusão de uma seção da peça, que normalmente está disponível apenas para páginas ou blocos de dados. Você precisará colocar esta página em buffer na RAM, apagá-la, fazer sua edição na RAM e, em seguida, escreva-a novamente se desejar alterar alguma coisa.
A série AT45D, como já foi apontado, oferece várias partes que possuem buffers de RAM no chip para facilitar esse processo sem usar RAM no microcontrolador.
No final, toda a série é compatível com pinos, portanto, basta colocar um espaço de 8-SOIC (150mil) e, em seguida, você poderá trocar as peças se precisar de opções diferentes posteriormente.
fonte
Eu sugeriria a série AT25D, pois parece um pouco mais fácil de usar do que a AT45D. Embora seja um pouco mais lento e não ofereça tantas opções de transferência de dados ou os buffers SRAM. Ele tem a vantagem de ser mais barato e ainda é rápido o suficiente para a maioria dos aplicativos, como registro de dados.
Se você precisar de 5 MB de dados, é improvável que uma EEPROM funcione, pois eles geralmente vêm em pacotes <1Mbit. Os chips flash da Atmel suportam até 64 mbit ou 8 MB.
fonte
[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.
fonte