BE 2019-2020 : Différence entre versions
(→Les composants électroniques) |
(→Les composants électroniques) |
||
Ligne 45 : | Ligne 45 : | ||
Le schéma décrit le circuit électronique partie par partie. | Le schéma décrit le circuit électronique partie par partie. | ||
A partir du circuit, il faut créer une carte sans croisement de pistes pour éviter les court-circuits. | A partir du circuit, il faut créer une carte sans croisement de pistes pour éviter les court-circuits. | ||
− | + | Le fichier source Fritzing est disponible : [[Media:cle_usb.zip]] (renommer en <tt>.fzz</tt>). | |
− | Le fichier source Fritzing : [[Media:cle_usb.zip]] (renommer en <tt>.fzz</tt>). | ||
= Logiciels = | = Logiciels = |
Version du 10 janvier 2020 à 09:40
Sommaire
Présentation du bureau d'étude
Nous vous proposons de découvrir ce qu'est réellement cet objet devenu banal appelé clé USB (Universal Serial Bus).
Le bureau d'étude consiste à construire de A à Z une clé USB :
- en créant un circuit électronique ou PCB (Printed Circuit Board) à l’aide d’un logiciel ;
- en soudant des composants électroniques (micro-contrôleur, mémoire FLASH, ...) ;
- en programmant le micro-contrôleur pour gérer la communication USB en utilisant la bibliothèque LUFA (Lightweight USB Framework for AVRs) ;
- en programmant le micro-contrôleur pour accéder à la mémoire ;
- en fabriquant un beau boitier pour votre clef.
Pour personnaliser votre clé n'hésitez pas à ajouter des fonctionnalités :
- LED qui clignotent lors des accès en lecture ou écriture ;
- vumètre qui indique le remplissage de la clé ;
- micro-interrupteurs pour verrouiller la clé ;
- vibreur parce que c'est possible, vous trouverez bien une justification ;
- microphone permettant d’espionner les conversations ;
- toute autre fonction plus ou moins utile mais qui vous inspire ...
Les supports de la présentation de ce bureau d'études : Media:BE_clef_USB.pdf.
Les composants électroniques
Le coeur de votre clé va être un micro-contrôleur AVR plus exactement l'ATMega16u2. Ce micro-contrôleur possède l'électronique nécessaire pour la gestion d'un bus USB 2.0.
Sans mémoire une clé n'est pas une clé. Vous utiliserez des mémoires faciles à gérer avec un ATMega16u2. Ces mémoires sont accessibles par un bus série SPI et facile à souder. Par contre elles sont de faible capacité.
Il vous faudra aussi quelques autres composants comme un quartz, des résistances, des condensateurs, des diodes, des régulateurs de tension et bien sur des LED pour ajouter un peu de lumière. La carte de base peut être décrite comme suit.
- Le micro-contrôleur peut être accompagné d'un quartz à 8Mhz et de ses condensateurs et résistance.
- Le micro-contrôleur peut être alimenté par le connecteur USB en 5v (broche UVCC) mais avec ses lignes VCC et AVCC bouclées sur la sortie UCAP du régulateur 3.3v interne.
- Un convertisseur 5v vers 3.3v est nécessaire pour l'alimentation des mémoires.
- Le micro-contrôleur dialogue avec les mémoires par le bus SPI, une ligne de sélection est nécessaire par mémoire.
Pour la conception de votre clé vous pouvez vous appuyer sur un prototype de clef réalisé pour ce bureau d'études.
Le schéma décrit le circuit électronique partie par partie.
A partir du circuit, il faut créer une carte sans croisement de pistes pour éviter les court-circuits.
Le fichier source Fritzing est disponible : Media:cle_usb.zip (renommer en .fzz).
Logiciels
Pour la conception de circuits imprimés nous vous recommandons le logiciel fritzing.
Pour la découpe laser de nombreux utilisateurs utilisent inkscape.
Pour la conception 3D vous pouvez tenter freeCAD. Une solution en ligne existe : onshape.
Pour la programmation du micro-contrôleur vous utiliserez le compilateur C avr-gcc et le logiciel de téléversement dfu-programmer.
Bibliothèque LUFA
Pour la gestion du bus USB par le micro-contrôleur nous allons nous appuyer au maximum sur la bibliothèque USB LUFA. Cette bibliothèque permet d'exploiter plus facilement les aspects USB des micro-contrôleurs AVR comme l'ATMega16u2.
Vous pouvez télécharger la dernière version de la bibliothèque [1]. Il est ensuite conseillé d'effectuer quelques manipulations pour pouvoir développer dans de bonnes conditions.
- Créez un répertoire PolytechLille au même niveau que les répertoires Demos et Projects.
- Dans ce répertoire copiez la démonstration de périphérique USB bas niveau MassStorage. Au niveau du makefile indiquez atmega16u2 comme micro-contrôleur, UNO comme platine et restez à 8Mhz.
- Il faut ensuite modifier la configuration de la mémoire et les fonctions d'accès à cette mémoire dans le sous-répertoire Lib du répertoire PolytechLille/MassStorage.
Pour téléverser votre programme sur l’ATMega16u2, le paquetage Debian dfu-programmer est nécessaire. Installez-le au besoin. La procédure à suivre pour charger votre programme sur l’ATMega16u2 est la suivante :
- court-circuitez momentanément les lignes reset et masse de l’ATMega16u2, l'utilitaire lsusb doit lister la carte comme étant en mode DFU, vous pouvez alors exécuter les commandes suivantes :
- dfu-programmer atmega16u2 erase
- dfu-programmer atmega16u2 flash MassStorage.hex
- dfu-programmer atmega16u2 reset
- débranchez et rebranchez votre carte, votre programme doit être actif sur le micro-contrôleur.