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 :
- Éditer un fichier texte en pascal avec PMP (*.pas).
- Lors de la compilation PMP le traduit en langage assembleur (*.asm) ;
- Puis PMP fait automatiquement appel aux outils de MicroChip pour traduire le fichier assembleur en langage machine (*.hex)
Conception d'un programme :
- Éditer un programme de commande des sorties pour les tester (ex : clignot, chenillard...).
- Éditer
un programme de lecture des entrées et se servir des sorties comme
mouchard (ex : allumer telle LED si tel bouton est poussé).
- 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)
- 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 :
- Un PC avec un OS correctement installé ;
- Un ensemble PICkit2 Starter Kit de Microchip®. (NB : il existe des clones que l'on peut fabriquer et programmer soi-même pour 5€)
- Un PCB équipé d'un PIC
Installation des logiciels sous Windows :
- Installer en premier lieu le programme PICkit2. Le tester en essayant de charger un "test.hex" dans le PIC.
- 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)
- Télécharger et installer PMP pour programmer en Pascal.
- 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") :
- 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.
- Installer dans Ubuntu l'émulateur Windows "Wine".
- 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).
- Sur le disque "C:\" de Wine : télécharger et installer PMP pour programmer en Pascal.
- 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 !)
- 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