« SE3 PSE Binome2023-9 » : différence entre les versions

De projets-se.plil.fr
Aller à la navigation Aller à la recherche
Ligne 54 : Ligne 54 :


Pour commencer il faut utiliser la commande suivante pour modifier les fuses (avec une arduino comme programmeur ISP), ca permet de faire comprendre a l'atmega32u4 qu'on utilise un crystal 8Mhz et qu'il faut pouvoir passer en DFU avec le bouton HWB :
Pour commencer il faut utiliser la commande suivante pour modifier les fuses (avec une arduino comme programmeur ISP), ca permet de faire comprendre a l'atmega32u4 qu'on utilise un crystal 8Mhz et qu'il faut pouvoir passer en DFU avec le bouton HWB :
<code>avrdude -c stk500v1 -p atmega32u4 -P /dev/ttyACM0 -b 19200 -U lfuse:w:0xFF:m -U efuse:w:0xF7:m</code>
<code>avrdude -c stk500v1 -p atmega32u4 -P /dev/ttyACM0 -b 19200 -U lfuse:w:0xFF:m -U efuse:w:0xF7:m</code>
   
   
Ensuite il faut télécharger le bootloader USB sur le site microchip : [https://www.microchip.com/en-us/product/ATmega32U4#document-table Bootloader DFU AVR] (tableau Embedded Software) et le flasher avec la commande suivante (toujours par ISP avec l'arduino) :
Ensuite il faut télécharger le bootloader USB sur le site microchip : [https://www.microchip.com/en-us/product/ATmega32U4#document-table Bootloader DFU AVR] (tableau Embedded Software) et le flasher avec la commande suivante (toujours par ISP avec l'arduino) :
<code>avrdude -c stk500v1 -p atmega32u4 -P /dev/ttyACM0 -b 19200 -U flash:w:ATMega32U4-usbdevice_dfu-1_0_0.hex</code>
<code>avrdude -c stk500v1 -p atmega32u4 -P /dev/ttyACM0 -b 19200 -U flash:w:ATMega32U4-usbdevice_dfu-1_0_0.hex</code>


Ligne 62 : Ligne 64 :
[[File:SE3-pad-lsusb-dfu-Bonningre.png|thumb|center|600px|DFU détecté par lsusb]]
[[File:SE3-pad-lsusb-dfu-Bonningre.png|thumb|center|600px|DFU détecté par lsusb]]


On peux ensuite modifier le makefile du code Lufa en changeant le type de MCU et la fréquence (8Mhz), et programmer la manette directement par USB avec la commande <code>make dfu</code>. Pour repasser en DFU il suffit de maintenir le bouton HWB pendant un reset.
On peut ensuite modifier le makefile du code Lufa en changeant le type de MCU et la fréquence (8Mhz), et programmer la manette directement par USB avec la commande <code>make dfu</code>. Pour repasser en DFU il suffit de maintenir le bouton HWB pendant un reset.


Tout les composants sont soudés : [[File:SE3-pad-carte-soudee-Bonningre.png|thumb|right|600px|Carte soudée]]
Tout les composants sont soudés : [[File:SE3-pad-carte-soudee-Bonningre.png|thumb|right|600px|Carte soudée]]

Version du 8 avril 2024 à 13:12

4 Mars 2024

Découverte du sujet

11 Mars 2024, Manette

Ajout de deux boutons qui permettent d'obtenir une manette style Master System et de 4 leds qui peuvent servir d'indicateur de vies ou autre...

Schéma mis à jour

Le PCB est routé, les coins sont arrondis pour une meilleure prise en main.

PCB routé
Visualisation du circuit


Fichier GERBER de la manette: Fichier:SE3-pad-bonningre-GERBER.zip

18 Mars 2024, AVR

J'utilise le Makefile fournit pour les TP MicroP pour compiler le code puis le mode DFU de l'atmega8u2 pour envoyer le code dans la carte en USB avec 'dfu-programmer'

Le code pour faire clignoter les LED


25 Mars 2024, LUFA

Aujourd'hui travail sur le programme avec la bibliothèque LUFA, les fichiers sont sur le GIT du projet : GIT

3 Avril 2024, PCB

Le PCB est arrivé, je soude les composants nécessaires pour faire fonctionner l'atmega et une led pour le tester.

Le PCB avec les composants minimums

La led connectée au 5v s'allume mais impossible de détecter l'atmega en USB (mode DFU) avec la commande 'lsusb'

Je test au multimètre que les différents pins 5V sont bien alimentés, les pins Reset et HWB sont aussi bien pullup à 5V (GND quand boutons respectifs appuyés) et la continuité sur les pins D- et D+ de l'USB est bien presente.

Peut-être que l'atmega32u4 n'a pas le bootloader avec DFU USB de préinstallé (ou que les fuses internes ne sont pas correctement configurées pour notre crystal), je soude le connecteur ISP pour essayer de le programmer via cette interface

Lecture du Bootloader par ISP

Avec un programmateur ISP je lis la partie de l'atmega qui contient le bootloader, elle est apparement vide...

8 Avril 2024, DFU et Bootloader

Grace à l'aide de monsieur Redon le problème est résolue et la carte est bien reconnue en USB, nous somme parvenu a programmer la manette par ISP mais pour plus de simplicité il faut installer le bootloader USB.

Pour les commandes utilisant une arduino comme programmeur ISP il faut indiquer -c stk500v1 au lieu de -c arduino sinon on obtient un erreur et l'atmega n'est pas programmé.

Pour commencer il faut utiliser la commande suivante pour modifier les fuses (avec une arduino comme programmeur ISP), ca permet de faire comprendre a l'atmega32u4 qu'on utilise un crystal 8Mhz et qu'il faut pouvoir passer en DFU avec le bouton HWB :

avrdude -c stk500v1 -p atmega32u4 -P /dev/ttyACM0 -b 19200 -U lfuse:w:0xFF:m -U efuse:w:0xF7:m

Ensuite il faut télécharger le bootloader USB sur le site microchip : Bootloader DFU AVR (tableau Embedded Software) et le flasher avec la commande suivante (toujours par ISP avec l'arduino) :

avrdude -c stk500v1 -p atmega32u4 -P /dev/ttyACM0 -b 19200 -U flash:w:ATMega32U4-usbdevice_dfu-1_0_0.hex

On débranche le programmateur ISP et on branche la manette en USB, elle apparait avec lsusb :

DFU détecté par lsusb

On peut ensuite modifier le makefile du code Lufa en changeant le type de MCU et la fréquence (8Mhz), et programmer la manette directement par USB avec la commande make dfu. Pour repasser en DFU il suffit de maintenir le bouton HWB pendant un reset.

Tout les composants sont soudés :