IMA4 2017/2018 EC3

De Wiki d'activités IMA

Présentation du projet

Contexte

L'élève continue son semestre S8 à l'école.

Objectif

Concevoir et réaliser un dispositif de stockage USB avec une Plateforme Arduino adjointe d'un bouclier de gestion de carte SD.

Description du projet

Le but de projet est très simple : transformer un Arduino avec un bouclier carte SD en une clef USB.

Il est recommandé de décomposer le travail en trois étapes :

  • prendre en main le programme de gestion de la carte SD fourni, réaliser un programme de modification de blocs par interface série ;
  • concevoir l'interface USB en respectant le protocole pour un "Storage Class Device", le plus simple est de s'appuyer sur la démonstration MassStorage de la bibliothèque LUFA ;
  • mettre au point le protocole série permettant la communication entre l'ATMega16u2 qui réalise l'interface USB et l'ATMega328p qui gère la carte SD, en particulier ce protocole devra assurer le transfert des blocs de données entre les deux micro-contrôleurs.

Pour tester le dispositif, il suffit de vérifier que le périphérique de stockage est détecté comme une clef USB et qu'il est possible de le formater et de l'utiliser en lecture et en écriture. L'accès aux données sera fatalement lent à cause du faible débit de la liaison série.

Matériel nécessaire

  • Arduino UNO ;
  • Bouclier carte SD ;
  • Cable USB.

Planning prévisionnel

Travail effectué

Atmega:

Atmega328p: Le coeur de processeur ARDUINO UNO.
Atmega16u2: Responsable de la communication USB, il reçoit les datas et envoie au 328p.

Télécharger bootloader pour Atmega328p:

/Atmega328pBootloader/opti_atmega328.hex

Télécharger firmware usbserial pour Atmega16u2:

/ATMega16u2Project/atmegaxxu2/Arduino-COMBINED-dfu-usbserial-atmega16u2-Uno-Rev3.hex

Processus de 328pAPP_c:

1.Demander quelle commande? Si il n'y a pas de réponse dans un bout de temp, c'est-à-dire il y a un délai de réponse, il reprendre la commande.
2.Quand il a reçu la commande, il demande le nom de fichier que vous voulez.
3.Quand il a reçu le nom, il fait les traîtements(lire, écrire, supprimer etc).
4.Retourner un résultat.

Sources

Arduino uno: [1]
Atmega16u2: [2]
DFU: [3]
SPI: [4]
SPI: [5]
Principe de communication SPI: [6]
Et les sites Web de l'Encyclopédie de Chine etc.

Documents

Les fonctions différents sont réalisés dans le fonction main Media:Usb_arduino.zip