You are on page 1of 10

INTRODUCTION AU DEVELOPPEMENT POUR PIC

Ce document nest pas conu pour tre lu de faon linaire. Il faut aussi utiliser les documents de prsentation des PIC, les documents sur le langage dassemblage pour PIC, les documents sur le langage C. Les diffrentes parties de ce document sont dveloppes ailleurs.

1) PROCDURES DE DVELOPPEMENT ET LANGAGE DE PROGRAMMATION


Pour le dveloppement dapplications pour PIC, on a le choix entre plusieurs procdures de dveloppement et plusieurs langages de programmation.

1.1) PROCDURES DE DVELOPPEMENT


LES DIFFRENTES PROCDURES DE DVELOPPEMENT Le tableau ci-dessous prsente les procdures de dveloppement. Lcriture du programme source est commune toutes les procdures et nest pas mentionne ci-dessous. Procdure de dveloppement Simulation puis programmation dun PIC avec un programmateur puis insertion sur la maquette cible et essais finaux Programmation et dboguage in situ (ou in circuit) avec le PIC cible. Ncessite un module dinterfaage ICD ou autre. (ne fonctionne quavec certains PICs) Utilisation dun mulateur puis programmation dun PIC avec un programmateur puis insertion sur la maquette cible et essais finaux Utilisation Pdagogique Avantage(s) Inconvnient(s) La simulation est moins pdagogique. Certains bogues difficilement dcelables en simulation. Des choses non simulables (CAN, etc.). Possibilits de dboguage limites (mais cependant suffisantes pour les applications pdagogiques et mme beaucoup dapplications professionnelles) Cot lev dun mulateur. Plus grandes difficults de mise en oeuvre avec les lves.

Trs faible cot de la partie matrielle ncessaire. On trouve sur Internet des schmas de programmateurs trs faciles raliser et trs bon march. Ex : ICPROG. Pdago- Dboguage dans les condigique, tions relles dutilisation. Les profesmodules ICD peuvent tre sionnelle achets tout faits ou raliss soi-mme. Faible cot et simplicit de ralisation du module ICD1. Possibilits de mise au point Professionnelle tendues

Solution prfre de lauteur de ces lignes : Programmation et dboguage in situ. ICD = In Circuit Debugging.

Dveloppement pour PIC / Philippe Morenton LT PE Martin Bourges

PROGRAMMATION ET DBOGUAGE IN SITU Le dessin ci-contre montre la mise en uvre du dveloppement avec programmation et dboguage in situ.

PC + logiciels

carte cible (avec PIC disposant des possibilits 5 fils, dont 2 pour ICD) l'alimentation et un carte d'interface
pour la RZ / prog

Alimentation

Lorsque la mise au point RS232 ou USB ou // (port imprimante) est termine, il suffit de selon solution retenue pour la carte interface modifier une option dans le logiciel puis de procder la programmation finale. La carte cible fonctionne alors seule, sans laide de la carte dinterface et du PC + logiciel(s) associ(s). Cette solution peut sappliquer avec tous les langages de programmation dcrits dans le paragraphe suivant, sauf la programmation graphique (pour linstant), condition de choisir les bons logiciels. Elle ne mobilise que quelques ressources du PIC qui ne sont pas disponibles pour lapplication : 2 broches dentres / sorties + quelques centaines de mots en mmoire programme. Il est mme possible de rcuprer les 2 broches dentres / sorties dans lapplication finale en plaant un double inverseur pour le fonctionnement normal ou la programmation / dboguage. Les PICs ayant des possibilits ICD sont trs nombreux. Ce sont tous des PICs avec une mmoire programme de type Flash. Le distributeur Farnell en propose beaucoup. Remarque : un des PICs les plus populaires , le PIC16F84 ne dispose pas des possibilits ICD. Pour un logiciel avec langage de programmation graphique, il existe une possibilit trs proche du dboguage in situ, prsente plus loin. Dans ce cas, le PIC cible na pas besoin dtre prvu pour le mode ICD. Il suffit quil supporte la programmation in situ (ICSP= In Circuit Serial Programming) et quil possde au moins 2 timers car un est rserv pour le systme de dveloppement.

1.2) LANGAGES DE PROGRAMMATION


