Après avoir pas mal manipuler les PICBASIC, après avoir monté et utilisé la carte Velleman K8055, après avoir monté et utilisé des pilotes de moteur pas à pas Linistepper, j’ai voulu passer le cap de l’utilisation des processeurs PIC de Microchip. En effet, le point commun à tous ces produits, c’est la petite bebette qui les contrôle.
Je travaille exclusivement sous Linux, Ubuntu, pour être précis. Après quelques recherches, j’ai pu trouver une solution qui me semble appropriée à mes besoins.
- MPLAB X comme environnement de développement
- Compilateurs intégrés à MPLAB X en version d’évaluation
- PicKit 3 comme programmeur de PIC
- PIC18F45K20 intégré sur la plateforme de test du PicKit 3
Je n’ai pas encore établi de choix sur les compilateurs, et utiliserais dans un premier temps ceux fournis avec MPLAB X.
Aujourd’hui j’ai reçu le PicKit 3, 36h après l’avoir commandé sur le site de Microchip ! S’il faut bien trouver un système qui ne fonctionne pas en France, c’est bien celui de distribution postale. Moralité, en passant par l’étranger, on peut souvent obtenir un produit plus rapidement et moins chère qu’en l’achetant en France.
Installation de MPLAB X
MPLAB X est le nouvel IDE (environnement de développement intégré) officiel de Microchip. Basé sur Netbeans, il est open source, et donc gratuit et multi-plate-formes (Windows, Mac, Linux). Netbeans est une référence en matière d’IDE. Je l’utilise déjà pour programmer en PHP, en C ou en Python. Je le trouve plus rapide et moins gourmand qu’Eclipse, son concurrent direct. Et sa communauté, bien que plus modeste que celle d’Eclipse, reste plutôt bien fournie en plugins.
A l’heure à laquelle je rédige cet article, MPLAB X est en version Béta. Mais connaissant son support (Netbeans), je n’ai aucun doute sur son niveau de finition. On peut le télécharger à cette adresse.
Après avoir accepté les conditions d’utilisation, on se retrouve sur une page avec une vidéo qui démarre immédiatement (et ça, ça craint 🙂 ). On peut la suspendre en faisant un clic-droit dessus, et en décochant Lire. Et le calme reprend sa place. De toute manière, cette vidéo décrit l’installation sous Windows, elle n’est donc d’aucun intérêt 8-).
N’hésitez pas à télécharger en premier la présentation PDF Getting started with MPLAB X Beta si vous lisez l’anglais. Elle permettra à ceux qui ne connaissent pas Netbeans d’en découvrir l’interface, et aux autres d’avoir un peu de théorie sur le fonctionnement de tout cela. Il contient une foule de petits détails techniques toujours bons à connaître.
Sélectionnez ensuite votre plate-forme dans le menu déroulant en haut à gauche (pas assez mis en valeur à mon goût). Dans mon cas, Linux x86 (32 bits). Ensuite, cochez au minimum la case MPLAB IDE X. Personnellement, j’ai tout coché. Comme on dit « Qui peut le plus peut le moins ». Encore une fois, connaissant bien Netbeans, je sais qu’il est possible à tout moment de choisir quel compilateur utiliser selon le projet sur lequel on souhaite travailler. On ne s’y attend pas forcément, mais une fois que l’on a cliqué sur Download, on se retrouve avec un téléchargement par produit coché qui se lancent tous d’un coup, sans attendre.
Dans la mesure ou je n’ai pas Windows, et que pour des raison de goûts personnels, utiliser une machine virtuelle pour décrire l’installation sous Windows ne représenterait qu’une pure perte de temps, les instructions qui suivent s’appliquent à Ubuntu (Oui, je suis chauvin, et je l’assume).
Netbeans requiert Java 6 pour fonctionner. Il est compatible avec Open JDK. e ne décrirais pas ici l’installation de Java sur Ubuntu, la communauté francophone l’ayant déjà fait, et fort bien.
L’installation de MPLAB X se fait par un fichier binaire x86. Avant de pouvoir l’exécuter il faut changer ses droits et avoir soi-même les droits root afin qu’il puisse s’installer (très proprement) dans »/opt », comme ce devrait être le cas pour tous les logiciels de ce type.
1 2 3 4 5 |
$ cd dossier/ou/vous/avez/mis/mplab $ chmod +x mplabx-ide-beta7.01-linux-32-bit-installer.bin $ sudo ./mplabx-ide-beta7.01-linux-32-bit-installer.bin |
Note: naturellement le nom du fichier changera au fur et à mesure que les versions augmenteront.
En cas d’erreur, vérifiez que le fichier fait bien dans les 219 Mo (pour cette version). Si vous avez un fichier nettement plus petit, il a probablement été tronqué.
Enfin un logiciel qui se conforme au Linux Filesystem Hierarchy !
L’installation est terminée. Vous devriez voir MPLAB apparaître en raccourcis sur le bureau, ainsi que dans le menu Applications / Programmation. Un petit redémarrage et nous pouvons l’utiliser … (Mais je me suis laissé entendre dire qu’un simple redémarrage de udev pouvait suffire à la reconnaissance du PicKit 3).
Installation des compilateurs
Pourquoi LES compilateurs, me direz-vous ? De par la variété des processeurs PIC, le langage n’est pas commun à travers les gammes. Il existe des compilateurs assembleur et C pour les différentes gammes de produits.
Ils semblent êtres eux aussi multi-plateformes. En revanche ils ne sont pas open source, et ce sont des version d’évaluation non-blocantes. Passé la durée d’évaluation, les optimisateurs de code se désactivent. Le code généré devient un peu plus lourd, mais complètement fonctionnel.
Il existe aussi des cross-compilateurs open source pour processeurs PIC. Naturellement je les testerais aussi afin de les comparer avec ceux de Microchip.
Au cas où vous n’auriez pas téléchargé les compilateurs avec l’IDE, je vous redonne le lien :
http://ww1.microchip.com/downloads/mplab/X_Beta/index.html
Installation du compilateur MPLAB C18 Lite pour PIC18 :
1 2 3 |
$ chmod +x mplabc18-v3.40-linux-full-installer.run $ sudo ./mplabc18-v3.40-linux-full-installer.run |
Comme pour l’installation de l’IDE, nous avons un joli petit assistant, et une installation dans »/opt », ça fait plaisir.
Après utilisation, j’ai pu remarquer quelques défauts :
- L’installeur est sensé créer une variable d’environnement nommée »MCC_INCLUDE » et pointant sur le chemin des headers des processeurs (chez moi: »/opt/microchip/mplabc18/v3.40/h/ »), mais il ne le fait pas. Vous devrez donc soit renseigner pour chaque projet le chemin d’include, soit définir cette variable d’environnement pour qu’il les trouve dans tous les projets.
- Certains fichiers d’entête semblent corrompus et génèrent des erreurs. Edit: En refaisant les mêmes tests le lendemain, tout fonctionnait correctement :-O
Installation du compilateur HI-TECH C Lite pour PIC18 :
1 2 3 |
$ chmod ./picc-18-pro_9.66.8870-linux.run $ sudo ./picc-18-pro_9.66.8870-linux.run |
Chez Hitech, l’assistant se déroule en mode texte. Appuyez sur [espace] pour faire défiler la licence, et acceptez-la. Aucun respect non plus pour le Linux filesystem hierarchy. Heureusement on peut choisir le dossier d’installation. Si vous souhaitez laisser le chemin par défaut, pas la peine de lancer l’installation en »sudo » (mais je le répéterais encore une fois : « Qui peut le plus peut le moins »). Pour ma part, j’ai préféré indiquer le chemin »/opt/hitech/picc-18/lite/9.66 » plutôt que celui d’origine. Lorsque l’installeur vous demande le numéro de série, indiquez »lite », à moins que vous n’ayez acheté une licence pro.
Pour finir, l’installeur crée un dossier temporaire dans le dossier courant pendant l’installation (Le dossier »/tmp » ? Jamais entendu parler …). Et bien sur il ne l’efface pas à la fin non plus.
Installation du compilateur HI-TECH C Lite pour PIC10/12/16 :
1 2 3 |
$ chmod +x ./picc-9.82.9453-linux.run $ sudo ./picc-9.82.9453-linux.run |
Mêmes remarques que pour le précédent, je l’ai installé dans le dossier »/opt/hitech/picc/9.82 ».
Installation du compilateur MPLAB C30 Lite pour dsPIC DSCs et PIC24 :
1 2 3 |
$ chmod +x ./mplabc30-v3.30b-linux-installer.run $ sudo ./mplabc30-v3.30b-linux-installer.run |
Comme pour le C18, nous avons-là un assistant graphique et un respect des conventions.
Installation du compilateur MPLAB C32 Lite pour PIC32 :
1 2 3 |
$ chmod +x ./mplabc32-v2.00-linux-installer.run $ sudo ./mplabc32-v2.00-linux-installer.run |
Même chose que les autres compilateurs MPLAB.
Installation du compilateur open source SDCC :
1 2 3 |
$ sudo apt-get update $ sudo apt-get install sdcc sdcc-doc sdcc-libraries sdcc-ucsim |
Plus d’information sur ce compileur sur le site officiel. Le support des PIC 18 bits semble plus abouti que celui des PIC 14 bits. Les autres gammes ne sont pas évoquées.
On doit pouvoir se contenter d’installer »sdcc » seul, mais l’intérêt de la documentation, des bibliothèques et du simulateur de microprocesseur me paraissent indéniables.
Quelques exemple de compilation pour PIC :
1 2 3 4 5 |
$ sdcc -mpic14 -p16f887 source.c $ sdcc -mpic14 -p16f688 source.c $ sdcc -mpic14 -p12f675 source.c |
L’option »-mpic14 » indique au compilateur qu’il faut utiliser le jeu d’instruction PIC 14 bits des gammes PIC12 et PIC16. La seconde option est le modèle précis de PIC pour lequel compiler. Ensuite vient le nom du code source à compiler. Le résultat sera un fichier ».hex » à envoyer au PIC.
Le PicKit 3
Le PicKit 3 est un périphérique USB HID standard. Il n’y a donc pas de pilote à proprement parler à installer. Ce sont les logiciels (multi-plateformes, on le rappelle) qui s’occupent de la communication en utilisant WinUSB ou LibUSB, selon la plate-forme. Donc aucun souci sous Ubuntu.
J’ai eu plus de difficultés à trouver comment faire fonctionner la carte de démo du PicKit, en revanche ! Les documentations sont faites pour Windows, et j’aurai tendance à dire, pour une version différente de Netbeans. Les choses ne sont pas à leur place et il faut fouiller un peu.
Le PicKit 3 est capable de fournir une alimentation (très faible, mais suffisante pour la carte de démo), et il faut la paramétrer manuellement dans les paramètres du projet.
Allez dans les propriétés du projet, puis sélectionnez le PicKit. Ouvrez le menu déroulant Options categories, et placez-le sur Power. Là vous pourrez activer l’alimentation et paramétrer sa tension (la carte de démo à 44 broches s’alimente en 3,25 V).