Étape 6: Stockage de masse USB sur carte MicroSD
Ensuite, pour comprendre le stockage de masse USB
http://en.wikipedia.org/wiki/USB_mass-storage_device_class
http://en.wikipedia.org/wiki/SCSI
http://en.wikipedia.org/wiki/USB_Attached_SCSI
Ce que j’ai besoin de vous faire comprendre, c’est comment l’ordinateur détermine quel type de dispositif est connecté (donc comprendre des descripteurs USB) et alors comprendre que l’ordinateur émet des commandes SCSI via le port USB au microcontrôleur, et le microcontrôleur exécutera les commandes SCSI en communiquant avec la carte SD. SCSI fonctionne directement sur la mémoire brute de la carte SD, sans se soucier du système de fichiers. Il ne se soucie pas sur les fichiers, uniquement les octets.
---------------------------------------------------------------------------------------------------------
Le AT90USB1286 est capable de pleine vitesse USB (pas haute vitesse!! garder cela à l’esprit que les vitesses de transfert de fichier ne sera pas le meilleur, plus notre Teensy est seulement cadencé à 8 MHz et l’horloge SPI n’est qu’à 4 MHz). Pour utiliser son USB intégré, nous avons plusieurs choix. Programme manuellement une pile USB en C, ou l’utilisation USB pile code fourni par Atmel ou APUL (Lightweight USB cadre pour rea).
Nous utiliserons des APUL (version 101122 mise à jour du temps de m’écrire ceci), c’est la conception ouverte de source et c' est précisément pour cette famille de microcontrôleurs AVR en particulier.
http://www.fourwalledcubicle.com/Lufa.php
Télécharger et explorez de LUFA code, documentation et exemples.
Nous utiliserons le la démonstration de stockage de masse incluse dans la distribution des APUL. Cependant, cette démonstration particulière utilise un dataflash IC au lieu de la carte SD. Voici donc un exemple de moutons élastique qui utilise des cartes SD :
http://elasticsheep.com/2010/04/teensy2-USB-Mass-Storage-with-an-SD-Card/
MAIS ATTENDEZ IL Y A PLUS ! J’ai modifié les fichiers à partir du lien ci-dessus pour travailler avec le Teensy ++ et mis à jour pour utiliser APUL version 101122. Voir exemple ci-joint paquet. Comme d’habitude, simple compiler et charger le code. L’intérieur du colis, j’ai également inclus une description complète du périphérique USB déversé d’un analyseur de trafic USB. Si cela a fonctionné, alors vous avez effectivement juste construit un lecteur de carte SD sur un Teensy ++, félicitations.
Les fichiers sd_raw.c et .h sont là pour communiquer directement avec la carte SD. SDCardManager est là pour permettre à SCSI accéder à la carte SD d’une manière qui SCSI peut travailler sans se soucier de quel type de mémoire, il travaille en collaboration avec (abstraction, SCSI est plus élevée). MassStorage gère la plupart des fonctionnalités de périphérique USB stockage de masse et utilise SCSI selon les ordres reçus de l’ordinateur.