Binome2020-12 : Différence entre versions
(→SOFTWARE) |
(→CHANGELOG) |
||
Ligne 142 : | Ligne 142 : | ||
* 26/03/2021 : Soudage de la mémoire sur la deuxième clé, continuation du programme d'identification.<br/><br/> | * 26/03/2021 : Soudage de la mémoire sur la deuxième clé, continuation du programme d'identification.<br/><br/> | ||
* 29/03/2021 : Création du code "final" de l'AtTiny, remplissage du wiki.<br/><br/> | * 29/03/2021 : Création du code "final" de l'AtTiny, remplissage du wiki.<br/><br/> | ||
− | * 01/04/2021 : Poisson d'avril ! Finition de la mise a jour du wiki, | + | * 01/04/2021 : Finition définitive de la clé USB. Elle est maintenant capable de se téléporter dans la poche de l'espion. Poisson d'avril ! Finition de la mise a jour du wiki, et conception 3D du nouveau boitier. |
Version du 1 avril 2021 à 15:47
INTRODUCTION
L'objectif de ce bureau d'étude est la conception et la réalisation d'une clé USB personnalisée.
Les idées de personnalisations sont les suivantes :
- Flash grosse capacité
- Led RGB qui change de couleur en fonction du remplissage
- "Bouton d'urgence" efface l'intégralité de la clé après une longue pression (en jouant des animations sur la LED ?)
Compétences et matériel utilisé
HARDWARE
Solutions techniques
Stockage
Pour la fonction principale de la clé nous utiliserons une mémoire NAND produite chez micron. Cette mémoire de 128Gb nous permet d'obtenir un stockage total de 16 Go.
Pour interfacer cette mémoire, nous utilisons un micro contrôleur utilisant une architecture AVR. Celui en utilisé possède en plus une interface USB native pour communiquer avec l'ordinateur.
Personnalisation
Pour nos idées de personnalisation nous devons utiliser deux leds cote à cote (une rouge et une verte) ainsi que leur résistances.
Le bouton d'effacement d'urgence "Press Only when Rightfully Needed" (POwRN) nécessite une résistance "Pull-Up". Nous avons décider d'utiliser la résistance interne de notre micro contrôleur.
Afin de gérer ces fonction indépendamment de la mémoire nous utiliserons d’abord un deuxième micro contrôleur esclave (AtTiny) qui communiquera au maitre via software-serial.
Application
Rev 1.1
Pour la seconde séance de BE nous avons réalisé un premier schématic et une première version de PCB pour notre clé USB. Après concertation avec les professeurs, certains composants n'étaient pas adéquats ou utilisable sur notre clé USB, nous avons donc modifié la clé USB.
Rev 1.2
Pour la version 1.2 de la clé USB, nous avons modifié le régulateur, nous sommes passé de 1 LED à 2 LEDs différentes, ainsi que les connecteurs. Nous avons aussi ajouté des jumpers.
Rev 1.3
Cette version (celle que nous avons commandé) a vu apparaitre de nombreuses modifications telles que :
- Connexion des pins Rdy2 et MS2 entre la mémoire et le microcontrôleur
- Remplacement des jumpers par des petits interrupteurs
- Ajout de l'interface de programmation (6 pins standards)
- Rétrécissement global du PCB de Gomator ( Surface de la clé réduite de moitié)
Rev 2.0
Cette version contient les correctifs nécessaires pour réglé les soucis dzcouvert sur la rev 1.3.<\br> Les modifications majeures sont :<\br> - Utilisation du régulateur interne de l'AtMega - Connexion du reset des IC avec le reset des ICSP - Affinement de la forme générale de la clé
SOFTWARE
Introduction
Afin de tester la clé et de développer son logiciel nous avons décidé de segmenter le programme en 7 parties :
- Tester l'ATmega à l'aide d'un Blink
- Tester l'ATtiny à l'aide d'un Blink
- Faire communiquer les deux puces en Serial
- Faire communiquer l'ATmega en USB avec l'hote en utilisant Lufa
- Interfacer l'ATmega avec la mémoire
- Interfacer la mémoire en USB
- Ajouter nos personnalisation au code précédent
Premières communication avec la puce
Après avoir souder la première version de notre PCB, nous avons essayer de communiquer avec elle. Cependant, la première version ne communiquais pas (le DFU n’apparaissait pas). Nous avons essayé de communiqué via un ICSP. C’était encore un échec.
Nous avons ensuite décidé de souder une clé avec uniquement le minimum nécessaire. Après 1h d'échec avec le port USB droit de mon ordi, nous avons tenter d'utiliser le port de gauche. C'est un succès, la clé apparais dans USB Dev View (/mettre photo USB dev view/)
Nous téleversons un programma Blink (/screen du code/). C'est avec horreur que nous découvrons que la led clignote 8 fois trop lentement, et pire encore : le DFU n’apparais plus.
La séance suivante à été consacré à se battre avec un adaptateur USB-ICSP pour chenger les e-fuse de l'ATmega. A la fin de la séance, la led clignotait à la bonne vitesse. Cependant le DFU reste introuvable.
La configuration des e-fuses est comme ceci :
Configuration des fuses | |||||
---|---|---|---|---|---|
Fuse : | lfuse | hfuse | efuse | ||
Valeurs: | 4E | D9 | F6 |
Installation de LUFA
Après avoir vu que quelques éléments vitaux de la clé fonctionne, nous avons téléversé une démo de LUFA. C'est avec un grand plaisir que nous observons Windows reconnaitre le périphérique USB. La prochaine étape consiste à sous traiter la réalisation de la bibliothèque de communication avec la Nand par le binome 4.
MECHANICAL
Nous avons décidé de fabriquer un boitier pour notre clé USB, pour cela nous sommes passé par le logiciel Fusion360. Nous avons conçu le boitier de sorte à ce qu'il soit imprimable en 3D. Pour commencer, nous avons exporter une version du PCB, nous l'avons mise sur Fusion360, puis nous avons conçu le boitier. Ensuite, il a fallu rajouter un logo ainsi que le nom de notre clé USB sur le dessus. Nous avons eu l'idée de faire sortir la LED de notre clé USB par l’œil de notre logo.
Pour fermer notre boitier, nous faisons dépasser des pins d'alignement que nous pourrons faire fondre afin de les souder sur le couvercle du boitier.
Nous avons choisi le thème des espions car l'effacement d'urgence de notre clé (POwRN) peut permettre aux espions de sauver leurs données des méchants.
CHANGELOG
- 18/01/2021 : Mise en connaissance du BE, création du binôme, regroupement des idées d'améliorations pour la clé USB.
- 21/01/2021 : Avancement sur le Schematic et le PCB d'une première version de la clé USB.
- 25/01/2021 : Modification du Schematic et du PCB pour changer certains composants. Changement de version de clé.
- 28/01/2021 : Création du boitier (partie Mechanical), appréhension de la partie Software.
- 01/02/2021 : Passage à la Rev 3 de notre clé USB, modification du PCB et du Schematic, commande des composants (en partenariat avec le groupe Mouton Albin et Verschoore Jérémy). Exercice de découverte de la partie Software (création d'un blink).
- 04/02/2021 : Appréhension de l'AVR-C, création d'un programme de "test" (Blink).
- 08/02/2021 : Recherche et tentative sur le serial en AVR-C.
- 11/02/2021 : Lecture de la datasheet de la mémoire.
- 15/02/2021 : Réception des premiers composants et renseignement sur LUFA.
- 18/02/2021 : Début du soudage du PCB de la clé USB (Passifs, micro-controlleurs).
- 08/03/2021 : Fin du soudage du PCB (Mémoire).
- 12/03/2021 : Tentative de communication avec la clé via le DFU, sans succès. (problème sur le Rst)
- 15/03/2021 : Communication réussie avec la clé via le DFU, après changement du PCB. Téléversement (non sans mal) d'un programme Blink.
- 19/03/2021 : Programmation de la clé via ICSP, réglage (non sans difficulté) des e-fusibles.
- 22/03/2021 : La ne communique a nouveau plus, puis remarche. Debut d'un programme de communication avec la mémoire
- 26/03/2021 : Soudage de la mémoire sur la deuxième clé, continuation du programme d'identification.
- 29/03/2021 : Création du code "final" de l'AtTiny, remplissage du wiki.
- 01/04/2021 : Finition définitive de la clé USB. Elle est maintenant capable de se téléporter dans la poche de l'espion. Poisson d'avril ! Finition de la mise a jour du wiki, et conception 3D du nouveau boitier.