Le tableau ci-dessous prsente les langages de programmation pour le dveloppement dapplications sur PIC. Langage de dveloppement Graphique (quelques parties sont crire avec une syntaxe proche du C (ou autre) utilisation Avantage(s) Inconvnient(s)

Pdagogique

Simplicit dutilisation. Apprentissage langage et prise en main rapide. Le logiciel MultiProg permet la programmation et lexcution contrle du programme in-situ (avec une carte dinterfaage trs simple) Voir plus loin.

Utilisation uniquement pour des applications assez simples. Programmation in-situ uniquement avec des cartes spcifiques (sauf pour MultiProg). Logiciels payants. Pas de possibilit de point darrt (pour linstant).

Dveloppement pour PIC / Philippe Morenton LT PE Martin Bourges

Langage de dveloppement Langage dassemblage

utilisation

Avantage(s)

Inconvnient(s)

Pdagogique, professionnelle

Logiciels de dveloppement gratuits. Programmation et dboguage in-situ possible avec une carte dinterfaage simple.

Langage C

Pdagogique, professionnelle

Basic Pascal

Certains logiciels gratuits (avec des limitations sur la taille du code produit, etc). Programmation et dboguage in-situ possible avec une carte dinterfaage simple. Non abord ici Non abord ici

Ncessite lapprentissage du langage dassemblage (assez rapide cependant) et des particularits du PIC (banques de mmoire, adressage). Lenteur de dveloppement. Ncessite lapprentissage du langage C (assez long). Rapidit de dveloppement (aprs apprentissage du langage).

Solution prfre de lauteur de ces lignes : Langage graphique pour une premire approche et pour des applications simples Langage C pour des applications plus compliques (peut tre rserv au seul professeur dans le cadre de prparation de TP ou de projet, etc.)

Dveloppement pour PIC / Philippe Morenton LT PE Martin Bourges

2) COMPARAISON RAPIDE DES DIFFRENTS TYPES DE DVELOPPEMENT


La comparaison entre les diffrents types de dveloppement seffectue avec un exemple trs simple.

2.1) DVELOPPEMENT GRAPHIQUE


Plusieurs logiciels permettent un dveloppement graphique. 1 seul est prsent ici : Multi-prog. Ce logiciel est le seul qui permette la programmation et lexcution contrle du programme in situ sur nimporte quelle carte cible quipe dun connecteur adquat et dun PIC Flash support (programmation ICSP + au moins 2 timers). Il faut utiliser une carte dinterface trs simple quon peut fabriquer pour un cot modique.

Fentre utilise pour la saisie et la mise au point (dboguage)

Multiprog est aussi le seul logiciel qui permette des calculs sur des entiers de 16 bits ou 32 bits ou sur des rels en notation flottante. Pour cet exemple, le seul texte entr au clavier est le nom de lentre BP1 et de la sortie LED1. Tout le reste a t effectu en cochant des options et en posant des lments graphiques.

Dveloppement pour PIC / Philippe Morenton LT PE Martin Bourges

Cest avec la mme fentre que seffectue la programmation puis la mise au point (pas pas avec observation des variables, dfilement automatique). Le rectangle rouge entourant un des lments de lalgorigramme met en vidence la partie en train de sexcuter lors de la mise au point. Pour lobservation des variables, une fentre supplmentaire souvre. Par rapport un vrai dboguage in situ, il nest pas possible de changer les variables, dexcuter le programme en temps rel jusqu un point darrt.

DVELOPPEMENT EN LANGAGE C
Plusieurs logiciels permettent un dveloppement en langage C. On a retenu ici lassociation de 2 logiciels : LEnvironnement de Dveloppement Intgr (EDI ou IDE en anglais) MPLAB gratuit qui permet la gestion de projet, la saisie du programme source, la simulation, la programmation et le dboguage avec diffrentes possibilits Le compilateur C CC5X dont il existe une version gratuite limite, suffisante pour bien des applications pdagogiques. Ces logiciels permettent le dboguage in situ (ICD = In Circuit Debugging) avec une carte dinterface quon peut fabriquer pour un cot modique. La version MPLAB 5.5 a t retenue. Elle nest plus distribue actuellement par Microchip. Elle permet lutilisation de la carte dinterfaage bon march. Les dernires versions ncessitent une carte plus chre ou plus difficile fabriquer si on souhaite la raliser soi-mme. Toutes les oprations seffectuent depuis lEDI MPLAB.

Fentre dobservation (et ventuellement de modification) des variables lors du dboguage Fentre du programme source en C utilise pour la saisie et le dboguage

Dveloppement pour PIC / Philippe Morenton LT PE Martin Bourges

Remarque : Dans le cas dun dveloppement graphique avec Mutli-prog, le fichier en langage C rsultant de la traduction automatique est disponible avec longlet Programme C. Il est bien entendu trs proche du programme source prcdent. Les lignes supplmentaires ne sont pas utiles dans notre cas trs simple. Dans une application normale, elles sont ncessaires. #pragma chip PIC16F877 #include <int16CXX.H> //Dfinition des sorties #pragma bit LED1 @ PORTD.0 //Dfinition des entres #pragma bit BP1 @ PORTB.1 Le programme principal gnr est quasiment le mme //Programme Principal void main(void) { init(); while ((1)) { if (((BP1==1))) { LED1=1; } else { LED1=0; }; } }

