Académique Documents
Professionnel Documents
Culture Documents
premire sance
ENSIBS 2eme anne, Spcialits Mcatronique et Gnie Industriel
Objectifs
Ce TP sinscrit dans le cours dinterfaage Logiciel et fait partie dune srie de deux
TP dont lobjectif est de vous familiariser avec du matriel.
Cette premire sance doit vous permettre de prendre en main la plate-forme dsPIC
et dapprendre utiliser des priphriques en utilisant les plus basiques dentre-eux que
sont les boutons poussoirs et les diodes electro luminescentes (LED).
A lissue du TP vous devez savoir :
Configurer et piloter les ports dEntre/Sortie
Utiliser des oprations de masquage pour piloter chaque E/S
Utiliser des symboles
Grer une interruption
Description du matriel
Les deux scances de TP se drouleront sur une carte de dveloppement dsPIC sur
laquelle sont prcabls un ensemble de priphriques. Parmi ceux-ci ont trouve deux liens
srie RS232, un port CAN, un cran LCD, des entres/sorties analogiques ainsi que des
LED et des boutons poussoir.
Le dveloppement sur la carte qui vous est propos sera ralis laide de lenvironnement MPLAB fourni par Microchip auquel est associ le compilateur C C30.
2.1
Les paragraphes suivants dcrivent sur quelles broches du dsPIC les diffrents priphriques utiliss sont mapps.
2.1.1
LEDs
Les LED sont connectes aux 4 bits de poids faible du port D. Une LED sallume
lorsquun 0 logique est mis sur la sortie correspondante.
2.1.2
Boutons Poussoir
Les Boutons poussoirs sont connects aux 4 bits de poids fort du port A. Lorsque le
Bouton Poussoir est appuy, on peut lire un 0 sur la sortie corrspondante.
1
Ralisations
3.1
2
3
4
5
6
7
9
10
11
12
MPLAB fonctionnant par projet, il est dabord ncessaire de crer un projet. Une fois
le projet cr, on peut commencer crire ses programmes. Pour excuter le programme,
il faut passer par une phase de compilation qui est dcrite ensuite.
3.1.1
criture du programme
Une fois le projet cr, il faut crer le fichier contenant le programme, crit en langage
C. Ce fichier sera insr dans le projet.
La procdure de cration est la suivante.
File -> New File
File -> Save As
Project -> Add Files To Project
3.1.3
Excution du programme
Pour pouvoir excuter le programme, il est ncessaire de passer par plusieurs phases.
2
La phase de compilation permet de gnrer le code objet qui sera envoy sur la
cible. Chaque fichier C est transform en un code objet correspondant (fichier portant
lextension .o).
Ledition de liens cette phase permet de lier les diffrents codes objet provenant des
sources ou de librairies entre eux. En effet, les diffrents objets peuvent utiliser des variables ou des fonctions en commun.
La programmation Il sagit denvoyer le code sur la cible pour quil y soit excut. Un
reset de la cible permettra ensuite de dmarrer le programme.
Loutil MPLAB offre une interface intgrant les diffrentes phases pour excuter un
programme, on effectue donc les tapes suivantes :
Project -> Build All effectue les phases de compilation et ddition de liens
Programmer -> Select Programmer permet de slectionner linterface de programmation (ici ICD2 ).
Programmer -> Program charge le programme dans la cible.
Programmer -> Release From Reset permet dautoriser lexcution du code.
3.2
3.3
Il sagit, cette fois-ci de changer ltat de la LED chaque appui sur le bouton SW1.
3.4
En partant de la solution utilisant une quation logique, proposez une solution compacte pour piloter les 4 LED.
3.5
Vous avez normalement utilis jusqu prsent les noms des ports et les masques crits
en hexadcimal. Ce nest pas trs explicite, limite la comprhension du code et la portabilit des programmes. Cest pourquoi on symbolise gnralement les entres/sorties.
Pour cela, on dfinit des macro qui prennent la forme prsente sur le listing 2.
Listing 2 Dfinition des symboles
1
2
Avant la phase de compilation, tous les appels LEDS seront transforms en PORTD.
Pour allumer la LED1, on crira donc le code propos sur le listing 3
3
Il vous est donc demand de transformer les programmes prcdents pour utiliser les
symboles.
Note : Certaines constructions ne sont plus possibles ...
3.6
Il vous est maintenant demand de grer lallumage de la LED1 en utilisant une interruption. Par chance, vous aurez remarqu que le SW1 est cabl sur la broche INT1 on
va donc pouvoir utiliser linterruption associe.
Si vous lisez les documentations de Microchip, vous remarquerez que le dsPIC dispose
dune table de vecteurs. Celle-ci est initialise par le compilateur partir du nom des
fonctions dclares. Pour INT1, ce nom est _INT1Interrupt. Il est aussi ncessaire dindiquer au compilateur que lon est en prsence dune routine dinterruption, cela est fait
laide de la macro _ISR qui dfinit un ensemble de paramtres pour la fonction indiquant
notamment au compilateur de gnrer une instruction RETFIE. Lcriture de linterruption
INT1 prend donc la forme prsente sur le listing 4.
Listing 4 Utilisation de INT1
1
2
3
4
5
3.7
Pour finir, vous allez faire clignoter la LED1 avec une frquence de 1Hz laide dun
timer. Dabord sans puis avec linterruption associe.