« SE3 PSE Binome2023-9 » : différence entre les versions
Aucun résumé des modifications |
|||
Ligne 81 : | Ligne 81 : | ||
Maintenant que les leds sont bien initialisées et controllables je m'attaque aux boutons, il n'y a pas de pullup sur le PCB, il faut donc utiliser les PullUp intégrés de l'AVR | Maintenant que les leds sont bien initialisées et controllables je m'attaque aux boutons, il n'y a pas de pullup sur le PCB, il faut donc utiliser les PullUp intégrés de l'AVR | ||
[[File:SE3-pad-pullup-Bonningre. | [[File:SE3-pad-pullup-Bonningre.png|thumb|center|600px|Configuration des Pullup]] | ||
Je test ensuite au multimetre, on a bien 5V sur les pins des boutons (avant la configuration des pullup il y avait entre 0.5 et 2v) et 0v quand ils sont appuyés | Je test ensuite au multimetre, on a bien 5V sur les pins des boutons (avant la configuration des pullup il y avait entre 0.5 et 2v) et 0v quand ils sont appuyés |
Version du 10 avril 2024 à 09:22
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...
Le PCB est routé, les coins sont arrondis pour une meilleure prise en main.
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'
25 Mars 2024, LUFA
Aujourd'hui travail sur le programme avec la bibliothèque LUFA, les fichiers sont sur le GIT du projet : GIT
La partie Lufa est dans le dossier hardware (le dossier software contient le jeu space invaders)
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.
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
Avec un programmateur ISP je lis la partie de l'atmega qui contient le bootloader, elle est apparement vide et on peux voir que les fuses sont 0x52 0x99 et 0xFF (avec le calculateur de fuse pour atmega32u4 on constate que ce n'est pas les valeurs qu'il faut pour notre projet)
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 :
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 :
En modifiant le code Lufa on peut allumer les led, pour celles sur les pins PF4 et PF5 il faut désactiver le JTAG en copiant deux fois cette ligne au niveau de la déclaration des pins : MCUCR |= (1<<JTD);
Il ne reste plus qu'à controler les led avec un endpoint et ajouter le code pour les boutons, affaire à suivre...
10 Avril 2024
Maintenant que les leds sont bien initialisées et controllables je m'attaque aux boutons, il n'y a pas de pullup sur le PCB, il faut donc utiliser les PullUp intégrés de l'AVR
Je test ensuite au multimetre, on a bien 5V sur les pins des boutons (avant la configuration des pullup il y avait entre 0.5 et 2v) et 0v quand ils sont appuyés