void init(void) { TRISA=0x3F; PORTA=0x00; TRISB=0x7F; PORTB=0x00; TRISC=0xFF; PORTC=0x00; TRISD=0xFE; PORTD=0x00; TRISE=0x07; PORTE=0x00; GIE = 1; PEIE = 1; RBIE = 0; T0IF = 0; T0IE = 0; INTE = 0; ADCON1=0x06; }

La configuration de tous les ports est gnre et pas uniquement les ports utiliss.

Les bits pour la configuration des interruptions sont aussi gnrs. Ici aucune interruption nest autorise.

DVELOPPEMENT EN LANGAGE DASSEMBLAGE


Plusieurs logiciels permettent un dveloppement en langage C. On a retenu ici MPLAB (gratuit) qui permet de raliser toutes les oprations ncessaires : gestion de projet, saisie du programme source, simulation, programmation et dboguage avec diffrentes possibilits. MPLAB permet le dboguage in situ (ICD = In Circuit Debugging) avec une carte dinterface quon peut fabriquer pour un cot modique.

Dveloppement pour PIC / Philippe Morenton LT PE Martin Bourges

Fentre dobservation (et ventuellement de modification) des variables lors du dboguage Fentre du programme source en langage dassemblage utilise pour la saisie et le dboguage

Remarque : Dans le cas dun dveloppement graphique avec Mutli-prog ou dun dveloppement en langage C, le fichier en langage dassemblage est automatiquement gnr. Un fichier de listage avec le programme source en langage C et sa traduction en langage dassemblage peut tre dit.

3) LE MATRIEL NCESSAIRE POUR DVELOPPER UNE APPLICATION


On ne sintresse ici qu la programmation et au dboguage in situ (mode ICD) ou lexcution contrle du programme avec Multiprog.

3.1) CARTE AVEC PIC CIBLE


La carte avec le PIC cible peut tre une maquette pdagogique ou une carte quelconque, pourvu quelle soit quipe avec un connecteur spcifique permettant de connecter le module dinterfaage. Ce connecteur est le mme pour les diffrents modules dcrits. Un document fourni dcrit le brochage du connecteur utiliser et les connexions avec le PIC cible.

Dveloppement pour PIC / Philippe Morenton LT PE Martin Bourges

EXEMPLE DE MAQUETTE PDAGOGIQUE

Cette maquette dispose notamment de : 8 micro-interrupteurs 8 LEDs E/S logiques et analogiques sur borniers E/S sur connecteur dextension HE10 1 liaison srie RS232 null modem etc. Tous les documents ncessaires la fabrication sont fournis (fichiers source au format OrCAD). Un document dcrit prcisment la maquette.

3.2) CARTE DINTERFAAGE PC / CARTE AVEC PIC CIBLE


Il existe plusieurs cartes dinterfaages selon le type de dveloppement. CARTE POUR MUTLI-PROG (DVELOPPEMENT GRAPHIQUE) Multi-prog peut utiliser 2 types de cartes : une carte qui se connecte sur le port // dun PC ou une carte qui se connecte sur le port USB. La carte // nemploie que des composants usuels, sauf un convertisseur continu/continu 5V 12V pour gnrer la tension ncessaire la programmation du PIC cible. La carte USB sappelle Castor. Elle est vendue par Micrelec.

Dveloppement pour PIC / Philippe Morenton LT PE Martin Bourges

CARTES POUR DVELOPPEMENT EN LANGAGE C OU EN LANGAGE DASSEMBLAGE Microchip, le fabricant des PICs, a dvelopp 2 cartes qui permettent un interfaage direct avec MPLAB. Modle ICD ICD2 Communication avec le PC Liaison srie USB / liaison srie PICs supports Version de MPLAB 5.x uniquement 6 et 7 uniquement Prix module Microchip Plus disponible 136 euros HT Copie disponible / cot composants Oui / 30 euros Oui / 50-60 euros. 1 CI CMS haute densit.

16F87x Nombreux PICs dont les 16F87x. Certains PICs doivent tre en version ICD pour tre utilisables avec lICD2.

On voit ci-contre le module ICD2 conu par Microchip.

Seules les copies sont brivement dcrites cidessous.

ICD1 La version conue par Patrick Touzet fonctionne trs bien. Tous les documents sont fournis sur son site internet et disponibles sur le CDROM. Circuit imprim en simple face avec seulement quelques straps. http://www.chez.com/silicium31/Electronique/PIC/free_ icd.htm

Dveloppement pour PIC / Philippe Morenton LT PE Martin Bourges

ICD2 Il existe plusieurs versions pour les copies. Voici les photos de la version de Patrick Touzet. Ct composants Ct soudures et CMS

Le circuit imprim est simple face et il ny a quun seul strap ! Tous les documents sont fournis sur son site internet http://www.chez.com/silicium31/Electronique/PIC/free_icd.htm et sur le CDROM.

Dveloppement pour PIC / Philippe Morenton LT PE Martin Bourges

10

You might also like