IMA4 2019/2020 EC2

De Wiki d'activités IMA
Révision datée du 25 mai 2020 à 00:45 par Ecapronn (discussion | contributions) (Virtual Serial)

Objectif

Vous allez travailler sur une carte de développement ATXMEGAC3-XPLD. L'idée est d'implanter micro-python sur cette carte.

Vous aurez donc à écrire un programme pour le micro-contrôleur ATXmega384C3 avec la LUFA.

Cherchez l'embryon de portage de micro-python sur AVR, récupérez le répertoire avr8-dummy et intégrez-le à une version récente de micro-python. Fusionnez ce logiciel avec l'exemple VirtualSerial de la LUFA pour avoir une console USB/série avec un interpréteur micro-python sur l'ATXMEGAC3-XPLD.

Matériel reçu

ATXMEGAC3-XPLD

Cahier des charges

Durant cette épreuve, je vais écrire un programme pour le micro-contrôleur ATXmega384C3 avec la LUFA. L'objectif est d'implanter micro-python sur l'ATXMEGAC3-XPLD. Afin de réaliser cet objectif, il faudra procéder en plusieurs étapes :

  • Comprendre et prendre en main la démo Virtual Serial de la bibliothèque LUFA
  • Récupérer le répertoire avr8-dummy et l'intégrer à une version récente de micropython. Une fois ceci réalisé, comprendre et compiler une première fois le main.c du répertoire avr8-dummy
  • Comprendre les deux makefiles utilisés
  • Réaliser la fusion de la démo Virtual Serial de la Lufa avec micropython

Travail réalisé

Micro-python n'implante pas le port série pour les atxmega. Il faut donc le faire avec l'exemple VirtualSerial de la Lufa.

Virtual Serial

Le premier objectif de cette épreuve complémentaire a été de se familiariser avec la bibliothèque Lufa et plus particulièrement avec la demo Virtual Serial.

Le téléchargement de la bibliothèque Lufa s'effectue de la façon suivante :

git clone https://github.com/abcminiuser/lufa

Tout d'abord il a fallu modifier le fichier Descriptor.c avec les valeurs d'ID Vendor et d'ID Product de ma carte.

Descriptor

Ces valeurs sont accessible en utilisant la commande suivante :

dmesg -s 1024
ID Vendor et ID Product

La première chose à faire a été de modifier le Makefile :

Makefile

Les 3 premières lignes correspondent au micro-contrôleur sur la carte. Puis il a fallu changer la fréquence. Ce changement de fréquence a été très important pour résoudre certain problème, lors du lancement du .hex sur l'atmega384c3, lorsque j'utilisais des fréquences trop faible. Puis j'ai créé un point upload dans le makefile afin de lancer les 3 commandes suivantes :

dfu-programmer atxmega384c3 erase
dfu-programmer atxmega384c3 flash VirtualSerial.hex
dfu-programmer atxmega384c3 reset

De manière automatique en utilisant la commande suivante :

make upload

Ensuite, une fois la carte débranché et rebranché, il faut vérifier la présence d'un nouveau port série ACM0 grâce à la commande

ls -l /dev/tty*

Puis j'ai créé une petite fonction Bonton() afin de tester la carte dans minicom

Fonction Bouton

Une fois la fonction créé et le make upload lancé, j'ai lancé minicom afin de voir le résultat

Minicom

Lors de l'appui d'un bouton, nous pouvons voir l'affichage "Bouton n" en fonction du bouton appuyé