Sugestões de memória para o MSP430

9

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

Padu Merloti
fonte
11
Parece que você terá o dispositivo ligado na maior parte do tempo com dados válidos. Uma SRAM com backup de bateria não é mais apropriada que uma EEPROM (ou melhor, Flash) então?
Federico Russo

Respostas:

7

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.

Robert
fonte
5

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.

uɐɪ
fonte
Sim, vou usar uma das peças com USB incorporado. O ideal seria usar o protocolo MSC, mas isso adiciona muita complexidade ao meu projeto. Provavelmente vou concordar com as taxas de transferência de dados da HID. Pensei nos cartões SD, mas isso acrescenta complexidades extras ao gabinete, pois ele deve ser à prova de respingos de água.
Padu Merloti
2
Eu sugeriria essa rota, porque os cartões SD oferecem mais espaço de armazenamento. Você diz 5 MB agora, mas se quiser mais tarde, está ultrapassando os limites do flash serial (e está bem acima dos limites da EEPROM). Se a impermeabilização for um problema (e você tiver uma opção USB apropriada, o que parece ser o caso), você pode ler seu cartão SD via USB e colocá-lo dentro do gabinete permanentemente. Eu já vi alguns desenhos que soldaram o cartão SD na placa (Nota: isso funcionou, mas eu não o recomendo).
10139 Kevin Vermeer
Entendi, faz sentido. Vou considerar essa opção. Obrigado
Padu Merloti
Existe um chip especializado que cuida da interface SD e implementa o sistema de arquivos ou eu ainda teria que implementar um sistema de arquivos e a classe MSC usando o MSP430?
Padu Merloti 12/08/10
@ Padu - Eu senti que isso precisava de um pouco mais de espaço e formatação do que um comentário, então eu adicionei minha resposta como resposta.
22610 Kevin Vermeer
3

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.

Kevin Vermeer
fonte
Concordo com o que você está dizendo, mas você pode simplesmente copiar os dados da página flash de origem para a página flash de destino enquanto modifica os bytes que deseja alterar antes de apagar a fonte.
mjh2007
@mjh - E se sua origem e destino forem os mesmos e / ou você não tiver uma página gratuita? Além disso, isso é lento: envie o comando de leitura, envie um endereço, leia um byte, altere se necessário, apague, envie o comando de gravação, envie um endereço, escreva um byte, repita x256, x512 ou x4k. Sua outra opção é enviar um comando de leitura, enviar endereço de leitura, relógio para N ciclos, modificar os bytes que você deseja alterar, apagar, enviar comando de gravação, enviar endereço de gravação, relógio para N ciclos. Isso leva cerca de 1/3 do tempo que o buffer de RAM leva.
Kevin Vermeer
Por que um registrador de dados precisaria editar os registros no micro?
Davidcary
@davidcary - Se o seu registrador de dados não faz nada além de gravar um longo fluxo de bytes, você está certo - nunca precisará fazer alterações. Se houver várias configurações ou arquivos de log que possam ultrapassar os limites de página / bloco, ou se você quiser fazer alterações em um cabeçalho no arquivo no final, precisará editar a memória sem limpar os dados existentes.
Kevin Vermeer
Neste ponto, eu só preciso criar vários arquivos de log, sem necessidade de modificá-los, exceto quando o usuário conecta o dispositivo ao USB e o baixa, então eu preciso apagar (ou disponibilizar esse espaço novamente) o log antigo.
Padu Merloti 12/08/10
2

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.

mjh2007
fonte
11
Discordo. A menor seção apagável do AT25D é uma página de 4kB e poucos micros têm essa quantidade de RAM disponível. Usei a série de chips AT25FS, que têm uma pequena página de 256 bytes, mas são inferiores a 5 MB. Ir com o sistema em buffer significa que você não precisa se preocupar tanto com o gerenciamento de RAM. Obviamente, se você não precisar editar seus logs, a série AT25 funcionará bem.
Kevin Vermeer
Sim, páginas grandes de apagamento são irritantes quando um aplicativo precisa gravar algum byte e depois alterá-lo. Mas por que um registrador de dados precisaria fazer isso? Parece-me que, para aplicativos de aplicativos de registro de dados, não faz diferença se a menor seção apagável for 256 bytes ou 1 megabyte.
Davidcary
1

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

Kevin Vermeer
fonte