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?
Réponses:
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.
la source
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.
la source
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.
la source
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.
la source
[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.
la source