![]() |
Aconit, projet Lecteur-USB (2010, Miguel Saro, Fabien Le Mentec) | ![]() ![]() |
Généralement, la programmation d'un
pic18f4550 se
fait grâce aux outils
de programmation propriétaires de la
société Microchip[0] (environnement
MPLAB). Cependant, nous avons choisi de réaliser le
développement sur
le systeme d'exploitation GNU/Linux[2]. La seule chaine de compilation
libre pour la famille des pic18f est, à notre connaissance,
SDCC [2].
Nous utiliserons donc la dernière version de cette chaine.
La chaine
est cependant expérimentale, et contient encore un certain
nombre de défauts
(génération d'un code compilé plus
gros, moins optimisé, et parfois
buggué).
Pour installer le logiciel dans le pic18f4550, nous utilisons pk2cmd
[3],
un port libre de l'utilitaire pickit2 pour les système
GNU/Linux. Le
programmeur utilisé a été
acheté chez Futurlec
pour des besoins antérieurs au projet [6]. Il est compatible
pickit2
et communique en USB.
Nous nous appuyons sur la documentation constructeur pour programmer
le
pic18f4550 [5]. Nous avons configuré les pins
d'entrée/sortie
afin de correspondre aux signaux du lecteur de carte. Les signaux sortants sont PICK_USB et Reset_USB.
pic18f4550 | signaux documation |
portA[0-3] | DATA[8:9 , 11:12] |
portB[0-7] | DATA[0:7] |
portC[0] | INDEX_MARK |
portC[1] | READY |
portC[2] | BUSY |
portD[0] | ERROR |
portD[1] | HOPPER_EMPTY |
portD[2] | MOTION_CHECK |
portD[3] | PICK_USB |
portD[4] | Reset_USB |
La programmation du module USB du pic18f4550 est une
tâche complexe,
nécessitant beaucoup de débuggage. Pour
simplifier, nous
sommes partis sur la base d'un projet existant, PUF [4]. Nous avons
simplifié
le code afin de réduire la taille du programme
compilé d'une part, et de
correspondre aux besoins du projet d'autre part (un seul endpoint USB).
Pour la communication des données, nous utilisons un
endpoint en mode BULK,
à la fois en tranmission et récéption.
Ce mode est utilisé
lorsque les contraintes de temps n'importent pas (ie. temps
réel) mais que les
données doivent être intègrées
à la récéption.
![]() |
Aconit, projet Lecteur-USB (2010, Miguel Saro, Fabien Le Mentec) | ![]() ![]() |