ISSLg - Cours d'électronique
Utilisation de micro-contrôleurs PIC
Navigation> electronique/automatisme/PIC

En classe nous utilisons 2 modèles de micro-contrôleurs fabriqués par Microchip® :
le PIC16F84A : très simple (idéal pour apprendre), mais il devient obsolète ;
le PIC16F690 : plus puissant et moins cher que le précédent, je vous le recommande pour vos TFE.

En très simplifié, le PIC16F690 permet d'effectuer un programme pouvant lire des entrées binaires ou analogiques, les traiter par calcul (logique ou arithmétique) pour ensuite piloter des sorties binaires ou PWM (analogiques après filtrage PB), il peut également communiquer avec d'autres circuits, voire d'autres PIC ou même un PC via des bus de communication série (I²C, RS232).


Les étapes de conception d'un circuit à micro-contrôleur.

1) Concevoir le schéma : alim, connecteur de programmation, entrées, sorties, LED de test... Je vous conseille de partir du schéma du "PCB d'écolage" que nous utilisons en classe et de l'adapter à vos besoins.

2) Concevoir le PCB : routage, gravure, montage progressif des composants (d'abord le strict nécessaire pour le programmer, ainsi que les LED de test), tester des alims et des entrées et sorties sans le PIC...

3) Insérer le programmateur « PicKit2 » dans un port USB d'un PC. Lancer le logiciel PicKit2. Tester la communication avec le programmateur « PicKit2 »: placer le PIC et voir s'il est détecté par le programmateur (sinon test du 5V et des liaisons entre le PIC et le connecteur de programmation).

4) S'il existe : charger le programme « test.hex » avec « PicKit2 » et vérifier le comportement du circuit.


Pour créer un programme en langage machine (*.hex) sur le PC :
  1. Éditer un fichier texte en pascal avec PMP (*.pas).
  2. Lors de la compilation PMP le traduit en langage assembleur (*.asm) ;
  3. Puis PMP fait automatiquement appel aux outils de MicroChip pour traduire le fichier assembleur en langage machine (*.hex)

Conception d'un programme :
  1. Éditer un programme de commande des sorties pour les tester (ex : clignot, chenillard...).
  2. Éditer un programme de lecture des entrées et se servir des sorties comme mouchard (ex : allumer telle LED si tel bouton est poussé).
  3. Intégrer une à une le fonctionnement des sorties en simulant le comportement des entrées (ex : simuler la demande d'augmentation de puissance d'une LED)
  4. Intégrer une à une le fonctionnement des entrées en simulant le comportement des entrées restantes.


Quel langage de programmation ?

Pour avoir travaillé avec de nombreux langages (Fortran, Pascal, C, Basic, Assembleur, Ada), je ne peux que recommander, tant pour les débutants que pour les programmeurs expérimentés, de programmer en langage Pascal. Ce langage a été spécialement conçu pour apprendre la programmation  aux débutants au début des années 1970.
Le langage C est, certes, très puissant, mais également très (trop à mon goût) permissif : tout le bénéfice de la rapidité d'écriture est très largement perdu en debug du logiciel (ex: un = au lieu d'un == dans un IF ça arrive très vite...), ou en tentative de relecture du "code illisible" tapé par un collègue... ou par vous-même quelques mois plus tôt !

Comme on l'a aperçu ci-dessus, nous utiliserons l'éditeur Pascal gratuit PMP : il est téléchargeable sur http://www.pmpcomp.fr/?lng=fr


Quels sont les outils nécessaires pour programmer un PIC ?

Pour programmer un pic, il vous faut :
  1. Un PC avec un OS correctement installé ;
  2. Un ensemble PICkit2 Starter Kit de Microchip®. (NB : il existe des clones que l'on peut fabriquer et programmer soi-même pour 5€)
  3. Un PCB équipé d'un PIC

Installation des logiciels sous Windows :
  1. Installer en premier lieu le programme PICkit2. Le tester en essayant de charger un "test.hex" dans le PIC.
  2. Installer MPLAB de Microchip. Le tester en essayant de compiler un "test.asm". (NB : le chargement des "*.hex" dans les PIC16F84A n'est pas possible depuis MPLAB X IDE... il faut absolument passer par le logiciel PICkit2)
  3. Télécharger et installer PMP pour programmer en Pascal.
  4. Créer le répertoire "C:\@mydata\pic\test\", y copier un projet fait en classe, essayer de l'éditer et de le compiler. (NB: si vous utilisez un autre répertoire ça ne fonctionnera pas sans reconfigurer votre projet via les options de PMP... c'est pas évident !)

Installation des logiciels sous Linux - Ubuntu (c'est beaucoup plus "chaud") :
  1. Télécharger et installer MPLAB X IDE de Microchips pour Linux. Le tester en essayant de compiler un "test.asm" ; puis en essayant de charger le programme dans le PIC avec l'option PICkit2 comme programmateur.
  2. Installer dans Ubuntu l'émulateur Windows "Wine".
  3. Sur le disque "C:\" de Wine : créer le répertoire "C:\Program Files\Microchip" et y recopier tous les fichiers depuis une machine Windows où MPLAB a été installé (même répertoire).
  4. Sur le disque "C:\" de Wine : télécharger et installer PMP pour programmer en Pascal.
  5. Sur le disque "C:\" de Wine : créer le répertoire "C:\@mydata\pic\test\", y copier un projet fait en classe, essayer de l'éditer et de le compiler. (NB: si vous utilisez un autre répertoire ça ne fonctionnera pas sans reconfigurer votre projet via les options de PMP... c'est pas évident !)
  6. Vos fichier "*.hex" sont alors chargeables dans le PIC via MPLAB X IDE. (NB : le chargement des "*.hex" dans les PIC16F84A n'est pas possible depuis MPLAB X IDE...)
NB : tant sur Windows que sous Linux, après l'installation de MPLAB, vous pouvez télécharger et installer d'autres langages de programmation (ex: C/C++) depuis le site de Microchip. Vous pouvez alors directement éditer vos programmes dans MPLAB... Mais l'interface et la gestion des projets sont nettement plus complexes !


Réaliser vos propres programmes

Le langage Pascal.
Mémo du langage Pascal.

La structure du PIC16F84A.
Le PCB d'écolage du PIC16F84A.
Exercices avec le PIC16F84A.

La structure du PIC16F690.
Le PCB d'écolage du PIC16F690.
Exercices avec le PIC16F690.


Auteur : Philippot Marc - 15/01/2014