Suggestions de mémoire pour le MSP430

9

Je développe une application de mesure avec la TI MSP430 et j'aimerais entendre quelques suggestions sur le type de mémoire que je peux utiliser.

L'idée est de l'utiliser pour se connecter pendant un certain temps, puis de télécharger les données sur un PC lorsque l'appareil est connecté via USB. L'estimation est de contenir jusqu'à 5 Mo de données, chaque échantillon étant d'environ 25 octets de données.

Une simple puce EEPROM ferait-elle ou y a-t-il quelque chose de mieux là-bas?

Padu Merloti
la source
1
Il semble que votre appareil soit alimenté la plupart du temps lorsque vous disposez de données valides. Une SRAM sur batterie de secours n'est-elle pas plus appropriée qu'une EEPROM (ou mieux, Flash)?
Federico Russo

Réponses:

7

J'ai utilisé la série de puces flash série AT45D . Ils ont un tampon SRAM interne pour configurer une page pour l'effacement / la programmation. Interface SPI pour lire et extraire les données.

Robert
la source
5

5 Mo sont beaucoup de données à stocker. La lecture sur USB implique que vous utilisez l'une des nouvelles pièces avec l'interface de périphérique USB intégrée. Sinon, vous allez utiliser un convertisseur USB vers série (FTDI ou similaire) et vous serez limité à la série asynchrone taux de données pour la lecture des données.

Avez-vous pensé à connecter une carte mémoire SD au MSP, à y stocker les données, puis à déplacer la carte vers le PC pour lire les données stockées. Je n'ai pas écrit d'interface avec cet appareil mais il y en a beaucoup.

uɐɪ
la source
Oui, je vais utiliser l'une des pièces avec USB intégré. L'idéal serait d'utiliser le protocole MSC, mais cela ajoute beaucoup de complexité à mon projet. Je vais probablement me contenter des taux de transfert de données HID. J'ai pensé aux cartes SD mais cela ajoute des complexités supplémentaires sur le boîtier car il doit être étanche aux éclaboussures.
Padu Merloti
2
Je suggère cette route, car les cartes SD vous donneront le plus d'espace de stockage. Vous dites 5 Mo maintenant, mais si vous en voulez plus plus tard, vous repoussez les limites du flash série (et vous êtes bien au-dessus des limites de l'EEPROM). Si l'étanchéité est un problème (et que vous disposez d'une option USB appropriée, ce qui semble être le cas), vous pouvez lire votre carte SD sur USB et la mettre à l'intérieur du boîtier en permanence. J'ai vu des conceptions qui ont soudé la carte SD à la carte (Remarque: cela a fonctionné, mais je ne le recommande pas).
Kevin Vermeer
Compris, c'est logique. J'examinerai cette option. Merci
Padu Merloti
Existe-t-il une puce spécialisée qui prend en charge l'interface SD et implémente le système de fichiers ou devrais-je encore implémenter un système de fichiers et la classe MSC à l'aide du MSP430?
Padu Merloti
@ Padu - Je sentais que cela nécessitait un peu plus d'espace et de mise en forme qu'un commentaire, j'ai donc ajouté ma réponse en tant que réponse.
Kevin Vermeer
3

Le flash série est supérieur à l'EEPROM dans cette application. Atmel fait une excellente programmation . Votre choix dépendra en grande partie de deux choses: (1) votre besoin de modifier / sectoriser vos journaux sur le micro et (2) la disponibilité de votre RAM sur le MSP430.

Flash, contrairement à l'EEPROM, ne peut être écrit que de 1 à 0. La modification des données de 0 à 1 nécessite l'effacement d'une section de la pièce, qui n'est généralement disponible que pour les pages ou les blocs de données. Vous devrez mettre cette page en mémoire tampon, l'effacer, effectuer votre modification dans la RAM, puis la réécrire si vous souhaitez changer quelque chose.

La série AT45D, comme cela a déjà été souligné, propose un certain nombre de pièces qui ont des tampons RAM sur la puce pour faciliter ce processus sans utiliser de RAM sur le microcontrôleur.

En fin de compte, toute la série est compatible avec les broches, il vous suffit donc de laisser une empreinte 8-SOIC (150mil), puis vous pourrez échanger les pièces si vous avez besoin d'autres options plus tard.

Kevin Vermeer
la source
Je suis d'accord avec ce que vous dites, mais vous pouvez simplement copier les données de la page flash source vers la page flash de destination tout en modifiant les octets que vous souhaitez modifier avant d'effacer la source.
mjh2007
@mjh - Et si votre source et destination sont les mêmes, et / ou si vous n'avez pas de page gratuite? En outre, cela est lent: envoyer une commande de lecture, envoyer une adresse, lire un octet, modifier si nécessaire, effacer, envoyer une commande d'écriture, envoyer une adresse, écrire un octet, répéter x256, x512 ou x4k. Votre autre option consiste à envoyer une commande de lecture, envoyer une adresse de lecture, horloge pour N cycles, modifier les octets que vous souhaitez changer, effacer, envoyer une commande d'écriture, envoyer une adresse d'écriture, horloge pour N cycles. Cela prend environ 1/3 du temps que prend le tampon RAM.
Kevin Vermeer
Pourquoi un enregistreur de données aurait-il besoin de modifier les journaux sur le micro?
davidcary
@davidcary - Si votre enregistreur de données ne fait rien d'autre que d'enregistrer un long flux d'octets, vous avez raison - vous n'aurez jamais besoin d'apporter de modifications. S'il contient plusieurs configurations ou fichiers journaux susceptibles de dépasser les limites des pages / blocs, ou si vous souhaitez apporter des modifications à un en-tête du fichier à la fin, vous devez modifier la mémoire sans effacer les données existantes.
Kevin Vermeer
À ce stade, il me suffit de créer plusieurs fichiers journaux, pas besoin de les modifier, sauf lorsque l'utilisateur branche l'appareil sur USB et le télécharge, puis j'ai besoin d'effacer (ou de rendre cet espace à nouveau disponible) l'ancien journal.
Padu Merloti
2

Je suggérerais la série AT25D car elle semble un peu plus facile à utiliser que l'AT45D. Bien qu'il soit un peu plus lent et n'offre pas autant d'options de transfert de données ou de tampons SRAM. Il a l'avantage d'être moins cher et il est toujours assez rapide pour la plupart des applications comme l'enregistrement de données.

Si vous avez besoin de 5 Mo de données, il est peu probable qu'une EEPROM fonctionne, car elles sont généralement fournies dans des packages <1Mbit. Les puces Flash d'Atmel prennent en charge jusqu'à 64 Mo ou 8 Mo.

mjh2007
la source
1
Je ne suis pas d'accord. La plus petite section effaçable de l'AT25D est une page de 4 Ko, et peu de micros ont autant de RAM disponible. J'ai utilisé la série de puces AT25FS, qui ont une petite page d'effacement (256 octets), mais elles sont inférieures à 5 Mo. Aller avec le système tamponné signifie que vous n'avez pas à vous soucier autant de la gestion de la RAM. Bien sûr, si vous n'avez pas besoin de modifier vos journaux, la série AT25 fonctionnera bien.
Kevin Vermeer
Oui, les grandes pages d'effacement sont gênantes lorsqu'une application a besoin d'écrire un octet, puis de le modifier ultérieurement. Mais pourquoi un enregistreur de données aurait-il besoin de le faire? Il me semble que, pour l'application des applications d'enregistrement de données, cela ne fait aucune différence si la plus petite section effaçable est de 256 octets ou 1 mégaoctet.
davidcary
1

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

Kevin Vermeer
la source