IMA4 2019/2020 EC1 : Différence entre versions

De Wiki d'activités IMA
(Cahier des charges)
(Cahier des charges)
Ligne 23 : Ligne 23 :
 
= Cahier des charges =
 
= Cahier des charges =
  
*Lors de l'appui du premier bouton mécanique, un chenillard va circuler sur l'afficheur OLED, communiquant via un bus SPI. Afin de mettre en avant un ordonnancement ainsi que du temps réel, je ferai alterner les deux LEDs oranges toutes les 300ms en même temps.
+
Durant cette épreuve, je vais me servir de la board ''XMEGA-C3 Xplained'' comme un périphérique USB spécifique. Afin de réaliser toutes les tâches attendues, il va falloir procéder en plusieurs étapes :
  
*Lors de l'appui du second bouton mécanique, le chenillard ainsi que le clignotement des LEDs oranges s'arrêtent. Ce sont les LEDs rouges et vertes qui alterneront toutes les 150ms.
+
* '''Lire l'état des 2 boutons et commander les 4 LEDs''' : Pour se faire, il va falloir implanter un périphérique USB en programmant le microcontrôleur de la board (''ATXmega384C3''). Ce périphérique n'aura qu'une seule configuration pour les deux interfaces IN et OUT.
 +
 
 +
Interface ''IN'' : un seul point d'accès (sens Hôte vers Périphérique) <br>
 +
Interface ''OUT'' : deux points d'accès (sens inverse)
 +
 
 +
La bibliothèque [http://www.fourwalledcubicle.com/LUFA.php LUFA] me permettra de gérer l'USB sans passer par les registres. Pour la programmation du microcontrôleur, je me servirai de l'utilitaire ''dfu-programmer'' [https://dfu-programmer.github.io/ adapté au ATXmega384C3].
 +
 
 +
* '''Programmer le déclenchement et l'arrêt du chenillard en C''' : La librairie [http://libusb.sourceforge.net/api-1.0/modules.html libusb-1.0] sera utile ici pour la partie contrôle du périphérique USB. Je compilerai ce programme avec ''gcc'', comme d'habitude.
  
 
= Travail réalisé =
 
= Travail réalisé =

Version du 20 avril 2020 à 14:48

Objectif

Vous allez travailler sur une carte de développement ATXMEGAC3-XPLD. L'idée est de refaire le tutorat système sur cette carte.

Vous aurez donc à écrire un programme C sur PC avec la libusb-1.0 et à écrire un programme pour le micro-contrôleur ATXmega384C3 avec la LUFA.

Coté périphérique USB vous devez implanter une configuration avec une interface IN pour les deux boutons mécanique de la carte, une interface OUT pour les deux LED orange et une interface OUT pour les LED verte et rouge.

Coté PC vous devez écrire un programme qui attend une pression sur un bouton mécanique et qui déclenche un chenillard sur les 4 LED. Le chenillard s'arrête sur pression du second bouton mécanique.

Environnement de travail

Le matériel a été reçu le 09/04/2020 : il s'agit bien d'une carte de développement ATXMEGAC3-XPLD ainsi qu'une carte micro-SD de 8GB et le câble USB qui va avec.

Matériel à disposition


Tout le travail sera effectué sous Linux, plus précisément avec la distribution Ubuntu. Ci-dessous, vous pourrez retrouver un aperçu des fonctionnalités de la carte :

XMEGA-C3 Xplained


Cahier des charges

Durant cette épreuve, je vais me servir de la board XMEGA-C3 Xplained comme un périphérique USB spécifique. Afin de réaliser toutes les tâches attendues, il va falloir procéder en plusieurs étapes :

  • Lire l'état des 2 boutons et commander les 4 LEDs : Pour se faire, il va falloir implanter un périphérique USB en programmant le microcontrôleur de la board (ATXmega384C3). Ce périphérique n'aura qu'une seule configuration pour les deux interfaces IN et OUT.

Interface IN : un seul point d'accès (sens Hôte vers Périphérique)
Interface OUT : deux points d'accès (sens inverse)

La bibliothèque LUFA me permettra de gérer l'USB sans passer par les registres. Pour la programmation du microcontrôleur, je me servirai de l'utilitaire dfu-programmer adapté au ATXmega384C3.

  • Programmer le déclenchement et l'arrêt du chenillard en C : La librairie libusb-1.0 sera utile ici pour la partie contrôle du périphérique USB. Je compilerai ce programme avec gcc, comme d'habitude.

Travail réalisé